개발/CS

[DB] SQL - DDL, DML, DCL, TCL (데이터 정의어, 조작어, 제어어)

zz132456zz 2022. 5. 19. 22:47
728x90

★DDL (Data Definition Language) : 데이터 정의어

데이터베이스 객체(table, view, index, ...)의 구조를 정의한다.
테이블 생성, 컬럼 추가, 타입 변경, 제약조건 지정, 수정 등

CREATE - 데이터베이스 객체를 생성한다.
ALTER - 기존에 존재하는 데이터베이스 객체를 수정한다.
DROP - 데이터베이스 객체를 삭제한다.

테이블 생성 제약 조건

제약 조건이란 컬럼에 저장될 데이터의 조건을 설정하는 것이다. 제약조건을 설정하면 조건에 위배되는 데이터는 저장이 불가하다.
테이블 생성시 컬럼에 직접 지정하거나 constraint로 지정하거나 ALTER를 이용해서 설정이 가능하다.


NOT NULL

- 컬럼에 NULL 값을 저장할 수 없고 반드시 쿼리문을 이용하여 값을 지정해야 한다.


UNIQUE

- 컬럼에 중복된 값을 저장할 수 없다. NULL값은 허용한다.


PRIMARY KEY

- 컬럼에 중복된 값을 저장할 수 없고, NULL 값도 허용하지 않는다. 주로 ROW를 구분하기 위한 유일한 값을 지정할 때 사용하고 '기본키'라고도 부른다.


FOREIGN KEY

- 특정 테이블의 PK 컬럼에 저장되어 있는 값만 저장한다. '참조키', '외래키'라고도 부르고 NULL값을 허용한다. referencse를 이용하여 어떤 컬럼에 어떤 데이터를 참조하는지 반드시 지정해야 한다.


DEFAULT

- NULL값이 들어올 경우 기본 설정되는 값을 지정한다.


CHECK

- 값의 범위나 종류를 지정한다.

 

 

★DML (Data Manipulation Language) : 데이터 조작어

Data 조작 기능을 담당한다.
테이블의 레코드를 CRUD (Create, Read, Update, Delete)

INSERT (C) - 데이터베이스 객체에 데이터를 입력한다.
SELECT (R) - 데이터베이스 객체에서 데이터를 조회한다.
UPDATE (U) - 데이터베이스 객체에 데이터를 수정한다.
DELETE (D) - 데이터베이스 객체에 데이터를 삭제한다.

UPDATE 문에서 WHERE 절을 생략하면 모든 데이터가 바뀐다.
DELETE 문에서 WHERE 절을 생략하면 모든 데이터가 삭제된다.

SELECT clause

*

- FROM 절에 나열된 테이블에서 모든 열을 선택한다.


ALL

- 선택된 모든 행을 반환한다. ALL이 default라 생략이 가능하다.


DISTINCT

- 선택된 모든 행 중에서 중복 행을 제거한다.


column

- FROM 절에 나열된 테이블에서 지정된 열을 선택한다.


expression

- 표현식은 값으로 인식되는 하나 이상의 값으로, 연산자 및 SQL 함수의 조합을 뜻한다.


alias

- 별칭

 

 

★DCL (Data Control Language) : 데이터 제어어

DB, Table의 접근권한이나 CRUD 권한을 정의한다.
특정 사용자에게 테이블의 검색 권한을 부여, 금지 등을 한다.

GRANT - 데이터베이스 객체에 권한을 부여한다.
REVOKE - 데이터베이스 객체에 권한을 취소한다.

 

 

★TCL (Transaction Control Language) : 트랜잭션 제어어

트랜잭션이란 데이터베이스의 상태를 변화시키는 일종의 작업 단위를 의미한다.

COMMIT - 실행한 Query를 최종적으로 적용한다.
ROLLBACK - 실행한 Query를 마지막 commit 전으로 취소시켜 데이터를 복구한다.

 

 

 

 

 

 

 

 

 

 

728x90