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값 …]);

- 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 [사용자명];
