회사에서 오라클 필요해서 공부하기
select
insert
delete
join
위주로 문법 공부하기
1. select
구축이 완료된 테이블에서 데이터를 추출하는 기능을 말한다.
SELECT 열이름 FROM 테이블 이름 WHERE 조건식;
AUTO-INCREMNET 자동으로 숫자를 입력해준다는 의미이다.
CREAT TABLE buy
( num INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
mem_id. CAR(8) NOT NULL,
.... )
이렇게 하는데 회사에서는 왜 1drm 이렇게 순번이 출력이 된거지 ..? 무튼 월요일에 가서 알아보기
논리 연산자 사용하기
SELECT mem_name, height, mem_number
FROM member
WHERE height >= 165 AND mem_number >6;
[평균 키가 165이상이면서 인원도 6명 초과인 회원]
논리 연산자 AND, OR 사용할 수 있다.
BETWEEN ~ AND
키가 163 ~ 165 회원을 조회하는것
SELECT mem_name, height,
FROM member
WHERE height BETWEEN 163 AND 165;
[ 숫자의 범위의 조건식에서는 이렇게 하는게 편리하다 ]
IN
조건식에서 여러 문자중 하나에 포함되는지 비교할때 사용한다
SELECT mem_name, addr
FROM member
WHERE addr IN('경기', '전남', '경남');
LIKE
문자열의 일부 글자를 검색하려고하면
첫글자가 '우'로 시작하는 회원 검색하기
SELECT *
FROM member
WHERE mem_name LIKT '우%';
SELECT 열_이름
FROM. 테이블_이름
WHERE 조건식
GROUP BY 열_이름
HAVING 조건식
ORDER BY 열_이름
LIMIT 숫자
ORDER BY 절
결과가 출력되는 순서를 조절한다.
기본값은 ASC 이다. 오름차순
DESC 내림차순이다.
뒤에 차순 생략하면 기본적으로 ASC라고 인식한다.
LIMIT 출력의 개수를 제한
DISTINCT 중복된 결과를 제거
SELECT DISTINICT addr FROM member;
==> 중복된 데이터를 1개만 남기고 제거한다 !!
GROUP BY
-> 데이터를 그룹으로 묶어주는 기능을 한다.
HAVING
집계 함수와 관련된 조건식을 제한하며 GROUP BY 다음에 나온다.
2. INSERT
INSERT INTO 테이블 열이름 VALUES 값;
* 우선 테이블 이름 다음에 나오는 열은 생략이 가능하다.
열 이름을 생략할 경우에 VALUES 다음에 나오는 값들의 순서 및 개수는 테이블 정의할 때 순서 및 개수가 동일해야한다.
3. UPDATE
UPDATE 테이블 이름
SET 열=값1, 열2= 값2
WHERE 조건;
4. DELECT
데이터 삭제
DELECT from 테이블 이름
WHERE 조건;
조인 두 테이블을 묶는 조인 !!!!!!
조인 이란 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다.
1. 내부 조인
(1) 일대다 관계의 이해
일대다 관계는 주로 기본키 (PK)와 외래키 (FK)관계로 맺어져 있다. PK-FK 관계라고 부른다.
SELECT < 열 목록 >
FROM < 첫 번째 테이블 >
INNER JOIN < 두 번째 테이블 >
ON < 조인 될 조건 >
[ WHERE 검색 조건 ]
예시
SELECT *
FROM buy
INNER JOIN member
ON buy.mem_id = member.mem_id
WHERE buy.mem_id = 'GEL';
두 개의 테이블을 조인하는 경우 동일한 열 이름이 존재한다면
꼭 테이블_이름.열_이름 형식으로 해야한다
여기서 ON 구문과 WHRER 구문에서 테이블의 아이디와 회원테이블 아이디를 사용했습니다.
내부 조인은 두 테이블에 모두 있는 내용만 출력한다.
2. 외부 조인
SELECT < 열 목록 >
FROM < 첫번째 테이블 (LERT) 테이블 >
< LEFT | RIGHT | FULL > OUTER JOIN. < 두 번째 테이블 (RIGHT 테이블) >
ON < 조인될 조건>
WHERE 검색 조건;
예시
SELECT M.mem_id, M.mem_name, B.prod_name, B.addr
FROM member M
LEFT OUTER JOIN buy B
ON M.mem_id = B.mem_id
ORDER BY M.mem_id;
LEFT OUTER JOIN
==> 왼쪽 테이블의 내용은 모두 출력되어야한다.