티스토리 뷰
1. WHERE 절
- 사용자들은 자신이 원하는 자료만을 검색하기 위해서 SQL문장에 WHERE 절을 이용하여 자료들에 대하여 제한한다.
-
WHERE절에 조건이 없는 FTS(Full Table Scan) 문장은 SQL 튜닝의 1차적인 검토 대상이 된다.
(FTS가 무조건 나쁜 것은 아니며 병렬처리 등을 이용해 유용하게 사용하는 경우도 많다.)
n 연산자의 종류
구분 |
연산자 |
연산자의 의미 |
비교 연산자 |
= |
같다. |
> |
보다 크다. |
|
>= |
보다 크거나 같다. |
|
< |
보다 작다. |
|
<= |
보다 작거나 같다. |
|
SQL 연산자 |
BETWEEN a AND b |
A와 b의 값 사이에 있으면 된다 (a와 b 값이 포함된다.) |
IN (lis) |
리스트에 있는 값 중에서 어느 하나라도 일치하면 된다. |
|
LIKE ‘비교문자열’ |
비교문자열과 형태가 일치하면 된다. (%, _ 사용) |
|
IS NULL |
NULL 값인 경우 |
|
논리 연산자 |
AND |
앞에 있는 조건과 뒤에 오는 조건이 참(TRUE)이 되면 결과도 참(TRUE)이 된다. 즉, 앞의 조건과 뒤의 조건을 동시에 만족해야 한다. |
OR |
앞에 있는 조건이 참(TRUE)이거나 뒤의 조건이 참(TRUE)이 되어야 결과도 참(TRUE)이 된다. 즉, 앞뒤의 조건 중 하나만 참(TRUE)이면 된다. |
|
NOT |
뒤에 오는 조건에 반대되는 결과를 되돌려 준다. |
|
부정 비교 연산자 |
!= |
같지 않다. |
^= |
같지 않다. |
|
<> |
같지 않다. (ISO 표준, 모든 운영체제에서 사용 가능) |
|
NOT 칼럼명 = |
~와 같지 않다. |
|
NOT 칼럼명 > |
~보다 크지 않다. |
|
부정 SQL 연산자 |
NOT BETWEEN a AND b |
A와 b의 값 사이에 있지 않다. (a, b 값을 포함하지 않는다.) |
NOT IN (list) |
List 값과 일치하지 않는다. |
|
IS NOT NULL |
NULL 값을 갖지 않는다. |
n 문자 유형간의 비교방법
구분 |
비교 방법 |
비교 연산자의 양쪽이 모두 CHAR 유형 타입인 경우 |
길이가 서로 다른 CHAR형 타입이면 작은 쪾에 SPACE를 추가하여 길이를 같게 한 후에 비교한다. |
서로 다른 문자가 나올 때까지 비교한다. |
|
달라진 첫 번째 문자의 값에 따라 크기를 결정한다. |
|
BLANK의 수만 다르다면 서로 같은 값으로 결정한다. |
|
비교 연산자의 어느 한 쪽이 VARCHAR 유형 타입인 경우 |
서로 다른 문자가 나올 때까지 비교한다. |
길이가 다르다면 짧은 것이 끝날 때까지만 비교한 후에 길이가 긴 것이 크다고 판단한다. |
|
길이가 같고 다른 것이 없다면 같다고 판단한다. |
|
VARCHAR는 NOT NULL까지 길이를 말한다. |
|
상수값과 비교할 경우 |
상수 쪽을 변수 타입과 동일하게 바꾸고 비교한다. |
변수 쪽이 CHAR 유형 타입이면 위의 CHAR 유형 타입의 경우를 적용한다. |
|
변수 쪽이 VARCHAR 유형 타입이면 위의 VARCHAR 유형 타입의 경우를 적용한다. |
n 연산자의 운선순위
연산 우선순위 |
설명 |
1 |
괄호 () |
2 |
NOT 연산자 |
3 |
비교 연산자, SQL 비교 연산자 |
4 |
AND |
5 |
OR |
- ROWNUM, TOP 사용
n ROWNUM
WHERE 절에서 행의 개수를 제한하는 목적으로 사용한다.
n TOP 절
SQL Server는 TOP 절을 사용하여
결과 집합으로 출력되는 행의 수를 제한할 수 있다.
TOP (Expression) / PERCENT / WITH TIES
- Expression : 반환할 행의 수를 지정하는 숫자이다.
- PERCENT : 쿼리 결과 집합에서 처음 Expression의 행만 반환됨을 나타낸다.
- WITH TIES : ORDER BY 절이 지정된 경우에만 사용할 수 있으며, TOP N(PERCENT)의 마지막 행과 같은 값이 있는 경우 추가 행이 출력되도록 지정할 수 있다.
'자격증 > SQLD' 카테고리의 다른 글
SQLD - SQL 기본 [GROUP BY, HAVING 절] (0) | 2017.08.07 |
---|---|
SQLD - SQL 기본 [함수] (0) | 2017.08.07 |
SQLD - SQL 기본 [TCL] (0) | 2017.08.04 |
SQLD - SQL 기본 [DML] (0) | 2017.08.04 |
SQLD - SQL 기본 [DDL] (0) | 2017.08.03 |