Select 문장은 주어진 조건에 적합한 데이터를 검색하여 반환한다
결과는 항상 하나의 relation
select A1, A2, ..., An
from R1, R2, ..., Rm
where P
group by ...
having ...
order by ...;
project 연산에 해당
모든 속성을 가져올 때는 *을 사용함
select * from professor;
수식 계산이 가능함
Select pID, name, deptName, salary/12from professor;
관계 대수와 달리 기본적으로 중복을 허용함
중복 제거
select distinct deptName from professor;
중복 유지
select all deptName from professor;
조건 지정 (select 연산에 해당)
select name from professor
where deptName = 'CS' and salary > 8000;
비교, 논리 연산자(and/or/not) 조합 가능
릴레이션(테이블) 나열 → 카티션 곱(Cartesian Product) 수행
Select * from professor, teaches;
FROM:
FROM에 명시된 각 테이블에서 한 개씩의 튜플(row) 을 가져옴
모든 테이블의 튜플 간 모든 가능한 조합(카르테시안 곱) 을 생성
→ 즉, FROM 절에서 생성되는 것은 임시 결합된 튜플 조합 집합
WHERE:
FROM 절에서 만들어진 튜플 조합 각각에 대해 WHERE 조건을 적용GROUP BY
WHERE 결과를 **지정된 속성(attribute)**들 기준으로 그룹화HAVING
WHERE은 개별 튜플에 적용되고, HAVING은 그룹 단위로 적용됨