앞선 포스팅에서 계속 사용했던 WHERE 문
대체 어떻게 사용하는 놈일까요?!
여러분들은 이미 알고 있습니다.
SELECT 문에서도, UPDATE 문에서도, DELETE 문을 배울 때도
우리는 계속해서 WHERE 절을 사용하고 있었기 때문입니다.
WHERE 절 사실 정말 간단합니다.
데이터를 조회하거나 갱신하거나 만들거나 삭제할 때
원하는 조건이 있다면 WHERE 절에 특정 조건을 줘서
SQL 쿼리문을 구현할 수 있도록 도와주는 역할을 합니다.
1. 기본 명령어와 함께 사용하는 WHERE
SELECT, UPDATE, DELETE 문에서 모두 사용하지만,
대표적으로 SELECT 문을 통해 WHERE 에 대해 알아보도록 하겠습니다.
조회할 때 테이블 내의 데이터가 너무 많은데
그 중 하나 혹은 몇 가지의 데이터만 찾고 싶다면 WHERE을 사용합니다.
문법은 아래와 같습니다.
SELECT (컬럼 명 혹은 *) FROM 테이블 명 WHERE 조건;
아래의 SELECT 문 포스팅을 확인하시면 조건 절을 사용해서
데이터를 조회했었던 것을 알 수 있는데요,
https://minbaker.tistory.com/entry/SQL-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%951-SELECT-%EB%AC%B8
[SQL] 기본 문법(1) - SELECT 문
오늘은 SQL 기본 문법에 대해 알아보도록 하겠습니다 DB 테이블은 필드라고 불리는 더 작은 엔티티들로 쪼갤 수 있습니다. 한 테이블은 여러개의 엔티티들로 구성되어있는 것이죠 https://www.w3school
minbaker.tistory.com
WHERE 조건 절에는 한 가지의 조건 뿐만 아니라
AND를 사용해서 여러 조건을 사용할 수 있습니다.
위의 SQL문을 확인해보시면 특정 도시와 나라를 가지고 있는 데이터를
조회한 것을 확인할 수 있습니다.
이렇게 WHERE 절을 사용할 때 컬럼 값 = 'VALUE' ;
로 표현하는 것을 확인할 수 있습니다.
SQL에서는 보통 특정 값을 가져오고 싶을 때 VALUE 값을
작은 따옴표를 사용하여 표현합니다.
하지만 이는 비교할 조건이 VARCHAR 즉 문자열일 경우입니다.
수치를 나타내는 INTEGER, FLOAT 등의 값은 따옴표 없이 표현합니다.
2. WHERE절과 함께 사용하는 AND, OR, NOT 연산자
앞서 WHERE 절에는 여러 조건을 함께 줄 수 있다고 했는데요,
AND 뿐만 아니라 OR, NOT 연산자와 결합하여 사용할 수 있습니다.
각각의 연산자가 판단하는 경우는 아래와 같습니다.
- AND : AND 연산자로 분리한 조건을 모두 만족하는 경우 TRUE로 판단한다
- OR : OR 연산자로 분리한 조건 중 하나라도 만족하는 경우 TRUE로 판단한다
- NOT : 조건을 만족하지 않는 경우 TRUE로 판단한다
이 세가지 연산자의 사용 예시는 아래와 같습니다.
-- AND 연산자
SELECT column1, column2, ... FROM 테이블 명 WHERE 조건1 AND 조건2 AND 조건3;
-- OR 연산자
SELECT column1, column2, ... FROM 테이블 명 WHERE 조건1 OR 조건2 OR 조건3;
-- NOT 연산자
SELECT column1, column2, ... FROM 테이블 명 WHERE NOT 조건;
- OR 연산자를 사용한 예시
- NOT 연산자를 사용한 예시
AND, OR, NOT 연산자는 단독으로 사용할 수 있을 뿐만 아니라
혼합해서 사용할 수도 있습니다.
몇 가지 예시를 통해 알아보도록 하겠습니다.
- AND와 OR 연산자를 함께 사용한 예시
SELECT *
FROM Customers
WHERE ContactName = 'Wang'
AND (City = 'Berlin' OR City = 'México D.F.');
ContactName 컬럼이 Wang이고
City 컬럼이 Berlin이나 México D.F. 인 데이터를 조회하는 SQL 문
>> 결과
- AND와 NOT 연산자를 함께 사용한 예시
SELECT *
FROM Customers
WHERE NOT Country = 'UK'
AND NOT Country = 'France'
AND NOT Country = 'Germany';
Country 컬럼이 UK, France, Germany가 아닌 데이터들을 조회하는 SQL 문
>> 결과
3. WHERE와 함께 사용하는 연산자들
WHERE 조건 절에는 위의 세 가지 연산자 뿐만 아니라
다른 연산자들도 함께 사용할 수 있습니다.
- = A : A와 같다
- > A : A보다 크다
- < A : A보다 작다
- >= A : A보다 크거나 같다
- <= A : A보다 작거나 같다
- <>A : A와 다르다
- BETWEEN A AND B : A와 B 사이의 값
- LIKE '%A%' : A가 포함된 문자열
- LIKE '%A' : A로 끝나는 문자열
- LIKE 'A%' : A로 시작하는 문자열
- IN ('A', 'B', 'C', ...) : ('A', 'B', 'C', ...) 의 원소 중 하나
연산자의 사용법은 위와 같습니다.
문자열 뿐만 아니라 정수, 실수 값과 비교할 수도 있고
특정 문자가 포함된 문자열을 찾을 수도 있습니다.
- CustomerID 컬럼에 3이 들어간 데이터를 조회하는 SQL 문
SELECT *
FROM Customers
WHERE CustomerID LIKE 3;
>> 결과
LIKE를 사용할 때는 위처럼 등호를 사용하지 않고
비교할 값을 주어 사용합니다.
- f 문자를 포함한 문자열 데이터를 조회하는 SQL 문
SELECT *
FROM Customers
WHERE City LIKE '%f%';
LIKE '%A%' 사용한 쿼리문입니다.
>> 결과
- PostalCode의 값이 60000보다 크거나 같은 데이터 조회하는 SQL 문
SELECT *
FROM Customers
WHERE PostalCode >= 60000;
숫자로 비교할 때 주의할 점은
아스키코드로 표현된 데이터 값 들도 함께 조회가 된다는 것입니다.
>>결과
마지막으로 위에 배웠던 내용들을 다같이 사용해서
데이터를 조회하는 예시를 보도록 하겠습니다.
- Country 컬럼이 UK이거나 Germany가 아니고
Address 컬럼의 문자열이 2로 끝나는 데이터를 조회하는 SQL 문
SELECT *
FROM Customers
WHERE Country = 'UK'
OR NOT Country = 'Germany'
AND Address LIKE '%2';
>> 결과
이렇게 WHERE 조건 절에 대해 배우고
함께 사용하는 연산자와 사용법에 대해 알아보았습니다.
다음 포스팅에서는 이렇게 조회된 결과들을 정렬하는
ORDER BY에 대해 알아보도록 하겠습니다.
'DataBase > MYSQL' 카테고리의 다른 글
[MYSQL] 기본 문법(7) - LIMIT (0) | 2022.09.06 |
---|---|
[MYSQL] 기본 문법(6) - ORDER BY (0) | 2022.07.24 |
[MYSQL] 기본 문법(4) - DELETE 문 (0) | 2022.07.22 |
[MYSQL] 기본 문법(3) - INSERT 문 (0) | 2022.07.21 |
[MYSQL] 기본 문법(2) - UPDATE 문 (0) | 2022.07.20 |
댓글