[MySQL] SELECT 문 (데이터 조회하기)
SELECT 문 (데이터 조회)
SELECT
SELECT
SELECT
문은 데이터베이스의 테이블에서 데이터를 조회하는 SQL 문입니다.
SELECT 컬럼1, 컬럼2, ... FROM 테이블명;
WHERE
WHERE
절은 SELECT
문에서 특정 조건을 충족하는 데이터를 조회합니다. 다양한 연산자를 함께 사용하여 더 자세하게 데이터를 조회할 수 있습니다.
기본 문법
SELECT 컬럼1, ... FROM 테이블명 WHERE 조건문;
컬럼 값이 a보다 큰 데이터 조회
SELECT * FROM 테이블명 WHERE 컬럼 > a;
컬럼 값이 a 또는 b와 일치하는 데이터 조회
SELECT * FROM 테이블명 WHERE 컬럼 = a OR 컬럼 = b;
-- OR
SELECT * FROM 테이블명 WHERE 컬럼 IN (a, b);
컬럼 값이 a ~ b 사이의 값을 가지는 데이터 조회
SELECT * FROM 테이블명 WHERE 컬럼 >= a AND 컬럼 <= b;
-- OR
SELECT * FROM 테이블명 WHERE 컬럼 BETWEEN a AND b;
컬럼 값이 a로 시작하는 데이터 조회
SELECT * FROM 테이블명 WHERE 컬럼 LIKE 'a%';
컬럼 값이 a로 시작하는 두 글자인 데이터 조회
SELECT * FROM 테이블명 WHERE 컬럼 LIKE 'a_';
ORDER BY
ORDER BY
절은 쿼리 결과를 특정 순서로 출력할 수 있습니다.
SELECT 컬럼1, 컬럼2, ... FROM 테이블명 ORDER BY 컬럼1 [ASC | DESC], 컬럼2 [ASC | DESC], ...;
WHERE
절과 함께 사용하면 순서를 주의해야 합니다. ORDER BY
절은 WHERE
절 뒤에 나와야 합니다.
SELECT 컬럼1, 컬럼2, ... FROM 테이블명 WHERE 조건문 ORDER BY 컬럼1 [ASC | DESC], ...;
컬럼1을 기준으로 오름차순 정렬
SELECT * FROM 테이블명 ORDER BY 컬럼1 ASC;
컬럼1을 기준으로 내림차순 정렬
SELECT * FROM 테이블명 ORDER BY 컬럼1 DESC;
LIMIT
LIMIT
절은 쿼리에서 반환되는 행의 수를 제한하는데 사용됩니다. LIMIT
절은 첫 번째 데이터를 0번으로 시작하며, 0번부터 조회할 경우 생략이 가능합니다.
SELECT 컬럼1, 컬럼2, ... FROM 테이블명 LIMIT 시작, 개수
-- OR
SELECT 컬럼1, 컬럼2, ... FROM 테이블명 LIMIT 개수 OFFSET 시작;
첫 번째 데이터를 포함하는 세 개의 데이터 출력
SELECT * FROM 테이블명 LIMIT 3;
-- OR
SELECT * FROM 테이블명 LIMIT 0, 3;
-- OR
SELECT * FROM 테이블명 LIMIT 3 OFFSET 0;
DISTINCT
DISTINCT
절은 쿼리 결과에서 중복 데이터를 1개만 남깁니다.
SELECT DISTINCT 컬럼1, ... FROM 테이블명;
GROUP BY
GROUP BY
절은 하나 이상의 컬럼을 기반으로 행을 그룹화하는데 사용됩니다. GROUP BY
절은 보통 집계 함수와 함께 사용합니다.
SELECT 컬럼1, ..., 집계 함수(컬럼) FROM 테이블명 GROUP BY 컬럼1, ...;
컬럼1을 그룹화 후, 컬럼1 그룹이 컬림2을 가지고 있는 개수
SELECT 컬럼1, COUNT(컬럼2) FROM 테이블명 GROUP BY 컬럼1;
HAVING
HAVING
절은 GROUP BY
절과 함께 사용되며, 집계된 값에 조건을 적용하여 쿼리 결과를 필터링합니다. WHERE
절은 행이 그룹화되기 전에 행을 필터링하는 반면 HAVING
절은 GROUP BY
작업의 결과를 필터링합니다.
SELECT 컬럼1, ..., 집계 함수(컬럼) FROM 테이블명 GROUP BY 컬럼1, ... HAVING 조건문;
컬럼1을 그룹화 후, 컬럼1 그룹이 컬림2을 가지고 있는 개수가 두 개 이상일 경우
SELECT 컬럼1, COUNT(컬럼2) FROM 테이블명 GROUP BY 컬럼1 HAVING COUNT(컬럼2) >= 2;
연산자
MySQL은 데이터에 대해 다양한 작업을 수행할 수 있도록 연산자를 제공합니다.
산술 연산자
산술 연산자는 숫자 데이터에 대한 수학적 계산을 수행하기 위한 연산자입니다.
산술 연산자 | 설명 |
---|---|
+ | 더하기 |
- | 빼기 |
* | 곱하기 |
/ | 나누기 |
DIV | 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후 소수 부분을 버립니다. |
% 또는 MOD | 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후 나머지를 반환합니다. |
비교 연산자
비교 연산자는 값을 비교하여 불린 값을 반환하는 연산자입니다. 참(true)이면 1을 반환하고 거짓(false)이면 0을 반환합니다.
비교 연산자 | 설명 |
---|---|
> | 왼쪽 피연산자가 오른쪽 피연산자보다 크면 참을 반환합니다. |
>= | 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같으면 참을 반환합니다. |
< | 왼쪽 피연산자가 오른쪽 피연산자보다 작은면 참을 반환합니다. |
<= | 왼쪽 피연산자가 오른쪽 피연산자가보다 적거나 같은면 참을 반환합니다. |
= | 두 피연산자가 같으면 참을 반환합니다. |
<> 또는 != | 두 피연산자가 같지 않으면 참을 반환합니다. |
논리 연산자
논리 연산자는 논리식을 평가하여 참(true)은 1, 거짓(false)는 0, UNKNOWN은 NULL을 반환합니다.
논리 연산자 | 설명 |
---|---|
AND | 왼쪽과 오른쪽 조건이 모두 참이면 참을 반환합니다. |
OR | 왼쪽 또는 오른쪽 조건 중 하나라도 참이면 참을 반환합니다. |
NOT | 조건이 거짓이면 참을 반환하고 조건이 참이면 거짓을 반환합니다. |
BETWEEN, IN 연산자
연산자 | 설명 |
---|---|
BETWEEN | 지정된 범위 내에서 값을 선택하는데 사용됩니다. 시작 값과 끝 값을 모두 포함합니다. |
IN | 일련의 값을 지정하고 해당 값과 일치하는 레코드를 검색하는데 사용됩니다. |
LIKE 연산자
LIKE
연산자는 컬럼의 데이터 내에서 특정 패턴과 일치하는 데이터를 검색하는데 사용됩니다.
와일드카드 | 설명 |
---|---|
% | 모든 문자를 나타냅니다.(공백 포함) |
_ | 단일 문자를 나타냅니다. |