Format
SELECT [ALL|DISTINCT] {{컬럼명 [[AS] 컬럼_별칭],}⁺|*}
FROM 테이블_리스트
[WHERE 투플_조건식];
WHERE절은 셀렉트 연산자를 사용한다.
❗ 집계 함수는 WHERE절에 사용할 수 없다.
SELECT PLAYER_NAME 선수이름, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키
FROM PLAYER
WHERE (TEAM_ID = 'K02' OR TEAM_ID = 'K07') AND
POSITION = 'MF' AND
HEIGHT >= 170 AND HEIGHT <= 180;
SELECT PLAYER_NAME, TEAM_ID, POSITION, NATION
FROM PLAYER
WHERE (POSITION, NATION) = ('MF','브라질') OR
(POSITION, NATION) = ('FW','러시아');
SELECT PLAYER_NAME, TEAM_ID, POSITION, NATION
FROM PLAYER
WHERE (POSITION, NATION) IN (('MF','브라질'), ('FW', '러시아'));
- POSITION, NATION이 MF, 브라질이거나 FW, 러시아인 PLAYER_NAME, TEAM_ID, POSITION, NATION 출력한다.
SELECT PLAYER_NAME, TEAM_ID, POSITION, NATION
FROM PLAYER
WHERE POSITION IN ('MF', 'FW') AND NATION IN ('브라질', '러시아');
- POSITION이 MF나 FW이면서, NATION이 브라질이나 러시아인 PLAYER_NAME, TEAM_ID, POSITION, NATION 출력한다.
SELECT PLAYER_NAME 선수이름, POSITION 포지션, BACK_NO 백넘버,
HEIGHT 키
FROM PLAYER
WHERE PLAYER_NAME LIKE '장%';
- _: 1개의 단일 문자
NULL은 어떤 값과도 비교할 수 없다.
따라서, NULL값과의 산술 연산은 NULL을 리턴하고, NULL값과의 비교 연산은 FALSE를 리턴한다.
SELECT PLAYER_NAME 선수이름, POSITION 포지션, TEAM_ID
FROM PLAYER
WHERE POSITION = NULL; /* 에러는 아니고 FALSE를 리턴한다. */
만약 NULL값과 비교 연산을 하고싶다면, IS NULL, IS NOT NULL을 사용해야한다.
SELECT PLAYER_NAME 선수이름, POSITION 포지션, TEAM_ID
FROM PLAYER
WHERE POSITION IS NULL;
이렇게 하면 POSITION이 NULL인 튜플을 찾을 수 있다.