K 개발자

WHERE 절 본문

데이터베이스/Oracle SQL

WHERE 절

ddingz 2021. 8. 22. 11:48

WHERE 절

조건에 맞는 검색을 할 때는 WHERE 절을 사용한다.
조건으로 사용할 수 있는 술어predicate는 비교, 범위, 집합, 패턴, NULL로 구분할 수 있다.

술어 연산자
비교 =, <>, <, <=, >, >=
범위 BETWEEN
집합 IN, NOT IN
패턴 LIKE
NULL IS NULL, IS NOT NULL
복합조건 AND, OR, NOT

문자열 검색 시 LIKE와 같이 사용하는 와일드 문자를 정리하면 다음과 같다.

와일드 문자 의미
+ 문자열을 연결
% 0개 이상의 문자열과 일치
[ ] 한 개의 문자와 일치
[^] 한 개의 문자와 불일치
_ 특정 위치의 한 개의 문자와 일치

연습문제

-- 가격이 20,000원 미만인 도서를 검색하시오.
SELECT *
FROM Book
WHERE price < 20000;
-- 가격이 10,000원 이상 20,000 이하인 도서를 검색하시오.
SELECT *
FROM Book
WHERE price BETWEEN 10000 AND 20000;

-- BETWEEN은 논리 연산자인 AND를 사용하여 다음과 같이 사용할 수 있다.
SELECT *
FROM Book
WHERE price >= 10000 AND price <= 20000;
-- 출판사가 '굿스포츠' 혹은 '대한미디어'인 도서를 검색하시오.
SELECT *
FROM Book
WHERE publisher IN ('굿스포츠', '대한미디어');

-- 출판사가 '굿스포츠' 혹은 '대한미디어'가 아닌 출판사를 검색하는 SQL 문은 다음과 같다.
SELECT *
FROM Book
WHERE publisher NOT IN ('굿스포츠', '대한미디어');
-- "축구의 역사"를 출간한 출판사를 검색하시오.
SELECT bookname, publisher
FROM Book
WHERE bookname LIKE '축구의 역사';
-- 도서이름에 '축구'가 포함된 출판사를 검색하시오.
SELECT bookname, publisher
FROM Book
WHERE bookname LIKE '%축구%';
-- 도서이름의 왼쪽 두 번째 위치에 '구'라는 문자열을 갖는 도서를 검색하시오.
SELECT *
FROM Book
WHERE bookname LIKE '_구%';
-- 축구에 관한 도서 중 가격이 20,000원 이상인 도서를 검색하시오.
SELECT *
FROM Book
WHERE bookname LIKE '%축구%' AND price >= 20000;
-- 출판사가 '굿스포츠' 혹은 '대한미디어'인 도서를 검색하시오.
SELECT *
FROM Book
WHERE publisher = '굿스포츠' OR publisher = '대한미디어';

'데이터베이스 > Oracle SQL' 카테고리의 다른 글

조인  (0) 2021.08.22
GROUP BY 문  (0) 2021.08.22
집계 함수  (0) 2021.08.22
ORDER BY 절  (0) 2021.08.22
SELECT 문  (0) 2021.08.21
Comments