IT 성장일기
[SQL] WHERE 본문
반응형
WHERE
모두의 SQL을 읽고 배운 것을 복습하기 위해 정리해서 기록합니다.
해당 도서는 Oracle 데이터베이스를 기준으로 하고 있습니다.
0. WHERE?
유의미한 데이터를 조회하기 위해서는 필요한 데이터만 골라내는 과정도 필요합니다.
구글이나 네이버에 키워드를 입력하여 검색하듯이 WHERE 절을 이용해 조건에 부합하는 데이터만 조회할 수 있습니다.
- WHERE 절을 사용하여 조회 조건을 지정할 수 있습니다.
- WHERE 절은 FROM 절 다음에 위치하며
- 비교 연산저, SQL 연산자, 논리 연산자, 열 이름, 표현식, 숫자, 문자 등 다양한 조건을 사용할 수 있습니다.
데이터가 조회되는 논리의 순서는 아래와 같습니다.
- FROM (어디서 가져올까요?)
- WHERE (어떻게 가져올까요?)
- SELECT (무엇을 가져올까요?)
어려운 것 같아도 아래의 비유를 통해 쉽게 이해할 수 있습니다.
"시장 가서 반찬거리 좀 사 와~ 당근이랑, 두부랑, 우유 사 오는데 우유는 3000원짜리로 사 오도록 하고 순두부는 사 오지 마!"
이 단순한 어머니의 심부름을 SQL로 표현하면 아래와 같습니다.
SELECT
carrot AS 당근,
dubu AS 두부,
milk AS 우유
FROM
market
WHERE
milk = 3000 AND
dubu <> '순두부'
1. 비교 연산자
일반적으로 널리 알려진 수학 연산자와 동일하게 사용됩니다!! 엑셀을 다루시는 분들에게도 익숙할 것 같아요
- 등호 ( = )
'같다'라는 의미를 가진 연산자입니다. - 부등호 (<> , !=)
'다르다'라는 의미입니다. - 크기 비교 연산자 ( >, <, >=, <=)
초과, 미만, 이상, 이하를 비교할 때 사용합니다.
2. SQL연산자
비교연산자보다 조금 더 확장된 연산자로서 마찬가지로 자주 쓰이는 연산자들입니다
- BETWEEN
두 값의 범위에 해당하는 데이터를 조회합니다.
[WHERE culumn BETWEEN a AND b]의 경우 a와 같거나 크면서 b보다 작거나 같은 값에 해당한다는 의미입니다.
범위에 해당하지 않는 결과를 조회할 땐 [WHERE culumn NOT BETWEEN a AND b]와 같이 작성합니다. - IN 연산자
조회하고자 하는 값이 여러 개일 때 나열된 조건에 해당하는 데이터를 조회합니다.
[WHERE culumn IN (조건 1, 조건 2, 조건 3)]과 같은 형태로 사용합니다.
나열된 목록에 없는 데이터를 조회하고 싶다면
[WHERE culumn NOT IN (조건 1, 조건 2, 조건 3)]과 같은 형태로 작성합니다.
나중에 자세히 다루겠지만 [IN (쿼리문)] 형태로도 사용할 수 있습니다. - LIKE 연산자
조회 조건이 명확하지 않을 때 사용합니다.
네이버나 구글에 키워드를 입력해서 정보를 검색할 때와 같은 형태의 조회 조건입니다.
[WHERE culumn LIKE %SQL%] 또는 [WHERE culumn LIKE _SQL_]과 같은 형태로 사용합니다.
%는 '길이에 상관없는 모든 문자' _는 '한 글자'를 의미합니다. 'SQL'이 포함된 문자열을 조회합니다.
반대의 경우 [WHERE culumn NOT LIKE % SQL%]로 작성할 수 있습니다. - IS NULL 연산자
데이터 값이 null인 경우를 조회하고자 할 때 사용합니다.
[WHERE culumn IS NULL]과 같은 형태로 사용합니다.
반대로 null이 아닌 경우를 조회하고 싶다면 [IS NOT NULL]이라고 작성합니다.
3. 논리 연산자
조건이 한 개 이상일 때 NOT, AND, OR 연산자를 이용해 여러 가지 조건을 논리적으로 연결할 수 있습니다.
우선순위는 NOT, AND, OR 순입니다.
- NOT 연산자
뭐든지 하지 말라는 것부터 하지 말아야 합니다. 가장 우선적으로 적용됩니다.
NOT 연산자는 뒤에 붙은 조건에 해당되지 않는 데이터만 골라냅니다.
[WHERE NOT culumn = 'abc']와 같은 형태로 사용합니다.
SQL Server (MS SQL)의 경우 [WHERE culumn <> 'abc']와 같은 형태로 사용합니다. - AND 연산자
특정 조건들을 모두 만족해야 할 때에 사용합니다.
조건 절에서 가장 많이 사용되며 정교한 데이터를 조회할 때 중요하게 사용됩니다.
[WHERE culumn01 = 조건 01 AND culumn02 = 조건 02]와 같은 형태로 사용합니다. - OR 연산자
OR 연산자 전 후로 존재하는 조건 중 어느 한쪽만 참이어도 해당하는 결과를 반환합니다.
설명이 조금 애매한데 AND는 '이것도 하고 저것도 해야 해!'라는 조건이라면
OR는 '둘 중 하나만 해도 상관없어~'라는 조건입니다.
[WHERE culumn01 = 조건 01 OR culumn02 = 조건 02]와 같은 형태로 사용합니다.
OR 조건은 조회 성능에 많은 영향을 줄 수 있으니 주의해서 사용해야 한다고 합니다.
두 번째 장이 끝났습니다!! 요약은커녕 오히려 제가 아는 선에서 부가적인 내용이 들어가게 되네요...😅
SQL 공부하시는 분들께 조금이나마 도움이 되었으면 좋겠습니다.
도움이 되어드렸다면 구독 / 좋아요 부탁드립니다.👏🏻
감사합니다.🙂
반응형
'Learning > SQL' 카테고리의 다른 글
[SQL] 함수 - 그룹 함수 (0) | 2023.11.04 |
---|---|
[SQL] 함수 - 단일 행 함수 (2) (0) | 2023.11.02 |
[SQL] 함수 - 단일 행 함수 (1) (2) | 2023.10.23 |
[SQL] 함수 - 함수의 종류 (0) | 2023.09.18 |
[SQL] SELECT (0) | 2023.09.18 |