본문 바로가기
자격증/정보처리기능사

[정보처리기능사/실기] DDL, DML, DCL 기본 SQL 명령어 요약

by me_in_sk 2023. 5. 13.
반응형

DDL의 정의

DDL은 데이터를 정의하는 언어를 지칭하는 약어로, 보다 엄밀하게 말하면 '데이터를 담는 그릇을 정의하는 언어'이며, 이러한 그릇을 DBMS에서는 '오브젝트'라고 부른다. DDL을 통해 정의를 할 수 있는 것으로는 스키마, 도메인, 테이블, 뷰, 인덱스 등이 있다.

 

먼저 스키마는 DBSM의 특성과 구현 환경을 감안한 데이터 구조로서 하나의 데이터베이스로 이해할 수 있다. 다음으로 도메인은 속성의 데이터 타입과 크기, 제약조건 등을 지정한 정보로써 속성이 가질 수 있는 값의 범위라고 할 수 있다. 테이블은 데이터의 저장 공간을 말하며, 뷰는 하나 이상의 물리 테이블에서 유도되는 가상의 논리 테이블을 뜻한다. 마지막으로 인덱스는 검색을 빠르게 하기 위한 데이터 구조를 말한다.

 

 

DDL의 유형

CREATE      : 데이터베이스 오브젝트를생성

ALTER         : 데이터베이스 오브젝트를변경

DROP          : 데이터베이스 오브젝트를 삭제

TRUNCATE : 데이터베이스 오브젝트의 내용을 삭제하되, 테이블 구조는 유지

 

 

데이터 타입

DDL의 데이터 타입으로는 고정 길이를 가진 문자열 타입인 'CHAR', 가변 길이를 가진 문자열 데이터 타입인 'VARCHAR', 숫자에 사용되는 데이터 타입인 'INT', 소수형 데이터 타입인 'FLOAT', 날짜의 타입을 가진 데이터 타입인 'DATE' 등이 있다. 

 

제약조건 유형으로는 테이블의 기본키를 정의하는  'PRIMARY KEY', 외래키를 정의하며 참조 대상을 테이블 이름(열 이름)으로 명시해야 하며, 참조 무결성을 위배하는 상황이 발생할 시 처리하는 방법으로 사용이 가능한 'FOREIGN KEY', 테이블 내에서 열이 유일한 값을 갖도록 하고, 테이블 내에서 동일한 값을 가져서는 안 되는 항목에 사용되는 'UNIQUE', 테이블 내에서 관련 열의 값은 NULL일 수 없도록 하고, 필수 입력 항복에 대해 제약조건으로 설정하도록 하는 'NOT NULL', 개발자가 정의하는 제약조건으로, 상황에 따라 다양한 조건을 설정할 수 있게 해주는 'CHECK' 등이 있다.

 

 

DML의 정의

DML은 데이터를 조작하는 명령어를 뜻하는 말로, 여기에서 조작이란 데이터 관점에서 생명 주기를 제어하는 것을 의미한다. 

 

DML의 유형

SELECT : 데이터 조회

DELETE : 데이터 삭제

UPDATE : 데이터 변경

INSERT  : 데이터 추가

 

SELECT 문에서는 중복된 값을 한 번만 검색되도록 하는 'DISTINCT'와 두 값의 사이를 만족하는 부분을 검색하는 'BETWEEN', 참조하는 부분 중 하나라도 만족하는 부분을 검색하는 'IN', 오름차순은 ASC, 내림차순은 DESC를 사용하여 정렬을 할 수 있는 'ORDER BY'가 있으며, 'GROUP BY'에 의해 그룹으로 분류된 부분에서 'WHERE' 대신 조건절을 대신하는 'HAVING' 명령어가 있다.

 

 

DCL의 정의

DCL은 데이터베이스에서 데이터 이외의 오브젝트에 대해 조작할 필요가 있을 때 사용하는 명령어이다. DCL의 조작 대상으로는 사용자 권한과 트랜잭션 등이 있으며 사용자 권한은 접근을 통제하는 것으로 사용자를 등록하고, 사용자에게 특정 데이터베이스를 사용할 수 있는 권리를 부여하는 작업이다. 트랜잭션은 안전한 거래를 보장하는 목적으로 사용되며, 동시에 다수의 작업을 독립적으로 안전하게 처리하기 위한 상호작용 단위이다.

 

 

DCL의 유형

GRANT   : 데이터베이스 사용자 권한을 부여

REVOKE : 데이터베이스 사용자의 권한을 회수

 

TCL 유형에는 트랜잭션을 확정하는 'COMMIT' 명령어와 트랜잭션은 취소하는 'ROLLBACK', 복귀지점을 설정하는 'CHECKPOINT' 명령어 등이 있다.

이때, TCL은 트랜잭션 제어를 위한 명령어로써 TCL과 DCL은 대상이 달라 서로 별개의 개념으로 분류할 수 있지만, 제어 기능이라는 공통점 덕분에 DCL의 일부로 분류하기도 한다.
반응형

댓글