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 |