JangGeonWu
janggeonwu97
JangGeonWu
전체 방문자
오늘
어제
  • 분류 전체보기 (78)
    • SQLD (21)
    • 개인 공부용 (17)
    • Django (9)
    • Tableau (6)
    • ElasticSearch (8)
    • 빅데이터 엔지니어 (5)
    • Spring 퀵 스타트 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 개인 공부 기록용 블로그

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
JangGeonWu

janggeonwu97

SQLD

2-1-4. WHERE 절

2022. 9. 20. 14:06

1. WHERE 조건절 개요

더보기

SELECT [DISTINCT/ALL]

                  칼럼명 [AS ALIAS명]

   FROM 테이블명

   WHERE 조건식;

WHERE 절은 FROM 절 다음에 위치하며, 조건식은 아래 내용으로 구성된다.

 - 칼럼명(보통 조건식의 좌측에 위치)

 - 비교 연산자

 - 문자, 숫자, 표현식(보통 조건식의 우측에 위치한다)

 - 비교 칼럼명(JOIN 사용 시)

 

2. 연산자의 종류

 WHERE 절에 사용되는 연산자는 비교 연산자, SQL 연산자, 논리 연산자 총 3가지 종류가 있다.

 

구분 연산자 연산자의 의미
비교
연산자
=, >, >=, <, <= 같다, 보다 크다, 보다 크거나 같다, 보다 작다, 보다 작거나 같다.
SQK
연산자
BETWEEN a AND b a와 b값 사이의 값을 갖는다.
IN (list) 리스트에 있는 값 중, 어느 하나라도 일치한다.
LIKE '비교문자열' 비교문자열과 형태가 일치한다. 이때 %, _를 주로 사용한다.
IS NULL NULL 값을 가진다
논리
연산자
AND 앞의 조건과 뒤의 조건을 동시에 만족한다.
OR 앞의 조건 또는 뒤의 조건 중 하나를 만족한다.
NOT 뒤에 오는 조건에 반대되는 결과를 되돌려준다.
부정 비교 
연산자
!=, ^=, <> 같지 않다.
여기서 <>는 ISO 표준, 모든 운영체제에서 사용 가능하다.

연산자의 우선순위는 아래와 같다.

1. 괄호 ()

2. 비교 연산자, SQL 연산자

3. NOT 연산자

4. AND

5. OR

 

3. 문자 유형 비교

문자 유형 간 비교 조건이 발생하는 경우에는, 아래와 같이 처리한다.

 

구분 비교 방법
비교 연산자의
양쪽이 모두
CHAR 유형
타입인 경우
길이가 서로 다른 CHAR형 타입이면, 작은 쪽에 스페이슬르 추가해 길이를 같게 한 후 비교
서로 다른 문자가 나올 때까지 비교한다.
달라진 첫 번째 문자의 값에 따라 크기를 결정한다.
문자 끝 블랭크(공백) 수만 다르다면 서로 같은 값으로 결정한다.
비교 연산자의 어느
한 쪽이 VARCHAR
유형 타입인 경우
서로 다른 문자가 나올 때까지 비교한다.
길이가 다르다면 짧은 것이 끝날 때까지만 비교, 길이가 긴 것이 크다고 판단한다.
길이가 같고 다른 것이 없다면 같다고 판단한다.
VARCHAR는 NOT NULL까지 길이를말한다. 즉, 문자 끝 공백도 문자로 취급한다.
상수값과
비교할 경우
상수 쪽을 변수 타입과 동일하게 바꾸고 비교한다
변수 쪽이 CHAR 유형이라면, 위의 CHAR 유형 타입의 경우를 적용한다.
변수 쪽이 VARCHAR 유형이라면, 위의 VARCHAR 유형 타입의 경우를 적용한다.

 

4. SQL 연산자

- LIKE 연산자의 '비교문자열'에 와일드카드(%, _)를 넣을 수도 있고, 안넣을 수도 있다. 와일드 카드 내용은 아래와 같다.

- %: 0개 이상의 어떤 문자를 의미한다. -> 복수

- _: 1개의 단일 문자를 의미한다. -> 단수

 

- NULL을 고려할 때, 'A = NULL'같이 비교 연산자를 적용할 수 없다. 반드시 'IS NULL'이나 'IS NOT NULL'처럼 SQL 연산자를 사용해야 한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'SQLD' 카테고리의 다른 글

2-1-6. ORDER BY 절  (1) 2022.09.20
2-1-5. GROUP BY, HAVING 절  (0) 2022.09.20
2-1-3. 함수  (0) 2022.09.20
2-1-2. SELECT 문  (0) 2022.09.20
2-1-1. 관계형 데이터베이스 개요  (0) 2022.09.20
    'SQLD' 카테고리의 다른 글
    • 2-1-6. ORDER BY 절
    • 2-1-5. GROUP BY, HAVING 절
    • 2-1-3. 함수
    • 2-1-2. SELECT 문
    JangGeonWu
    JangGeonWu

    티스토리툴바