본문 바로가기

공부 자료/DataBase

[SQL] WHERE 및 WHERE 연산자

WHERE

 

WHERE : 행에 대한 조건문

SELECT [칼럼명] FROM [테이블명] WHERE [행에 대한 조건];
-- emp 테이블에서 deptno=0인 행만 조회
SELECT * FROM emp WHERE deptno=10;

-- emp 테이블에서 deptno=10인 empno, enmae, deptno 칼럼 조회
SELECT empno, ename, deptno FROM emp WHERE deptno=10;

-- emp 테이블에서 deptno가 10보다 큰 직원의 사번, 이름, 직무, 부서번호 조회
SELECT empno, ename, job, MGR FROM emp WHERE deptno>10;

-- student 테이블에서 4학년 학생들의 학번, 이름, 생일, 전화번호, 학년을 조회
SELECT studno, name, birthday, tel, grade FROM student WHERE grade=4;

 

 

WHERE 절 연산자

1. AND, OR 연산자

A AND B : A와 B 모두 해당

A OR B : A 또는 B, 둘 중 하나

-- student 테이블에서 2학년 또는 3학년인 학생의 정보 조회
SELECT * FROM student WHERE grade=2 OR grade=3;
SELECT * FROM student WHERE 2<=grade AND grade<=3;

 

 

2. IN(a, b, c, ...)

: WHERE절 내에서 특정값을 여러개 선택하는 연산자로, 괄호 값 중 일치하는 것이 있으면 true

-- student 테이블에서 2학년 또는 3학년인 학생의 정보 조회
SELECT * FROM student WHERE grade IN(2, 3);

-- student 테이블에서 4학년이 아닌 학생 정보 조회
SELECT * FROM student WHERE grade IN(1,2,3);
SELECT * FROM student WHERE grade NOT IN(4);

 

 

3. BETWEEN A AND B

: A이상 B이하에 해당하는 행

: BETWEEN 대신 부호 연산자 사용 가능

-- student 테이블에서 4학년이 아닌 학생 정보 조회
SELECT * FROM student WHERE 1<=grade AND grade<=3;
SELECT * FROM student WHERE grade BETWEEN 1 AND 3;

 

 

4. LIKE '문자열'

: 칼럼의 문자열에 특정 문자열이 포함된 것을 거를 때 사용

: 문자열에서만 사용 가능

: 와일드 카드를 사용 (% : 어떤 문자를 포함한 모든 것을 조회, _ : 한 개인 단일 문자를 의미)

-- 이름의 성이 '서'인 학생
SELECT * FROM student WHERE name LIKE '서%';

-- job에 MAN이 포함된 것만 조회
SELECT * FROM emp WHERE job LIKE '%MAN%';

-- job의 두 번째 글자에 A인 것 조회
-- _(언더바)가 한 글자를 의미
SELECT * FROM emp WHERE job LIKE'_A%';

-- 주민번호를 가지고 9월이 생일인 학생의 학번, 이름, 학년, 주민번호 조회
SELECT studno, name, grade, jumin FROM student WHERE jumin LIKE '__09%';

 

 

5. IFNULL(칼럼명, 대체할 값)

: 해당하는 칼럼이 null일 경우 대체하는 값 지정

-- Null과 연산하면 Null이 나오기 때문에 bonus가 Null이면 pay+bonus가 Null로 출력
SELECT profno, name, pay, bonus, pay+bonus FROM professor;

-- Bonus가 Null 이면 0으로 처리
SELECT profno, name, pay, bonus, pay+IFNULL(bonus, 0) FROM professor;

 

6. IS NULL, IS NOT NULL

: NULL인 경우의 비교는 = 가 아닌 IS를 사용해서 비교 가능

'공부 자료 > DataBase' 카테고리의 다른 글

[SQL] 숫자 함수  (0) 2023.09.05
[SQL] 문자열 함수  (0) 2023.09.05
[SQL] SELECT 및 SELECT 관련 쿼리  (1) 2023.09.05
[SQL] CASE문 CASE WHEN THEN END  (0) 2023.09.05
[SQL] 그룹화 GROUP BY  (0) 2023.09.05