→ DB의 논리/물리적 데이터 구조를 정의
| 명령어 | 사용법 |
|---|---|
| CREATE(생성) | CREATE TABLE/SCHEMA/VIEW/INDEX |
| ALTER(수정) | ALTER TABLE [테이블명] 명령어 |
| DROP(삭제) | DROP TABLE/SHCEMA/VIEW/INDEX |
→ DB에 저장된 데이터를 조작하는 역할
| 명령어 | 사용법 |
|---|---|
| SELECT(조회) | SELECT FROM 테이블명 [WHERE 조건] |
| INSERT(삽입) | INSERT INTO 테이블명 VALUES (데이터) |
| DELETE(삭제) | DELETE FROM 테이블명 [WHERE 조건] |
| UPDATE(수정) | UPDATE 테이블명 SET 속성명=데이터[WHERE 조건] |
1. SELECT 컬럼명
2. FROM 테이블명
3. JOIN 테이블명 ON 조건
4. WHERE 조건식
5. GROUP BY 컬럼명
6. HAVING 조건식
7. ORDER BY 컬럼명
8.LIMIT/OFFSET 개수
DB에서 내부적으로 쿼리를 실행하는 순서
1. 먼저FROM 테이블명에서 사용할 테이블이 DB에 존재하는지 체크 후,SELECT권한이 없다면 오류 발생
2. 그 다음,WHERE 조건식에서 특정 조건들에 해당하는row들만 가져온 후
3.GROUP BY 컬럼명에서 해당하는 컬럼으로GROUP BY
4.HAVING 조건식에서는GROUP BY로 그룹화된 데이터에 조건을 적용해 그룹별 필터링
5.SELECT 컬럼명에서는row들 중 어떤 컬럼을 조회할 지 체크
6. 맨 마지막에ORDER BY절을 통해 컬럼에 따라 정렬
-- SELECT 수행 순서
1. FROM 테이블명
(2-0. JOIN 테이블명 ON 조건)
-- JOIN문이 있다면 2번째로 실행
2. WHERE 조건식
3. GROUP BY 컬럼명
4. HAVING 조건식
5. SELECT 컬럼명
6. ORDER BY 컬럼명
(7. LIMIT) LIMIT가 있다면 맨 마지막 실행
-- (LIMIT는 결과의 개수 제한)

사진 출처: ByteByteGo_Understand The SQL Execution Order
-> DB에서 데이터에 접근을 제어하는 역할
| 명령어 | 사용법 |
|---|---|
| GRANT(권한 부여) | GRANT [권한] ON 객체 TO 사용자 |
| REVOKE(권한 회수) | REVOKE [권한] ON 객체 FROM 사용자 |
-> 트랜잭션을 관리하는 역할
| 명령어 | 설명 |
|---|---|
| COMMIT(생성) | 트랜잭션 확정 (변경 사항 저장) |
| ROLLBACK(수정) | 랜잭션 취소 (변경 사항 되돌리기) |
| SAVEPOINT | 트랜잭션 내 특정 지점 저장 |