SQL은 요새 주니어 개발자나 마케터들이 가장 많이 사용하는 언어중하나입니다. 특히 CRUD(Create, Read, Update, Delete) 중 READ에 해당하는 명령문은 주로 데이터를 조회하고 검색하는 데 사용됩니다. 대부분의 마케터들은 읽기만 잘해도 충분합니다. 아래의 블로그 포스팅에서는 SQL에서 데이터를 조회하는 다양한 명령문과 그 활용법을 살펴보겠습니다. 기초 SQL 문법을 기준으로 데이터를 효율적으로 읽는 방법을 소개하도록하겠습니다.
1. 기본 SELECT 문
가장 첫번째인 SELECT는 SQL에서 데이터를 조회할 때 사용하는 가장 기본적인 명령문입니다. 특정 컬럼을 선택하거나 모든 컬럼을 조회할 수 있습니다. 기본 예제는 아래와같습니다.
SELECT 컬럼명1, 컬럼명2
FROM 테이블명;
예제:
SELECT name, age
FROM users;
이 쿼리는 users
테이블에서 name
과 age
컬럼의 데이터를 조회합니다.
2. WHERE - 조건에 따른 데이터 필터링
WHERE는 특정 조건에 맞는 데이터를 조회할 때 사용됩니다. 조건을 사용하여 데이터의 범위를 좁힐 수 있습니다.
SELECT 컬럼명1, 컬럼명2
FROM 테이블명
WHERE 조건;
예제:
SELECT name, age
FROM users
WHERE age > 30;
이 쿼리는 나이가 30세 이상인 사용자의 이름과 나이를 조회합니다.
3. ORDER BY - 데이터 정렬
ORDER BY는 조회된 데이터를 특정 컬럼의 값에 따라 정렬할 수 있습니다. 기본값은 오름차순(ASC
)이지만, 내림차순(DESC
)으로도 정렬할 수 있습니다.
SELECT 컬럼명
FROM 테이블명
ORDER BY 컬럼명 ASC|DESC;
예제:
SELECT name, age
FROM users
ORDER BY age DESC;
이 쿼리는 users
테이블에서 나이 기준으로 내림차순 정렬된 데이터를 반환합니다.
4. LIMIT - 조회 결과 개수 제한
LIMIT는 조회된 결과의 개수를 제한할 때 사용됩니다. 데이터베이스에서 대용량 데이터를 다룰 때 특정 수의 행만 가져올 수 있습니다.
SELECT 컬럼명
FROM 테이블명
LIMIT 숫자;
예제:
SELECT name
FROM users
LIMIT 5;
이 쿼리는 users
테이블에서 상위 5개의 이름만 조회합니다.
5. DISTINCT - 중복 제거
DISTINCT는 중복된 값을 제거하고 고유한 값만 조회할 때 사용됩니다. 특정 컬럼에서 중복된 데이터를 제거할 수 있습니다.
SELECT DISTINCT 컬럼명
FROM 테이블명;
예제:
SELECT DISTINCT department
FROM employees;
이 쿼리는 employees
테이블에서 중복되지 않은 부서 이름만 반환합니다.
6. GROUP BY - 그룹화된 데이터 조회
GROUP BY는 데이터를 그룹화하여 요약된 결과를 조회할 때 사용됩니다. 주로 집계 함수와 함께 사용됩니다.
SELECT 컬럼명, 집계함수(컬럼명)
FROM 테이블명
GROUP BY 컬럼명;
예제:
SELECT department, COUNT(*)
FROM employees
GROUP BY department;
이 쿼리는 각 부서별로 직원 수를 계산하여 반환합니다.
7. HAVING - 그룹화된 데이터에 조건 적용
HAVING은 GROUP BY로 그룹화된 데이터에 조건을 적용할 때 사용됩니다. WHERE는 개별 행에 조건을 적용하지만, HAVING은 그룹화된 데이터에 조건을 적용합니다.
SELECT 컬럼명, 집계함수(컬럼명)
FROM 테이블명
GROUP BY 컬럼명
HAVING 집계함수(컬럼명) 조건;
예제:
SELECT department, COUNT(*)
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
이 쿼리는 직원이 5명 이상인 부서만 조회합니다.
8. JOIN - 여러 테이블에서 데이터 조회
JOIN은 여러 테이블에서 데이터를 결합하여 조회할 때 사용됩니다. 다양한 종류의 JOIN이 있지만, 가장 많이 사용되는 것은 INNER JOIN과 LEFT JOIN입니다.
SELECT 테이블1.컬럼명, 테이블2.컬럼명
FROM 테이블1
JOIN 테이블2 ON 테이블1.컬럼명 = 테이블2.컬럼명;
예제:
SELECT orders.order_id, customers.name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
이 쿼리는 orders
테이블과 customers
테이블을 결합하여 주문 ID와 고객 이름을 조회합니다.
9. 서브쿼리 - 중첩된 쿼리
서브쿼리는 하나의 쿼리 안에 다른 쿼리를 중첩해서 사용하는 방식으로, 복잡한 데이터 조회를 가능하게 해줍니다.
SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 IN (서브쿼리);
예제:
SELECT name
FROM users
WHERE department_id IN (
SELECT department_id
FROM departments
WHERE location = 'Seoul'
);
이 쿼리는 Seoul
에 위치한 부서에 속한 사용자의 이름을 조회합니다.
마무리
SQL 문법에서 데이터를 읽고 조회하는 명령문을 사용하면 다양한 방법으로 데이터를 필터링, 정렬, 그룹화할 수 있는 장점이 있어 요새 정말 많이 사용합니다.특히 가장 기초적인 SELECT
문을 기반으로 WHERE, ORDER BY, GROUP BY, JOIN과 같은 명령어를 활용하면 복잡한 데이터베이스 구조에서도 원하는 데이터를 간단하게 추출할 수 있습니다. 이상으로 기본적인 SQL 문법과 기초코드에 대해 알아보앗습니다.