SQL(Structured Query Language)은 데이터베이스에서 정보를 조회하고 수정하고 삭제하는 언어입니다. 개발자, 데이터 분석가, 기획자 등 데이터를 다루는 모든 사람에게 필수적인 기술이죠. 이 글에서는 SQL의 가장 기초적인 문법들을 예제와 함께 정리합니다. 처음 배우는 분들도 쉽게 따라할 수 있도록 구성했으니, 차근차근 따라와 보세요!
SQL이란 무엇인가?
SQL은 "Structured Query Language"의 줄임말로, 데이터베이스(DB)에서 데이터를 조작하고 관리하기 위한 표준 언어입니다. 다양한 DBMS(MySQL, PostgreSQL, Oracle 등)에서 사용되며, 문법은 대부분 유사합니다.
SELECT 문 - 데이터를 조회하는 기본 문법
SELECT 문은 데이터베이스에서 원하는 데이터를 가져올 때 사용합니다. 가장 기본적인 형태는 아래와 같습니다.
SELECT column1, column2
FROM table_name;
✅ 예제
SELECT name, age
FROM users;
🔎 설명: users 테이블에서 name과 age 컬럼만 가져옵니다.
✅ 모든 컬럼 조회
SELECT * FROM users;
*는 모든 컬럼을 의미합니다. 실습용으로는 좋지만, 실제 프로젝트에서는 필요한 컬럼만 지정하는 것이 좋습니다.
WHERE 조건문 - 원하는 행만 선택하기
WHERE는 특정 조건을 만족하는 행(row)만 조회할 때 사용합니다.
SELECT name, age
FROM users
WHERE age > 25;
🔎 25세 초과인 사용자만 조회합니다.
✅ 다양한 조건 연산자
= | 같다 | age = 30 |
!= | 같지 않다 | name != 'Tom' |
>, < | 크다/작다 | score > 80 |
BETWEEN | 사이 값 | age BETWEEN 20 AND 30 |
LIKE | 유사한 문자열 | name LIKE 'A%' (A로 시작) |
IN | 포함 여부 | city IN ('Seoul', 'NYC') |
ORDER BY - 정렬하기
데이터를 정렬하려면 ORDER BY를 사용합니다.
SELECT name, age
FROM users
ORDER BY age DESC;
🔎 나이(age)를 기준으로 내림차순(DESC) 정렬합니다. 오름차순은 ASC입니다.
LIMIT - 결과 개수 제한하기
많은 데이터를 다룰 때, 결과의 개수를 제한하고 싶다면 LIMIT을 사용하세요.
SELECT * FROM users
LIMIT 5;
🔎 상위 5개의 행만 출력합니다.
GROUP BY - 데이터를 묶어서 집계하기
GROUP BY는 같은 값을 기준으로 데이터를 묶어서 집계할 때 사용합니다. 예를 들어, 부서별 직원 수를 알고 싶을 때 유용합니다.
SELECT department, COUNT(*) AS num_employees
FROM employees
GROUP BY department;
🔎 부서별로 몇 명의 직원이 있는지 계산합니다.
자주 사용하는 집계 함수
함수 설명
COUNT() | 행 개수 계산 |
SUM() | 합계 계산 |
AVG() | 평균 |
MAX() | 최댓값 |
MIN() | 최솟값 |
HAVING - 그룹에 조건을 걸기
WHERE는 개별 행에 조건을 걸 때, HAVING은 GROUP BY 결과에 조건을 걸 때 사용합니다.
SELECT department, COUNT() AS num_employees
FROM employees
GROUP BY department
HAVING COUNT() > 5;
🔎 직원 수가 5명 초과인 부서만 보여줍니다.
DISTINCT - 중복 제거
중복된 값을 제거하고 싶을 때 DISTINCT를 사용합니다.
SELECT DISTINCT city FROM users;
🔎 중복 없이 고유한 도시명만 가져옵니다.
실제 예제로 보는 종합 쿼리
SELECT department, AVG(salary) AS avg_salary
FROM employees
WHERE hire_date >= '2020-01-01'
GROUP BY department
HAVING AVG(salary) > 5000
ORDER BY avg_salary DESC
LIMIT 3;
🔎 2020년 이후 입사자 중에서, 평균 연봉이 5000 이상인 부서만 뽑고, 그 중 상위 3개 부서를 평균 연봉 내림차순으로 정렬한 쿼리입니다.
SQL 초보자가 자주 하는 실수
1. 세미콜론 누락: 대부분 SQL은 명령 끝에 ;를 붙여야 합니다.
2. 대소문자 민감 여부: 대부분 SQL은 대소문자를 구분하지 않지만, 문자열 값 비교는 민감할 수 있습니다.
3. WHERE vs HAVING 혼동: 조건을 거는 대상이 “행”인지 “집계 결과”인지 파악하세요.
4. SELECT * 남용: 실무에서는 필요한 컬럼만 선택하는 습관을 들이세요.
SQL은 언어다, 꾸준히 연습하자
SQL은 단순한 쿼리 언어처럼 보이지만, 강력한 데이터 처리 능력을 가진 도구입니다. 위에서 설명한 문법은 전체 SQL의 시작일 뿐이고, JOIN, 서브쿼리, 윈도우 함수, 인덱스 등 더 깊은 영역이 존재합니다.
📌 추천 학습 팁:
1. 무료 SQL 실습 사이트: SQLZoo, Mode Analytics
2. SQLite, MySQL 등으로 로컬에서 연습
3. 자신의 일상 데이터를 SQL로 정리해보기 (가계부, 운동 기록 등)
✅ 다음 편 예고
다음 글에서는 SQL JOIN에 대해 자세히 다룰 예정입니다. 테이블을 결합해서 더 풍부한 데이터를 만들어내는 방법이 궁금하다면 다음 편도 기대해주세요!