가장 기본이 되는 문장입니다.
SELECT column_name
FROM table_name;
SELECT name
FROM users;
→ users 테이블에서 name 컬럼 조회
SELECT name, age
FROM users;
SELECT *
FROM users;
✔ 실무에서는 * 사용을 지양합니다.
필요한 컬럼만 명시하는 것이 성능과 가독성 측면에서 좋습니다.
조건에 맞는 데이터만 조회합니다.
SELECT *
FROM users
WHERE age >= 20;
| 연산자 | 의미 |
|---|---|
| = | 같다 |
| != / <> | 다르다 |
| > | 크다 |
| < | 작다 |
| >= | 크거나 같다 |
| <= | 작거나 같다 |
SELECT *
FROM users
WHERE age >= 20 AND gender = 'F';
→ 20세 이상이면서 여성
SELECT *
FROM users
ORDER BY age;
기본은 오름차순(ASC)
SELECT *
FROM users
ORDER BY age DESC;
MySQL에서 자주 사용하는 기능입니다.
SELECT *
FROM users
LIMIT 5;
→ 상위 5개 조회
SELECT *
FROM users
LIMIT 0, 10;
→ 0번부터 10개 조회
(MySQL 문법: LIMIT offset, count)
SELECT gender, COUNT(*)
FROM users
GROUP BY gender;
→ 성별 인원 수 집계
SELECT 절에 있는 컬럼은
이 원칙을 이해해야 집계 쿼리가 정확해집니다.
SELECT gender, COUNT(*)
FROM users
GROUP BY gender
HAVING COUNT(*) >= 10;
→ 집계 결과에 조건 적용
INSERT INTO users (name, age)
VALUES ('Tom', 25);
UPDATE users
SET age = 30
WHERE name = 'Tom';
✔ WHERE 조건이 없으면 전체 데이터 수정
DELETE FROM users
WHERE name = 'Tom';
✔ WHERE 조건이 없으면 전체 데이터 삭제
작성 순서와 실제 실행 순서는 다릅니다.
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
LIMIT
이 흐름을 이해하면
집계 쿼리의 동작 원리를 더 정확히 파악할 수 있습니다.