This is an old revision of the document!
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절에서 <font color=“red”>개별 데이터를 사용하는 경우 Error!</font>
예) 최대키가 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; -- 가장 마지막에 붙인 옵션이 전체 적용.