티스토리 뷰

자격증/SQLD

SQLD - SQL 기본 [WHERE]

나는연어다 2017. 8. 5. 08:34

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)의 마지막 행과 같은 값이 있는 경우 추가 행이 출력되도록 지정할 수 있다.

반응형
LIST

'자격증 > 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
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함