SQL Structured Query Language
집합적 언어 ↔ 프로그래밍 언어
- 어떤 조건에 맞는 데이터를 한번에 모두 처리하는 언어
SQL 표준
- 하나의 RDBMS 에서 SQL 사용법을 익히면 종류에 상관 없이 어떤 RDBMS 에서 사용 가능
DDL 데이터 정의어
Data Definition Language
- 테이블을 비롯해 어떤 객체를 생성, 삭제, 수정할 때 사용하는 문장
종류 | 설명 |
---|
CREATE | 데이터베이스 객체를 생성할 때 사용 |
ALTER | 기존 객체를 수정할 때 사용 |
DROP | 기존 객체를 삭제할 때 사용 |
TRUNCATE TABLE | 테이블에 있는 데이터 전체를 삭제할 때 사용 |
RENAME TABLE | 테이블의 이름을 변경할 때 사용 |
⚠️ DDL 은 객체의 생성, 수정, 삭제할 때 사용하므로 사용 빈도가 낮다. ⬇️
DML 데이터 조작어
- 데이터를 조작하는데 사용하는 언어
- CRUD 입력, 조회, 수정, 삭제
⚠️ 전체 SQL 중 DML 사용빈도가 90% 이상 🔺
종류 | 설명 |
---|
SELECT | 테이블에 있는 데이터를 조회할 때 사용한다. |
DML 전체에서 SELECT 문이 90% 이상 사용 | |
INSERT | 테이블에 데이터를 새로 넣을 때 (입력할 때) 사용한다. |
UPDATE | 테이블에 입력된 데이터를 수정할 때 사용한다. |
DELETE | 테이블에 있는 데이터를 삭제할 때 사용 |
TCL 트랜잭션 제어어
- RDBMS 특징 중 하나인 트랜잭션을 처리하는 SQL 문장
- TCL 은 데이터의 변경 사항을 최종으로 적용하는 역할
- DML 중
SELECT
를 제외한 INSERT
, UPDATE
, DELETE
문을 수행한 후 TCL 문장들을 사용
종류 | 설명 |
---|
COMMIT | 데이터 조작 작업이 성공하면 모든 데이터 변경사항 (입력, 수정, 삭제) 을 반영하는 문장 |
ROLLBACK | 데이터 조작 작업이 실패하거나 작업을 취소하고 싶을 때 사용 모든 작업이 취소되고 변경 전상태로 돌아간다. |
START TRANSACTION 또는 BEGIN | 새로운 트랜잭션이 시작됨을 알리는 문장 START TRANSACTION 또는 BEGIN 문이 실행된 후에 입력된 DML 문장부터 COMMIT 문이나 ROLLBACK 문을 만날 때까지가 하나의 트랜잭션 |
SAVEPOINT | 트랜잭션에 이름을 부여하는 문장 SAVEPOINT 문을 사용하면 지정된 이름으로 트랜잭션 시작 COMMIT 이나 ROLLBACK 문 만나면 트랜잭션 종료 |
SET autocommit | MySQL 에서 자동 커밋 모드를 설정하는 문장 모든 DML 문장을 실행하고 별도로 COMMIT 문을 실행하지 않아도 자동으로 데이터 변경사항이 적용된다. MySQL 은 기본으로 자동 커밋 모드 활성화 |
DCL 데이터 제어어
종류 | 설명 |
---|
GRANT | 특정 사용자에게 특정 작업을 수행할 수 있는 권한을 부여한다. |
REVOKE | 부여된 권한을 회수한다. |