SELECT는 테이블에서 튜플을 검색
SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭][, [테이블명.]속성명, ...]
FROM 테이블명[, 테이블명, ...][, WINDOW 함수 OVER (PARTITION BY 속성명1, ...
ORDER BY 속성명2) [AS 별칭]]
[WHERE 조건]
[GROUP BY 속성명, 속섬영, ..]
[HAVING 조건]
[ORDER BY 속성명 [ASC | DESC]];
PREDICATE : 불러올 튜플 수를 제한할 명령어를 기술
속성명 : 검색하여 불러올 속성(열) 또는 속성을 이용한 수식을 지정
FROM절 : 검색될 데이터들을 포함하는 테이블명 기술
WHERE절 : 검색할 조건을 기술
ORDER BY : 특정 속성을 기준으로 정렬하여 검색
WINDOW 함수 : GROUP BY
절을 이용하지 않고 속성의 값을 집계할 함수를 기술
GROUP BY : 특정 속성을 기준으로 그룹화하여 검색할 때 사용. 그룹 함수와 같이 사용
HAVING : GROUP BY
와 함께 사용하여 그룹에 조건을 지정
비교 연산자
: 크다
= : 크거나 같다
논리 연산자
LIKE 연산자
연산자 우선순위
SELECT절에 원하는 속성을 지정하여 검색한다.
사원 테이블에 있는 모든 튜플을 검색하는 SQL
SELECT * FROM 사원; SELECT 사원.* FROM 사원; SELECT 이름, 부서, 경력 FROM 사원;
사원 테이블에서 부서를 중복없이 검색하는 SQL
SELECT DISTINCT 부서 FROM 사원;
WHERE 절에 조건을 지정하여 조건에 만족하는 튜플을 검색한다.
사원 테이블에서 부서가 개발인 튜플을 검색하는 SQL
SELECT * FROM 사원 WHERE 부서 = "개발";
사원 테이블에서 부서가 개발 혹은 it인 튜플을 검색하는 SQL
SELECT * FROM 사원 WHERE 부서 = "개발" OR "it"; SELECT * FROM 사원 WHERE 부서 IN("개발","IT");
사원 테이블에서 성이 김인 튜플을 검색하는 SQL
SELECT * FROM 사원 WHERE 이름 LIKE "김%";
사원 테이블에서 부서가 NULL인 튜플을 검색하는 SQL
SELECT * FROM 사원 WHERE 부서 IS NULL;
ORDER BY 절에 특정 속성을 지정하여 지정된 속성으로 자료를 정렬하여 검색한다.
사원 테이블에서 이름을 오름차순으로 정렬하여 튜플을 검색하는 SQL
SELECT * FROM 사원 ORDER BY 이름 ASC;
조건절에 주어진 질의를 먼저 수행하여 그 검색 결과를 조건절의 피연산자로 사용한다.
취미 테이블에서 취미활동이 축구인 사원 이름의 튜플을 검색하는 SQL
SELECT 이름 FROM 사원 WHERE 이름 = (SELECT 이름 FROM 취미 WHERE 취미활동 = "축구");
여러 테이블을 대상으로 검색을 수행한다.
경력이 10년 이상인 사원의 이름, 부서, 취미활동을 검색하는 SQL
SELECT 사원.이름, 사원.부서 FROM 사원, 취미 WHERE 사원.경력 >= 10 AND 사원.이름 = 취미.이름;