SELECT문이란?
- DML 중 하나로 저장되어 있는 데이터를 조회하기 위해 사용하는 쿼리
SELECT문의 기본 구조
- SELECT와 FROM절 이외는 필요시에만 작성
SELECT [DISTINCT] [컬럼명]
FROM [테이블명]
WHERE [쿼리 조건]
GROUP BY [컬럼명] HAVING [집계함수 조건]
ORDER BY [컬럼명 ASC || 컬럼명 DESC]
LIMIT [n] OFFSET [n]
;
테이블 전체 컬럼 조회 : *(Asterisk)
SELECT *
FROM employees;
조회한 데이터 중 특정 컬럼만 출력
SELECT
name
,birth
FROM employees;
WHERE 절 : 특정 컬럼의 값이 일치한 데이터만 조회
-- 컬럼의 데이터 타입이 숫자일 경우
SELECT
*
FROM employees
WHERE
emp_id = 10009
;
-- 컬럼의 데이터 타입이 문자열일 경우
SELECT
*
FROM employees
WHERE
name = '손지우'
;
-- 컬럼의 데이터 타입이 데이트일 경우, 표준 날짜 형식인 'YYYY-MM-DD' 사용
SELECT
*
FROM employees
WHERE
birth >= '1990-01-01'
;
-- 컴럼의 데이터가 NULL인 데이터를 획득하고 싶은 경우
SELECT
*
FROM employees
WHERE
fire_at IS NULL
;
-- 컴럼의 데이터가 NULL이 아닌 데이터를 획득하고 싶은 경우
SELECT
*
FROM employees
WHERE
fire_at IS NOT NULL
;
AND, OR 연산자 조건을 여러개 적용해서 조회
-- 생일이 1965-01-01 ~ 1970-01-01인 사원 조회
SELECT
*
FROM employees
WHERE
birth <= '1970-01-01'
AND birth >= '1965-01-01'
;
-- 이름이 '강성령'이고, 생일이 '1999-01-01'이후인 사원 조회
SELECT
*
FROM employees
WHERE
name = '강성령'
AND birth >= '1999-01-01'
;
-- 이름이 '강성령' 또는 '정유리'인 사원 조회
SELECT
*
FROM employees
WHERE
name = '강성령'
OR NAME = '정유리'
;
BETWEEN 연산자 : 지정한 범위 내의 데이터를 조회
-- AND 연산자로 작성한 경우
SELECT
*
FROM employees
WHERE
emp_id >= 10005
AND emp_id <= 10010
;
-- BETWEEN 연산자로 작성한 경우
SELECT
*
FROM employees
WHERE
emp_id BETWEEN 10005 AND 10010
;
IN 연산자 : 다수의 지정한 값과 일치하는 데이터 조회
-- OR 연사자로 작성한 경우
SELECT
*
FROM employees
WHERE
emp_id = 10005
OR emp_id = 10010
;
-- IN 연산자로 작성한 경우
SELECT
*
FROM employees
WHERE
emp_id IN(10005, 10010)
;
LIKE 절 : 문자열의 내용을 조회(대소문자를 구별X)
-- 이름이 우로 끝나는 사원 조회
SELECT
*
FROM employees
WHERE
name LIKE '%우'
;
-- 이름이 우로 시작하는 사원 조회
SELECT
*
FROM employees
WHERE
name LIKE '우%'
;
-- 이름에 우가 포함 되어 있는 사원 조회
SELECT
*
FROM employees
WHERE
name LIKE '%우%'
;