SELECT
SELECT Predicate [테이블명.]속성명1, [테이블명.]속성명2, ...
FROM 테이블명1, 테이블명2, ...
[WHERE 조건]
[GROUP BY 속성명1, 속성명2, ...]
[HAVING 조건]
[ORDER BY 속성명 [ASC | DESC]];
SELECT
- 속성명 : 기본 테이블을 구성하는 모든 속성을 지정할 때는 '*'를 기술한다.
두 개 이상의 테이블을 대상으로 검색할 때는 '테이블명.속성명'으로 표현한다.
- predicate : 불러올 튜플 수를 제한할 명령어를 기술한다.
ALL(생략), DISTINCT(중복 제거), DISTINCTROW
FROM
WHERE
- 비교연산자 : =, <, >, <=, >=, IN(포함)
- 논리 연산자 : NOT, AND, OR
- LIKE : *, %, ?, _, #를 사용한 문자패턴 검색
GROUP BY : 특정 속성을 기준으로 그룹화하여 검색할 때 그룹화할 속성을 지정
- COUNT(속성명) : 그룹별 튜플 수를 구하는 함수
- MAX(속성명) : 그룹별 최대값을 구하는 함수
- MIN(속성명) : 그룹별 최소값을 구하는 함수
- SUM(속성명) : 그룹별 합계를 구하는 함수
- AVG(속성명) : 그룹별 평균을 구하는 함수
HAVING : GROUP BY와 함께 사용되며, 그룹에 대한 조건을 지정한다.
ORDER BY : 특정 속성을 기준으로 정렬하여 검색할 때 사용
ex1 ) SELECT * FROM 사원;
ex2 ) SELECT DISTINCT 주소 FROM 사원;
ex3 ) SELECT 부서, "부서의", 이름, "의 월급", 기본급+10 FROM 사원;
ex4 ) SELECT * FROM 사원 WHERE 부서='기획' OR 부서='인터넷';
ex5 ) SELECT * FROM 사원 WHERE 이름 LIKE "김%";
ex6 ) SELECT * FROM 사원 WHERE 생일 BETWEEN #01/09/69 AND #10/22/73#;
ex7 ) SELECT * FROM 사원 ORDER BY 부서 ASC, 이름 DESC;
ex8 ) SELECT 부서, AVG(부서) AS 평균 FROM 사원 GROUP BY 부서;
ex9 ) SELECT 부서, COUNT(*) AS 사원수
FROM 사원
WHERE 기본급>=100
GROUP BY 부서
HAVING COUNT(*)>=2;
ex10 ) SELECT * FROM 사원 WHERE 이름 NOT IN (SELECT 이름 FROM 여가활동);
ex11 ) SELECT 사원.이름 사원.부서, 여가활동.취미, 여가활동.경력
FROM 사원, 여가활동
WHERE 여가활동.경력>=10 AND 사원.이름=여가활동.이름;
ex12 ) SELECT * FROM 사원
UNION
SELECT * FROM 직원;
INSERT INTO
- 기본 테이블에 새로운 튜플을 삽입할 때 사용
INSERT INTO 테이블명(속성명1, 속성명2, ...)
VALUES(데이터1, 데이터2, ...);
DELETE FROM
- 기존 테이블에 있는 튜플들 중에서 특정 튜플을 삭제할 때 사용
DELETE FROM 테이블명 WHERE 조건;
UPDATE SET
- 기본 테이블에 있는 튜플들 중에서 특정 튜플의 내용을 변경할 때 사용
UPDATE 테이블명
SET 속성명=데이터[, 속성명=데이터]
WHERE 조건;