SQL(Structured Query Language)
데이터베이스에서 데이터를 저장, 수정, 삭제, 조회하는 데 사용하는 언어입니다.
쿼리 종류
데이터 정의어
DDL (Data Definition Language): 데이터베이스 구조를 정의
- CREATE : 데이터베이스, 테이블, 인덱스 등을 생성
- ALTER : 테이블 구조 변경 (컬럼 추가/삭제, 데이터 타입 변경 등)
- DROP : 데이터베이스, 테이블, 인덱스 삭제
- TRUNCATE : 테이블의 모든 데이터를 삭제(롤백 불가)
데이터 조작어
DML (Data Manipulation Language)
- INSERT : 데이터 삽입
- UPDATE : 데이터 수정
- DELETE : 데이터 삭제
데이터 질의어
DQL (Data Query Language)
- SELECT : 데이터 조회
데이터 제어어
DCL (Data Control Language): 데이터베이스의 접근 권한을 제어
- GRANT : 사용자에게 특정 권한 부여
- REVOKE : 사용자 권한 회수
트랜잭션 제어어
TCL (Transaction Control Language): 트랜잭션을 관리하는 명령어입니다.
- COMMIT : 변경 내용을 저장
- ROLLBACK : 변경 내용을 취소
- SAVEPOINT : 트랜잭션 내에서 특정 시점 저장
순서
SQL 작성 순서
SELECT 컬럼명
FROM 테이블명
WHERE 조건
GROUP BY 컬럼명
HAVING 조건
ORDER BY 컬럼명;
SQL 실행 순서
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
FROM: 조회할 테이블 결정
WHERE: 조건을 만족하는 데이터 필터링
GROUP BY: 특정 컬럼을 기준으로 그룹화
HAVING: 그룹화된 데이터 중 조건을 만족하는 데이터 필터링
SELECT: 필요한 컬럼 선택
ORDER BY: 정렬
쿼리 예시
SELECT department, COUNT(*) AS employee_count, AVG(salary) AS avg_salary
FROM employees
WHERE salary > 5000 # 급여가 5000 이상인 데이터 필터링
GROUP BY department # department 기준으로 그룹화
HAVING AVG(salary) > 7000 # 그룹별 평균 급여가 7000 이상인 것만 필터링
ORDER BY avg_salary DESC; # 평균 급여가 높은 순으로 정렬
# FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY