4장 데이터 필터링
Last updated
Was this helpful?
Last updated
Was this helpful?
데이터베이스 테이블은 특별한 작업을 수행하거나 보고서 작성을 위해 테이블에 있는 일부의 데이터만 가져오는 경우가 많다. 원하는 데이터만 가져오려면 검색 조건을 지정하면 된다. (필터 조건)
SELECT 문에서는 WHERE 절로 검색 조건을 지정하여 데이터를 필터링할 수 있다. WHERE 절은 테이블 이름(FROM 절) 바로 다음에 적는다.
위 예제는 조건에 맞는 값만 가져오도록 설정했지만 그 이상의 작업을 할 수 있다.
SQL 필터링 vs 클라이언트 프로그램 필터링
데이터는 클라이언트 프로그램에서도 필터링할 수 있다. 하지만 비효율적이다. 클라이언트의 필터링은 데이터베이스에 비해 느릴뿐 아니라 클라이언트 프로그램의 성능과 확장에 부정적인 영향을 끼친다. 또한, 네트워크에서 불필요한 데이터를 전송해야 하므로 네트워크도 낭비된다. 그러므로 데이터베이스를 활용하자.
=
같다.
<>
같지 않다.
!=
같지 않다.
<
~보다 작다.
<=
~보다 작거나 같다.
!<
~보다 작지 않다.
>
~보다 크다.
>=
~보다 크거나 같다.
!>
~보다 크지 않다.
BETWEEN
두 개의 특별한 값 사이
IS NULL
값이 NULL이다.
<>와 !=, !<와 >=는 같은 효과를 보이지만 DBMS 마다 지원하는 경우가 다르기에 사용하는 DBMS의 매뉴얼을 참조하자.
<>와 !=는 같은 결과를 가져온다. DBMS에 따라 지원하는 연산자를 사용하자.
작은 따옴표의 사용
작은 따옴표는 문자열을 지정할때 사용한다. 비교하는 값이 문자열 데이터라면 작은 따옴표로 묶고, 수치형이면 작은 따옴표를 사용하지 않는다.
BETWEEN 연산자를 사용해 특정 범위의 데이터를 가져올 수 있다.
테이블 생성시 초깃값이 없도록 설정할 수 있다. 이처럼 열이 아무런 값도 가지고 있지 않을 때 NULL 값을 가지고 있다고 한다.
값이 NULL인지 확인할 때는 WHERE 절에 IS NULL을 사용한다.
SELECT 문의 WHERE 절을 이용해 데이터를 필터링하는 방법을 학습함
일치하는 값, 일치하지 않는 값, 크거나 작은 값, 특정 범위의 값, NULL 값 등을 필터링할 수 있다.
Products 테이블에서 제품 가격이 9.49인 제품 ID와 제품명을 가져오는 SQL 문 작성하기
Products 테이블에서 제품 가격이 9 또는 그 이상인 제품 ID와 제품명을 가져오는 SQL 문 작성하기
OrderItem 테이블에서 제품 수량이 100개 이상인 항목을 검색하고, 이때 주문 번호가 중복되지 않도록 SQL 문을 작성하기
Products 테이블에서 가격이 3과 6 사이인 제품의 제품명과 제품 가격을 모두 가져와 그 결과를 가격순으로 정렬하는 SQL 문 작성하기 (다양한 방법이 있음)