Language/SQL

[SQL] SQL의 종류(데이터 제어어 DCL, 데이터 정의어 DDL, 데이터 조작어 DML)

ye_ju 2022. 9. 30. 10:31
SQL의 종류

 

명령어 종류 명령어 설명
데이터 제어어
(DCL : Data Control Language)
GRANT
REVOKE
데이터 베이스에 접근하고 객체들을 사용하도록 권한을 설정하는 명령어
데이터 정의어
(DDL: Data Definition Language)
CREATE
ALTER
DROP
테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어
데이터 조작어
(DML : Data Manipulation Language)
SELECT 데이터베이스에 들어있는 데이터를 조회 및 검색하는 명령어
INSERT
UPDATE
DELETE
데이터베이스의 데이터에 변형을 가하는 명령어

 

데이터 정의어 (DDL)

 

  • CREATE 문

데이터베이스의 정보를 검색하고 수정하기 이전에 해야할 일이 이러한 정보를 저장하는 개체를 만드는 일

CREATE TABLE [테이블명](
[컬럼명1] [데이터타입],
[컬럼명2] [데이터타입] [NULL/NOT NULL],
[PRIMARY KEY([컬럼명1], [컬럼명2] …),  # 주키
UNIQUE([컬럼명1], [컬럼명2] …),        # 고윳값
FOREIGN KEY([컬럼명1], [컬럼명2] …)    # 외래키
REFERENCE 테이블명[(컬럼명…)]],
… );

 

  • MSSQL의 제약조건

데이터의 무결성을 지키기 위해 제한된 조건

 

제약조건 설명
PRIMARY KEY 테이블에 존재하는 많은 행의 데이터를 구분할 수 있는 식별자
FOREIGN KEY 두 테이블 사이의 관계를 선언함으로써, 데이터의 무결성을 보장해주는 역할
UNIQUE 중복되지 않는 유일함을 부여하고 싶을 때 사용하는 제약 조건
CHECK 특정 조건들로 이루어진 수식을 통해 입력되는 데이터를 검증할 때 사용
DEFAULT 정의 값을 입력하지 않았을 때, 자동으로 입력되는 기본 값을 정의하는 방법

 

  • ALTER 문

생성된 개체를 수정할 때 사용되는 DDL문

ALTER TABLE [테이블명]
(ADD [추가할 컬럼명] [데이터 타입] [NULL or NOT NULL]);

 

  • DROP 문

생성된 테이블을 삭제하는데 사용

DROP TABLE [테이블명]

 

데이터 조작어 (DML)

 

▶ 정의

적절한 데이터 모델로 구축된 데이터를 접근하고 조작하기 위한 언어.

Table, Index, View, Stored Procedure 등과 같은 데이터베이스의 개체들의 데이터를 생성, 수정, 삭제하는데 사용된다. 

명령어 기능
SELECT 조건에 맞는 데이터를 검색
INSERT 새로운 데이터를 삽입
DELETE 조건에 맞는 데이터를 삭제
UPDATE 조건에 맞는 데이터의 내용을 변경

 

  • SELECT 문

테이블이나 뷰에서 데이터 검색 시 사용.

Keyword : SELECT, FROM, WHERE 등

SELECT [컬럼명1], [컬럼명2] … FROM [테이블명] WHERE [조건];

 

  • INSERT 문

테이블에 데이터를 추가할 때 사용

INSERT INTO [테이블명] (컬럼1, 컬럼2 …)
VALUES ([컬럼1값, 컬럼2값 …]);

INSERT문

 

  • DELETE 문

테이블에 데이터를 삭제할 때 사용

DELETE [테이블명] WHERE [조건];

 

  • UPDATE 문

테이블이나 뷰의 특정 데이터를 수정할 때 사용

UPDATE [테이블명]
SET [컬럼명1] = [변경값1], [컬럼명2] = [변경값2], …
WHERE [조건];

 

데이터 제어어(DCL)

 

▶ 정의

데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 언어

데이터베이스 사용자에게 GRANT 및 REVOKE로 설정 가능한 권한

명령어 기능
GRANT 사용자로부터 객체들에게 접근을 허용
REVOKE 사용자로부터 객체들에게 접근을 거부

 

  • GRNAT 문

테이블이나 뷰 등에 대해 접근권한을 설정하는 DCL문

GRANT [권한1, 권한2 …] ON [테이블명] TO [사용자명];

 

  • REVOKE 문

테이블이나 뷰 등에 대해 접근권한을 해제하는 DCL문

REVOKE [권한1, 권한2 …] ON [테이블명] FROM [사용자명];