SELECT [DISTINCT/ALL] 칼럼명 [ALIAS명]
FROM 테이블명
WHERE 조건식;
비교 연산자
=
>
>=
<
<=
SQL 연산자
BETWEEN a AND b
IN(list)
LIKE
IS NULL
논리 연산자
AND
OR
NOT
부정 비교 연산자
!=
^=
<>
NOT 칼럼명 =
NOT 칼럼명 >
부정 SQL 연산자
NOT BETWEEN a AND b
NOT IN
IS NOT NULL
연산자의 우선순위
비교 연산자
SELECT PLAYER_NAME, POSITION, BACK_NO, HEIGHT
FROM PLAYER
WHERE TEAM_ID = 'KO2'
WHERE POSITION = 'MF'
SQL 연산자
BETWEEN a AND b
IN(list)
LIKE
IS NULL
IN
연산자 활용SELECT ENAME,JOB,DEPTNO
FROM EMP
WHERE (JOB,DEPTNO) IN (('MANAGER',20),('CLERK',30))
IN
연산자는 SQL 문장을 짧게 만들어 주면서 성능 측면에서도 장점을 가질 수 있는 연산자다LIKE
연산자 활용 SELECT PLAYER_NAME, POSITION, BACK_NO, HEIGHT
FROM PLAYER
WHERE PLAYER_NAME LIKE '장%'
%
와일드카드를 사용하면 다음과 같이 '장'으로 시작하는 이름을 가진 선수들의 정보를 조회할 수 있다%
와일드카드_
와일드카드BETWEEN a AND b
연산자 SELECT PLAYER_NAME, POSITION, BACK_NO, HEIGHT
FROM PLAYER
WHERE HEIGHT BETWEEN 170 AND 180;
IS NULL
NULL
은 값이 존재하지 않는 것NULL
값과의 수치연산은 NULL 값을 리턴한다NULL
값과의 비교연산은 거짓(FALSE
)을 리턴한다FALSE
를 리턴한다IS NULL
혹은 IS NOT NULL
이라는 정해진 문구를 사용해야 제대로 된 결과를 얻을 수 있다 SELECT PLAYER_NAME, POSITION, BACK_NO, HEIGHT
FROM PLAYER
WHERE POSTION = NULL;
## 다음 구문은 선택된 레코드가 없다는 메시지를 출력한다
SELECT PLAYER_NAME, POSITION, BACK_NO, HEIGHT
FROM PLAYER
WHERE POSTION IS NULL;
## 한편 다음과 같이 IS NULL 연산자를 사용한다면 포지션값이 없는 선수의 데이터를 조회할 수 있는 것이다
논리 연산자
AND
OR
NOT
SELECT PLAYER_NAME, POSITION, BACK_NO, HEIGHT
FROM PLAYER
WHERE TEAM_ID = 'KO2' OR TEAM_ID = 'K07'
AND HEIGHT >= 170
AND POSTION = 'MF';
OR
연산자 사용에 있어서 괄호 처리를 안했기 때문에 팀 아이디가 해당 값인 정보들이 전부 불러와지면서 이후의 AND
연산이 의미가 없어졌다()
,NOT
,AND
,OR
이기 때문에 위의 경우 괄호처리를 다음과 같이 해줘야한다SELECT PLAYER_NAME, POSITION, BACK_NO, HEIGHT
FROM PLAYER
WHERE (TEAM_ID = 'KO2' OR TEAM_ID = 'K07')
AND HEIGHT >= 170
AND POSTION = 'MF';
부정 연산자
SELECT PLAYER_NAME, POSITION, BACK_NO, HEIGHT
FROM PLAYER
WHERE TEAM_ID = 'KO2'
AND NOT HEIGHT BETWEEN 175 AND 185
AND NOT POSTION = 'MF';
## 포지션이 미드필더가 아니고 키가 175 이상 185 이하가 아닌 선수들의 자료를 조회하는 구문
ROWNUM, TOP 사용
ROWNUM
ROWNUM
은 칼럼과 비슷한 성격의 Pseudo Column으로 SQL 처리 결과 집합의 각 행에 대해 임시로 부여되는 일련번호다SELECT PLAYER_NAME
FROM PLAYER
WHERE ROWNUM=1;
혹은
WHERE ROWNUM<=1;
## N건의 행을 가져오고 싶을 떄는
WHERE ROWNUM<=N;
TOP
TOP (Expression) [PERCENT][WITH TIES]
ORDER BY
절이 지정된 경우에만 사용할 수 있으며, TOP N
의 마지막 행과 같은 값이 있는 경우 추가 행이 출력되도록 지정할 수 있다SELECT TOP(1) PLAYER_NAME
FROM PLAYER
SELECT TOP(N) PLAYER_NAME
FROM PLAYER