
: 데이터베이스에 보관되어 있는 데이터 조회
SELECT [ALL|DISTINCT] 필드명들 (전체 조회 시 * )
FROM 테이블1, 테이블2, ...
[WHERE 조건]
[GROUP BY 필드명
[HAVING 그룹화조건]]
[ORDER BY 필드명 [ASC|DESC]];
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
: 테이블에서 → 조건에 맞는 데이터 중 → 그룹기준필드에 따라 그룹화하여 → 그룹화된 조건을 만족하는 데이터 중 → 선택한 필드를 → 정렬기준 필드에 맞게 정렬하여 출력
FROM 테이블명1, 테이블명2, … : 참조할 테이블 지정
select * from table1 A, table2 B where table1.field1 = table2.field2; --잘못된 예
select * from table1 A, table2 B where A.field1 = B.field2; --바른 예
WHERE 조건식 : 필요한(조건에 맞는) 데이터만 선택
--student테이블에서 나이가 26이면서 통계학과인 데이터 선택
select * from student where age=26 and department='통계학';
--나이가 26이거나 28인 학생 선택
select * from student where age=26 or age=28;GROUP BY 필드명1, … : 필드명 기준으로 그룹화
GROUP BY ROLLUP(A,B) : (A,B) 소계, A소계, 전체GROUP BY CUBE(A,B) : (A,B)소계, A소계, B소계, 전체GROUP BY GROUPING SETS(A,B) : A소계, B소계GROUP BY GROUPING SETS(A,B,(A,B),()) : A소계, B소계, (A,B)소계, 전체HAVING 조건 : 그룹화된 상태에서 조건에 맞는 데이터만 선택
SELECT [ALL|DISTINCT] 필드명1, [ALL|DISTINCT] 필드명2, … : 선택된 데이터에서 필드 선택
SELECT * : 모든 필드 조회 시 필드명 대신 * 사용SELECT SAL+BONOUS) select 필드명 별칭, 필드명 “별칭”, 필드명 as 별칭, 필드명 as “별칭” from 테이블명ORDER BY 필드명1 [ASC|DESC], 필드명2 [ASC|DESC], … : 필드명 기준으로 오름차순/내림차순 정렬
--예시
SELECT * FROM HELP; --help테이블에서 모든 필드 출력
select topic from help; --help테이블에서 topic필드 출력
select topic, seq from help; --help테이블에서 topic,seq필드 출력
select topic, seq from help where topic = 'BREAK'; --help테이블에서 topic이 'BREAK'인 데이터 중 topic,seq 출력
select topic as "제목", seq as "순서" from help where topic = 'BREAK'; --위와 동일, topic을 제목, seq를 순서로 별칭 지정
select topic "제목", seq "순서" from help where topic = 'BREAK'; --as는 생략가능
select topic from help;
select all topic from help; --all은 기본값
select distinct topic from help; --help테이블에서 topic을 중복제거하여 출력
select distinct topic from help order by topic desc; --help테이블에서 topic을 중복제거하고 topic을 기준으로 내림차순하여 출력
//HELP 테이블에서 제목, 순서, 내용이라는 필드이름을 사용해서 모든 데이터를 출력
//단, SEQ에 대해 내림차순, 제목에 대해 오름차순 정렬
SELECT TOPIC "제목" , SEQ "순서", INFO "내용" FROM HELP ORDER BY SEQ DESC, TOPIC;
//HELP 테이블을 사용하여 번호가 2번인 TOPIC과 INFO만 출력
SELECT TOPIC, INFO FROM HELP WHERE SEQ = 2;