수수한 코딩세상

[DB] SQL WHERE 문법 & 데이터 필터링 본문

수수한 코딩세상/DB

[DB] SQL WHERE 문법 & 데이터 필터링

수수한 코딩열공생 2024. 6. 6. 22:11
<개발 도구>
DBMS : MySQL
Editor : DBeaver

 

SQL 문법 중에서 WHERE 문은 원하는 행에 필터링을 하여 데이터를 추출하고 싶을 때 사용하는 문법입니다.

"원하는 행만 출력하는 것 = 필터링" 이라고 생각하면 편하실 겁니다.

 

데이터 필터링 (WHERE)

▶ WHERE 문법 기본 작성법

SELECT 컬럼명 FROM 테이블명 WHERE 조건식;

 

 

▶ 조건식 기본 작성법

SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 = 값;

WHERE 문 뒤의 조건식은 컬럼명=값 형식으로 작성하시면 됩니다.

 

▶ 조건식의 값이 문자 타입의 자료형일 경우 작성법

SELECT 컬럼명 FROM 테이블명 WHERE 카테고리 ='가구';

조건식의 값이 문자 타입의 자료형인 경우 '문자'처럼 따옴표를 사용하면 됩니다.

데이터베이스에서는 칼럼명은 따옴표를 생략해 주기 때문에 값에만 사용하시면 됩니다.

위의 명령문을 출력하면 해당 테이블에서 카테고리가 '가구'에 해당하는 행만 출력됩니다.

 

▶ 조건식에 비교연산자 사용

SELECT 컬럼명 FROM 테이블명 WHERE 가격 > 5000;

조건식에는 다음과 같은 다양한 비교연산자를 사용할 수 있습니다.

사용가능한 비교연산자 : =(같다), <=>(같다, 양쪽의 피연산자가 모두 NULL이면 참 반환, 하나만 NULL이면 거짓 반환), != or <>(같지않다), >(크다), <(작다), >=(크거나 같다), <=(작거나 같다)

 

▶ 문자 데이터에 비교연산자 사용

SELECT 컬럼명 FROM 테이블명 WHERE 상품명 > '가';

참고로 문자에도 부등호를 사용할 수 있습니다.

SQL 상에서는 '가' < '나' < '다' , 'a' < 'b' < 'c' 가 성립하기 때문에 부등호를 사용할 수 있습니다.

SELECT 컬럼명 FROM 테이블명 WHERE 가구명 > 'ㄱ';

그리고 초성만 사용하게 되면 해당 초성이 포함되는 범위에서 비교연산을 해 줍니다.

 

특정 범위 내에서 데이터를 필터링하여 출력

SELECT 컬럼명 FROM 테이블명 WHERE 가격 BETWEEN 5000 AND 8000;

특정 범위내에서 데이터를 출력하고 싶을 때는 BETWEEN/ AND 연산자를 사용할 수 있습니다.

위의 명령어와 같은 의미로 5000 <= 가격 <= 8000으로 작성하면 안 되나? 

라고 생각하실 수 있지만 SQL 문에서는  부등호를 연속으로 사용하여 코드를 작성하지 않기 때문에 조건식을 2개로 나누어서 작성하거나 BETWEEN/ AND 연산자를 사용해야 합니다.

조건식을 여러 개 작성하는 법은 다음 글에서 정리하도록 하겠습니다.

 

여기까지 데이터 필터링 문법 WHERE 문의 기본 사용법에 대해 정리해 보았습니다.

 


Reference

해당 글은 애플코딩님의 강의를 보고 정리한 내용입니다.

https://codingapple.com/course/sql-and-database/

 

한 번에 끝내는 SQL & Database - 코딩애플 온라인 강좌

SQL은 관계형 데이터베이스에서 데이터를 입출력할 때 사용하는 언어입니다.  관계형 데이터베이스를 다루는 곳에서 백엔드 개발 잘하고 싶다면 SQL을 잘 알아두도록 합시다.  실은 SQL을 개발자

codingapple.com