1. WHERE 절 : SQL 연산자
SQL 연산자는 SQL 언어에만 제공된다.(SQL 연산자는 모든 데이터 타입에 사용 가능)
연산자 | 의미 |
BETWEEN a AND b | a와 b 사이에 포함되면 참(a, b도 포함) |
IN(a, b, c, … , n) | a, b, c, … , n 중의 하나와 일치하면 참 |
LIKE | 문자 패턴과 부분적으로 일치(%, _)하면 참 |
IS NULL | NULL이면 참 |
2. BETWEEN 연산자
특정 칼럼 데이터 중 하한값 a와 상한값 b 사이에 포함되는 행을 검색하기 위한 연산자
(AND 논리 연산자를 사용한 것과 같은 결과 집합 출력)
-- BETWEEN 연산자를 사용하여 몸무게가 50kg에서 70kg 사이인
-- 학생의 학번, 이름, 몸무게를 출력하여라.
SELECT STUDNO, NAME, WEIGHT
FROM STUDENT
WHERE WEIGHT BETWEEN 50 AND 70;
-- 학생 테이블에서 81년에서 83년도에 태어난 학생의 이름과 생년월일을 출력해라.
SELECT NAME, BIRTHDATE
FROM STUDENT
WHERE BIRTHDATE BETWEEN '81/01/01' AND '83/12/31';
-- WHERE TO_CHAR(BIRTHDAT, 'YY') >= 81
3. IN 연산자
특정칼럼의 데이터에 a, b, c, … 값 중에 하나라도 일치하면 참이 되는 연산자
(OR 논리 연산자를 사용한 것과 같은 결과 집합 출력)
-- IN 연산자를 사용하여 102번 학과와 201번 학과 학생의
-- 이름, 학년, 학과번호를 출력하여라.
SELECT * FROM STUDENT;
SELECT NAME, GRADE, DEPTNO
FROM STUDENT
WHERE DEPTNO IN (102, 201);
4. LIKE 연산자
LIKE 연산자에서 지정한 문자패턴과 칼럼에 저장된 문자열이 부분적으로 일치하면 참이 되는 연산자
* 와일드 문자 > % : 문자열 위치, _ : 문자열 개수
-- 학생 테이블에서 성이 '김'씨인 학생의 이름, 학년, 학과번호를 출력하여라.
SELECT NAME, GRADE, DEPTNO
FROM STUDENT
WHERE NAME LIKE '김%';
-- 이름 중에 '동'이 들어가는 학생의 이름, 학년, 학과번호를 출력하여라.
SELECT NAME, GRADE, DEPTNO
FROM STUDENT
WHERE NAME LIKE '%동%';
-- 학생 테이블에서 이름이 3글자, 성은 "김"씨고
-- 마지막 글자가 "균"으로 끝나는 학생의 이름, 학년, 학과번호를 출력하여라.
SELECT NAME, GRADE, DEPTNO
FROM STUDENT
WHERE NAME LIKE '김_균';
-- 학생 테이블에서 이름에 '진'이 들어가지만,
-- 마지막 글자가 '진'이 아닌 학생의 이름, 학년, 학과번호를 출력하여라.
SELECT NAME, GRADE, DEPTNO
FROM STUDENT
WHERE NAME LIKE '%진%_';
- ESCAPE 옵션
LIKE 연산자에서 사용하는 와일드 문자(%, _) 자체를 포함하는 문자열을 검색할 때, 와일드 문자를 일반 문자처럼 취급하기 위한 옵션