[SQL] DDL / DML / DCL
2023. 3. 10. 11:07
DDL (Data Definition Language)
: 데이터 정의어 - 데이터 구조 or 스키마 변경
- 테이블과 같은 데이터 구조(스키마)를 정의하는데 사용되는 명령어들로 (생성, 변경, 삭제, 이름변경) 데이터 구조와 관련된 명령어들을 말함.
CREATE | 객체 생성 | |
ALTER | 구조 변경 테이블 수정 (컬럼추가/수정, 제약조건 추가/삭제/활성화/비활성화) |
> ALTER TABLE 테이블명 ADD (..); > ALTER TABLE 테이블명 MODIFY (..); |
DROP | 객체 삭제 테이블 구조 및 모든 행 삭제 |
> DROP TABLE 테이블명 [CASCADE CONSTRAINTS]; --제약조건 삭제 |
TRUNCATE | 테이블의 구조는 남기고 안의 데이터만 삭제 테이블 초기화 |
|
RENAME | 객체 이름 변경 | |
COMMENT | 테이블 또는 컬럼에 주석 추가 |
- 실행 시 자동 commit
- DDL은 데이터 구조 변경 / DML은 데이터 조작(DELETE...)
- 컬럼이 NULL이거나 테이블에 데이터가 없을 때, 컬럼의 크기 축소 및 데이터 타입 변경 가능
- 컬럼에 NULL이 없을 때만 NOT NULL 제약 조건 추가 가능
⭐ DML (Data Manipulation Language)
: 데이터 조작어 - 데이터 값 변경
- 입력, 수정, 삭제
SELECT | 데이터 조회 | - ALL : 기본 옵션. 중복되는 데이터도 모두 출력 - DISTINCT : 중복된 데이터가 있는 경우 1건만 출력 |
INSERT | 데이터 삽입 | |
UPDATE | 데이터 수정 | |
DELETE | 데이터 삭제 | |
MERGE | UPSERT(UPDATE + INSERT) 작업 데이터가 테이블에 존재하지 않으면 INSERT / 존재하면 UPDATE를 수행 |
|
LOCK TABLE | 테이블 잠금 |
DCL (Data Control Language)
: 데이터 제어어 - 접속 권한 변경
GRANT | 특정 작업에 대한 수행 권한 부여 |
REVOKE | 특정 작업에 대한 권한 회수 |
TCL (Transaction Control Language)
: DCL에서 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어
COMMIT | |
ROLLBACK | ROLLBACK TO [savepoint] ) |
SAVEPOINT | (≒ base line, > SAVEPOINT [ ];) |
'Database > SQL' 카테고리의 다른 글
[SQL] 명령어 (0) | 2023.03.17 |
---|---|
[SQL] SQL문 실행 원리 (0) | 2023.03.13 |