Data Manipulation Language
INSERT
--유형1 : 칼럼 순서대로 기술 필요X. 빠진 칼럼은 Default로 "NULL"(PK, NOT NULL 제외)
INSERT INTO 테이블명(속성명1, 속성명2, ...)
VALUES (데이터1, 데이터2, ...);
--유형2 : 칼럼 순서대로 빠짐없이!
INSERT INTO 테이블명
VALUES (데이터1, 데이터2, ...);
UPDATE
UPDATE 테이블명
SET 속성명1=데이터1[, 속성명2=데이터2, ...]
[WHERE 조건];
DELETE
DELETE [FROM] 테이블명
[WHERE 조건];
SELECT
SELECT [Predicate] [테이블명|테이블별칭.]속성명[ [AS] 별칭][, [테이블명|테이블별칭.]속성명[ [AS] 별칭][, ...]]
--전체 칼럼 지정은 "*"(Asterisk)
FROM 테이블명1[ [AS] 별칭][, 테이블명2[ [AS] 별칭], ...]
--※ TABLE에 별칭(Alias)를 지정했을 경우, SELECT와 WHERE절에 별칭을 반드시 사용해야 한다!
[WHERE 조건]
[GROUP BY 표현식|속성명[, 속성명, ...]
[HAVING 조건]] --GROUP에 대한 조건 기술
[ORDER BY 표현식|속성명 [ASC|DESC][, 속성명 [ASC|DESC], ...]]
-- 별칭 지정 방법2 : 공백, 특수문자 포함 or 대소문자 구분이 필요한 경우
SELECT [Predicate] [테이블명.]속성명 [AS] "별칭" [, [테이블명.]속성명 [AS] "별칭", ...]
...
SELECT문의 실행(읽는) 순서
⑤ SELECT
① FROM
② WHERE
③ GROUP BY
④ HAVING
⑥ ORDER BY
추출 대상 테이블 참조 (FROM)
→ 추출 대상 데이터만 거르기 (WHERE)
→ 행들을 소그룹화 (GROUP BY)
→ 소그룹의 대상 데이터만 거르기 (HAVING)
→ 데이터 값 출력/계산 (SELECT)
→ 데이터 정렬 (ORDER BY)
증명1) SELECT 절에 없는 칼럼을 ORDER BY 절에 사용. (⑤ SELECT → ⑥ ORDER BY)
SELECT EMPNO
FROM EMP
ORDER BY MGR;
증명2) Sub Query(인라인 뷰에서 정의된 SELECT) 칼럼을 Main Query에서 사용 (① FROM → ~ → ⑤ SELECT)
SELECT EMPNO -- 만약 FROM절에서 정의되지 않은 테이블|표현식(칼럼) 사용하면 Error.
FROM (SELECT EMPNO, ENAME
FROM EMP
ORDER BY MGR);
연산자 (주로 SELECT)
연산자를 사용할 경우, 칼럼 Label이 길어지고 칼럼에 새 의미를 부여하기 때문에 별칭(Alias)를 부여하는 것이 좋다!
산술 연산자
(데이터가 수치 연산이 가능한 Type(NUMBER, DATE)값일 때) SELECT, WHERE, HAVING, ORDER BY 절에서 사용 가능.
우선 순위 : () > * > / > + > -
SELECT NAME 이름, ROUND(WEIGHT/POWER(HEIGHT,2), 2) "BMI 비만지수" -- 비만지수(Body Mass Index)
FROM SCHOOL;
표
합성(CONCATENATION) 연산자
SELECT NAME || '의 키는 ' || HEIGHT || 'cm' 몸무게
FROM SCHOOL;
표
WHERE 절
연산자 (WHERE, HAVING 사용)
비교 연산자
문자 유형 비교 방법
SQL 연산자
논리 연산자
GROUP BY, HAVING 절
:: ☞ GROUP BY 이후에 수행 절인( SELECT문 실행(읽는) 순서) SELECT절 or ORDER BY절에서 개별 데이터를 사용하는 경우 Error!
예) 최대키가 190cm 이상인 포지션의 평균키 출력
SELECT POSITION, MIN(HEIGHT), MAX(HEIGHT), ROUND(AVG(HEIGHT), 2)
FROM PLAYER
GROUP BY POSITION
HAVING MAX(HEIGHT) >= 190;
ORDER BY절
SELECT DNAME, LOC CITY, DEPTNO
FROM DEPT
ORDER BY 1, CITY, 3 DESC; -- 가장 마지막에 붙인 옵션이 전체 적용.