WHERE
WHERE 절을 사용하면 특정 조건에 해당하는 데이터만 조회할 수 있습니다.
SELECT *
FROM STUDENT
WHERE age >= 25;
AND / OR
논리 연산자를 사용하면 여러 조건을 설정하여 데이터를 조회할 수 있습니다.
여기서 AND가 OR보다 더 높은 우선순위를 가집니다.
SELECT *
FROM STUDENT
WHERE age >= 25 AND gender = 'MALE';
BETWEEN
BETWEEN 연산자를 사용하면 특정 범위에 해당하는 데이터를 조회할 수 있습니다.
SELECT *
FROM STUDENT
WHERE age BETWEEN 20 AND 25;
IN ()
IN 연산자를 사용하면 특정 값이 포함된 데이터를 조회할 수 있습니다.
IN 연산자는 '='를 여러 번 수행하는 효과를 가지고 있기 때문에 인덱스를 최적으로 할용할 수 있습니다.
SELECT *
FROM STUDENT
WHERE age IN (20, 21, 22;
SELECT *
FROM STUDENT
WHERE age = 20 AND age = 21 AND age = 22;
LIKE
LIKE 연산자를 사용하면 문자열의 일부 글자가 포함된 데이터를 조회할 수 있습니다.
- _ : 한 글자만 매치
- % : 몇 글자든 매치
SELECT *
FROM STUDENT
WHERE name LIKE '김__';
SELECT *
FROM STUDENT
WHERE name LIKE '김%';
서브 쿼리
서브 쿼리를 사용하여 2개의 SQL 문을 하나로 만들어 데이터를 조회할 수 있습니다.
SELECT *
FROM STUDENT
WHERE class = (SELECT class FROM PROFESSOR WHERE name = '홍길동');
DISTINCT
DISTINCT을 열 이름 앞에 붙이면 중복된 데이터 값은 1개만 출력됩니다.
SELECT DISTINCT name
FROM STUDENT
WHERE age >= 25;
GROUP BY
GROUP BY 절을 사용하면 컬럼이 같은 데이터를 그룹화할 수 있습니다.
- SUM() : 컬럼의 합계
- AVG() : 컬럼의 평균
- MIN() : 컬럼의 최솟값
- MAX() : 컬럼의 최댓값
- COUNT() : 행의 개수
- COUNT(DISTINCT) : 중복되지 않는 행의 개수
# class를 기준으로 그룹화
# 각 class마다 학생 수 조회
SELECT class, COUNT(*) AS '학생 수'
FROM STUDENT
GROUP BY class;
HAVING
HAVING 절을 사용하면 그룹화된 데이터에 조건을 제한할 수 있습니다.
HAVING 절은 GROUP BY 절 뒤에 위치해야 합니다.
# class를 기준으로 그룹화
# 행의 개수가 30 이상인 그룹 중에서 각 class마다 학생 수 조회
SELECT class, COUNT(*) AS '학생 수'
FROM STUDENT
GROUP BY class
HAVING COUNT(*) >= 30;
ORDER BY
ORDER BY 절을 사용하면 데이터를 정렬할 수 있습니다.
ORDER BY 절은 WHERE 절 뒤에 위치해야 합니다.
- ASC : 오름차순 (생략 시 기본값)
- DESC : 내림차순
# age가 25 이상인 데이터를
# name 값 기준으로 오름차순, height 값 기준으로 내림차순 정렬
SELECT *
FROM STUDENT
WHERE age >= 25
ORDER BY name, height DESC;
LIMIT
LIMIT 절을 사용하면 데이터 출력 개수를 제한할 수 있습니다.
- LIMIT {시작} {개수}
- {시작}번째 데이터부터 {개수}만큼 출력
- LIMIT 뒤에 하나의 숫자만 입력 시 처음부터 해당 숫자만큼의 데이터만 출력합니다.
- LIMIT과 OFFSET 조합으로도 출력 개수를 제한할 수 있습니다.
# 상위 3개의 데이터만 출력
SELECT *
FROM STUDENT
LIMIT 3;
# 2번째 데이터부터 3개의 데이터만 출력
SELECT *
FROM STUDENT
LIMIT 2, 3;
# 2번째 데이터부터 3개의 데이터만 출력
SELECT *
FROM STUDENT
LIMIT 3 OFFSET 2;
728x90
반응형
'CS 지식 > 데이터베이스' 카테고리의 다른 글
[CS] 이상 현상 (0) | 2024.01.30 |
---|---|
[CS] SQL - JOIN (0) | 2024.01.17 |
[CS] SQL - 기본 명령어 (0) | 2024.01.15 |
[CS] 키의 개념과 종류 (0) | 2024.01.05 |
[CS] 데이터베이스 용어 정리 (0) | 2024.01.04 |