K 개발자
WHERE 절 본문
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