SELECT문에 WHERE 절을 추가하면 특정 조건을 만족하는 데이터만 추출할 수 있다. 조건문에서 문자 데이터나 날짜를 조회할 때는 반드시 단일따옴표(' ')를 사용해야하며, 날짜 데이터의 경우에는 MariaDB에서 형변환 없이 비교가 가능하다.
- SELECT 칼럼명 FROM 테이블명 WHERE 컬럼명 연산자 비교대상값;
연산자
비교연산자
연산자 | 설명 |
= | 같다 |
> | 보다 크다 |
< | 보다 작다 |
>= | 보다 크거나 같다 |
<= | 보다 작거나 같다 |
<>, !=, ^= | 다르다 |
# deptno(부서번호)가 10인 데이터
SELECT * FROM emp WHERE deptno=10;
# sal(급여)가 1000 미만인 데이터
SELECT * FROM emp WHERE sal<1000;
# sal(급여)가 3000 이상인 데이터
SELECT * FROM emp WHERE sal>=3000;
# deptno(부서번호)가 30이 아닌 데이터
SELECT * FROM emp WHERE deptno <> 30;
# ENAME(사원이름)이 ADAMS인 사원의 EMPNO(직원번호)와 DEPTNO(부서번호) 출력
SELECT ename, empno, deptno FROM emp WHERE ename='ADAMS';
# hiredate(입사일자)가 1982-01-01 이후인 사원 출력
SELECT * FROM emp WHERE hiredate >= '1982-01-01';
#'1982/01/01', '19820101' 둘 다 가능
다중조건문 (논리 연산자)
조건이 2개 이상인 경우에는 논리 연산자를 통해서 특정 조건을 만족하는 데이터를 추출할 수 있다.
연산자 | 설명 |
AND | 두 가지 조건을 모두 만족해야 한다 |
OR | 두 가지 조건 중에서 한 가지만 만족해도 검색한다 |
NOT | 조건에 만족하지 못하는 것만 검색한다 |
# deptno(부서번호)가 10이고 ENAME(사원이름)이 KING인 사원
SELECT * FROM emp WHERE deptno=10 AND ename='KING';
# sal(급여)가 1000이하거나 3000이상인 사원
SELECT * FROM emp WHERE sal<=1000 OR sal>=3000;
# deptno(부서번호)가 20이 아닌 사원
SELECT * FROM emp WHERE NOT deptno=20;
IN 연산자
특정 컬럼의 값이 지정한 목록 중 하나와 일치하는지를 검사하여 데이터를 필터링할 때 사용한다. 여러 개의 OR 연산자를 사용하는 대신 IN을 사용하여 코드를 간결하게 작성할 수 있다.
- SELECT 칼럼명 FROM 테이블명 WHERE 컬럼명 IN (비교값1, 비교값2, ... );
# deptno(부서번호)가 10이거나 20이거나
SELECT * FROM emp WHERE deptno IN(10,20);
BETWEEN 연산자
특정 칼럼의 값이 지정한 범위에 속해있는지를 확인하여 데이터를 추출한다.
- SELECT 칼럼명 FROM 테이블명 WHERE 컬럼명 BETWEEN 비교값1 AND 비교값2;
# sal(급여)가 1500이상 3000이하인 사원
SELECT * FROM emp WHERE sal BETWEEN 1500 AND 3000;
# 다르게 작성 : SELECT * FROM emp WHERE sal>=1500 AND sal<=3000;
# sal(급여)가 1500이상 3000이하가 아닌 사원
SELECT * FROM emp WHERE NOT sal BETWEEN 1500 AND 3000;
LIKE 연산자
LIKE 연산자는 검색하고자 하는 값을 정확히 모를 경우에 검색 가능하도록 한 연산자다.
- SELECT 칼럼명 FROM 테이블명 WHERE 컬럼명 LIKE '패턴';
패턴을 기술할 때에는 두 가지 와일드카드를 사용한다.
- % : 문자가 없어도 되고, 하나 이상의 문자에 어떤 값이 와도 상관없음을 의미
- _ : 하나의 문자가 와야하고, 어떤 값이 와도 상관 없음을 의미
# ENAME(사원명)이 A로 시작하는 사원
SELECT * FROM emp WHERE ename LIKE 'A%';
# ENAME(사원명)에서 세번째 글자가 A인 사원
SELECT * FROM emp WHERE ename LIKE '__A%';
NULL 연산자
NULL값의 경우에는 산술연산자나 비교연산자로 판단을 할 수가 없다. 따라서 NULL 값인지 아닌지를 판단하는 연산자는 IS NULL을 사용해야 한다.
- SELECT 칼럼명 FROM 테이블명 WHERE 컬럼명 IS NULL;
#comm이 NULL인 항목
SELECT * FROM emp WHERE comm IS NULL;
#comm이 NULL이 아닌 애들
SELECT * FROM emp WHERE comm IS NOT NULL;
'Database > MariaDB' 카테고리의 다른 글
MariaDB : DDL(Data Definition Language)에 대해서 (0) | 2024.10.16 |
---|---|
MariaDB : 서브쿼리에 대해서 (0) | 2024.10.15 |
MariaDB: JOIN절에 대해서 (0) | 2024.10.15 |
MariaDB : 그룹함수, GROUP BY, HAVING절에 대해서 (0) | 2024.10.14 |
MariaDB : SQL 주요함수에 대해서 (0) | 2024.10.14 |
MariaDB : ORDER BY절에 대해서 (0) | 2024.10.14 |
MariaDB : SELECT문에 대해서 (0) | 2024.10.11 |
Maria DB : 데이터 타입의 종류 (0) | 2024.10.11 |