본문 바로가기
DataBase/MYSQL

[MYSQL] 기본 문법(5) - WHERE 조건 절

by 민졈 2022. 7. 23.

 

 

 

 

 

앞선 포스팅에서 계속 사용했던 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

댓글