DQL(Data Query Language)과 키워드

✒️ 2025-06-05 18:16 내용 수정

수제비 2024 정보처리기사 필기 5판 1권의 내용 일부를 참고하여 정리


참고 자료 : wikipedia Data query language, 류예린's MySQL 기초 DQL 과정

DQL(Data Query Language)

데이터베이스의 데이터를 조회 및 검색하는 명령어

SELECT

SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명;
SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명 WHERE 조건식;
SELECT [ALL | DISTINCT] 속성1, 속성2, .. FROM 테이블명1, ..
[WHERE 조건]
[GROUP BY 속성1, 속성2, ..]
[HAVING 그룹조건]
[ORDER BY 속성 [ASC | DESC]];

DQL과 DML에서 사용하는 표현들


1. WHERE 조건절

WHERE 컬럼이름 연산자 표현식
연산자 설명
> , < 초과, 미만
>= , <= 이상, 이하
= 같음
< > , != , ^= 같지 않음
AND 두 조건식이 모두 참일 때 ( && 역할)
OR 둘 중 하나가 참일 때 ( || 역할)
-- 예시
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 > 비교값; -- <
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 >= 비교값; -- <=
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 = 비교값;
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 = 비교값 AND 컬럼명 > 비교값;
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 != 비교값 OR 컬럼명 > 비교값;
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 IN NULL;
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 IN NOT NULL;

2. CASE문

-- WHEN 조건이 1개일 때
SELECT 컬럼명,
CASE WHEN 조건1 THEN 참1
	 ELSE 거짓1
END AS 컬럼별칭
FROM 테이블명;

-- WHEN 조건이 여러 개일 때
SELECT 컬럼명,
CASE WHEN 조건1 THEN 참1
	 WHEN 조건2 THEN 참2
	 ELSE 거짓2
END AS 컬럼별칭
FROM 테이블명;
SELECT name, score,
CASE
     WHEN score >= 90 THEN 'A'
     WHEN score >= 80 THEN 'B'
     WHEN score >= 70 THEN 'C'
     WHEN score IS NULL THEN 'N/A'
     ELSE 'F'
END AS grade
FROM student;

sql_dql_case.png


3. ORDER BY

SELECT 컬럼명 FROM 테이블명 ORDER BY 조건문 정렬옵션;
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 조건문 ORDER BY 조건문 정렬옵션;
SELECT user_id FROM users ORDER BY user_id DESC;
ORDER BY user_id NULLS FIRST -- NULL값 먼저
ORDER BY user_id NULLS LAST -- NULL값은 나중에

4. AS(ALIAS)

-- column에 별칭 지정
SELECT 컬럼명1 AS 별칭1, 컬럼명2 AS 별칭2, ...
FROM 테이블명;

-- 테이블에 별칭 지정
SELECT 컬럼명1, 컬럼명2, ...
FROM 테이블명 AS 별칭;
-- EMPLOYEES 테이블 사용
SELECT FIRST_NAME||'의 직종은 '||JOB_ID||'이다.' AS "JOB"
FROM EMPLOYEES;

AS.png