SELECT [ ALL | DISTINT [ ON (expression [, ...] ) ] ]
[ * | expression [ [ AS ] output_name] [, ...] ]
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ]
[ ORDER BY expression [ ASC | DESC | Using operator ] [ NULLS { FIRST | LSAT } ] [,...]
[LIMIT { count | ALL } ]
[OFFSET start [ ROW | ROWS ] ]
SELECT * FROM team;
-- ex1. accident_Report 테이블에서 장소, 일시, 사고유형 col 조회
-- location col 중복 제거
-- location과 acc_date 내림차순으로 정렬
SELECT DISTINCT ON (location) lication, acc_date, accident_case
FROM accident_reports
ORDER BY location, acc_date DESC;
-- ex2. employee 테이블에서 사원 번호가 15인 사람의 모든 정보 출력
SELECT * FROM employee WHERE employee_no = 15;
-- ex3. movie 테이블에서 장르별 총 상영시간이 5시간 이내인 정보만 출력
-- running_time col의 합계는 total col 변경
-- genre col으로 집계하여 running_time을 합한 결과가 5시간 이내인 경우로 제한
SELECT genre, sum(running_time) AS total FROM movies
GROUP BY genre
HAVING sum(running_time) < interval '5 hours';
-- ex4. contributers와 reviewers 테이블에서 이름이 S로 시작하는 모든 결과 출력
-- LIKE는 WHERE와 함께 사용 (%는 글자수 제한 없음)
-- UNION은 두 조회 결과를 합치는 것으로, col수와 type이 동일해야 함
SELECT contributers.name FROM contributers
WHERE distributors.name LIKE 'S%'
UNION
SELECT reviewers.name FROM reviewers
WHERE actors.name LIKE 'S%';
지정된 row만 조회되도록 필터
SELECT * FROM table WHERE x > 1 ;
→ x column 값이 1보다 큰 경우만 조회
반환하는 row 개수 지정
SELECT * FROM table
LIMIT 5;
→ table의 5줄만 조회