SQL

[SQL] WHERE 절 (연산자, 이스케이프) 사용법&예제 - 조건에 맞는 행만 출력하기

정선셋 2023. 1. 11. 23:32

👇 SQL 혼자 공부하기!

 

SQL WHERE Clause

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 


 

SQL WHERE 절이란?

SQL에서 WHERE 절은 레코드(행)을 필터링하는 데에 사용합니다.

WHERE 다음에 원하는 조건을 작성하여, 조건을 충족하는 행만 출력할 수 있습니다.

 

 

SQL WHERE 절 문법/사용법

SELECT 문 (SELECT 원하는 컬럼 FROM 테이블명) 뒤에 WHERE 절을 붙여줍니다.

조건은 WHERE 이하에 작성해주면 됩니다.

SELECT column1, column2, ...
FROM table_name
WHERE condition;

 

참고로 WHERE 절은 SELECT문뿐만 아니라, UPDATE, DELETE 등의 구문 뒤에도 사용할 수 있습니다.

 

 

WHERE 절 사용 예시 (예제)

아래 Customers 테이블에서 나라가 Mexico인 자료만 출력해봅시다.

Customers 테이블

-- Customers 테이블에서 나라가 Mexico인 자료만 조회하기
SELECT * FROM Customers
WHERE Country='Mexico';

SQL 실행 결과

 

 

숫자 필드에 대한 WHERE 조건 vs. 텍스트 필드에 대한 WHERE 조건

보통 대부분의 데이터베이스 시스템에서는 큰따옴표(" ")와 작은따옴표(' ')모두 텍스트(문자) 값에 사용할 수 있습니다.

하지만 SQL에서는 텍스트 값에 작은따옴표(' ')를 사용하며, 큰따옴표(" ")는 사용하지 않습니다.

 

위에 예제에서는 텍스트 필드에 대한 조건을 주어 자료를 출력했으니, 이번에는 숫자 필드에 대한 조건을 주어 원하는 자료를 출력해봅시다.

-- Customers 테이블에서 고객ID가 1인 자료만 출력하기
SELECT * FROM Customers
WHERE CustomerID=1;

SQL 실행 결과

 

WHERE 절의 주요 연산자

WHERE 절에 조건식을 지정할 때 사용할 수 있는 연산자(비교 연산자, 논리 연산자, BETWEEN, LIKE, IN)에 대해서 알아보겠습니다.

연산자(Operator) 설명 예시 의미
= 같다 WHERE Price = 18; 가격이 18인 행
> ~보다 크다 WHERE Price > 30; 가격이 30보다 큰 행
< ~보다 작다 WHERE Price < 30; 가격이 30보다 작은 행
>= ~보다 크거나 같다 WHERE Price >= 30; 가격이 30보다 크거나 같은 행
<= ~보다 작거나 같다 WHERE Price <= 30; 가격이 30보다 작거나 같은 행
<> 다르다 (버전에 따라 != 로도 쓰임) WHERE Price <> 18; 가격이 18이 아닌 행
AND 모든 조건 충족 (그리고) WHERE City = 'Berlin'
AND CustomerID = '1'
도시가 Berlin이고
고객ID가 1인 행
OR 하나 이상의 조건 충족 (~거나) WHERE City = 'Berlin'
OR CustomerID = '1'
도시가 Berlin이거나
고객ID가 1인 행
NOT 조건을 만족하지 않음 (아니다) WHERE NOT City
= 'Berlin'
도시가 Berlin이 아닌 행
BETWEEN A AND B A와 B 사이의 값 (A, B 포함) WHERE Price
BETWEEN 50 AND 60;
가격이 50에서 60 사이인 행
LIKE 문자열의 패턴 (부분적 일치 조건)

WHERE City LIKE 's%'; 도시가 s로 시작하는 행
IN 찾고자 하는 특정 값 지정  WHERE City
IN ('Paris','London');
도시가 Paris나 London에 포함되는 행

 

LIKE 연산자의 경우 대부분 %(문자 개수 상관x) _(문자 개수 지정)와 같은 와일드카드와 함께 사용됩니다.

 

만약 LIKE 연산자에서 사용하는 와일드카드(%, _) 특수문자가 포함된 문자열을 검색하고자 한다면,

와일드카드를 일반 문자처럼 취급하기 위해 ESCAPE 문자를 지정해준 다음, ESCAPE 문자 뒤에 원하는 특수문자를 써서 조건을 주어야 합니다. (ESCAPE 문자임을 나타내기 위한 임시 와일드 문자 지정)

-- Customers 테이블에서 이름에 _가 포함된 행 출력
SELECT * FROM Customers
WHERE Name LIKE '#_' ESCAPE '#';

 

 

 

SQL AND, OR, NOT Operators

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com