DDL 뜻과 개념에 대해서 이야기해봅시다.
DDL 뜻과 개념 알기
DDL 뜻(Data Definition Language)은 SQL(Structured Query Language)에서 데이터를 정의하는 명령어로 데이터베이스(DataBase)의 구조와 테이블(Table), 뷰(View), 인덱스(Index), 프로시저(Procedure)와 같은 개체를 정의하는데 사용하는 구문입니다.
DDL(Data Definition Language)은 테이블(Table), 뷰(View), 인덱스(Index), 저장 프로시저(Stored Procedure), 데이터베이스(DataBase)의 개체를 생성하고 변경하고 삭제하는데 사용되는 명령어들입니다.
DDL의 대표적인 명령어로는 CREATE, ALTER, DROP, RENAME, TRUNCATE가 있습니다.
DDL 뜻과 개념 설명
DDL 뜻(Data Definition Language)은 데이터베이스(DataBase) 내에서 데이터를 정의하는 SQL 언어와 명령어들을 의미합니다. DDL은 데이터베이스의 논리적 구조를 정의하기 위한 언어입니다.
DDL(Data Definition Language)은 데이터 정의어입니다. DDL은 데이터를 정의하는 SQL입니다.
DDL은 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 생성, 변경, 삭제, 이름 변경과 같은 데이터 구조와 관련된 명령어들입니다.
DDL은 데이터베이스의 스키마(Schema)를 정의하거나 조작하기 위해서 사용하는 명령어들의 집합입니다. DDL에는 CREATE, ALTER, DROP, RENAME, TRUNCATE의 5가지 명령어들이 있습니다.
[DDL의 5가지 명령어들]
구분 | 내용 |
1 | CREATE |
2 | ALTER |
3 | DROP |
4 | RENAME |
5 | TRUNCATE |
CREATE는 테이블을 생성하고 정의합니다. ALTER는 테이블의 구조를 변경합니다. DROP은 테이블과 컬럼을 삭제할 수 있습니다. RENAME은 테이블의 이름을 변경할 수 있습니다. TRUNCATE는 테이블을 삭제할 수 있습니다.
CREATE 쿼리를 수행할 때 테이블(Entity)을 생성하면서 그 안에 담기게 될 데이터에 대한 데이터 유형을 정의해야 합니다. 문자를 담을지, 숫자를 담을지를 정하고 SQL에 명시하는 방법으로 데이터를 정의하게 됩니다. 데이터 유형은 문자 타입, 숫자 타입, 날짜 타입이 있습니다. 데이터베이스가 데이터를 어떤 방식으로 저장할지를 정하는 기준입니다.
예를 들어 날짜를 데이터베이스에 저장할 때 20240101은 데이터베이스에서는 문자가 될 수 있고 숫자가 될 수도 있고 날짜도 될 수 있습니다. 만약 선언해 놓은 유형이 아니라 다른 유형의 데이터를 저장하려고 한다면 데이터베이스에서는 오류를 발생할 수 있습니다. 데이터 유형을 정의하면서 크기도 함께 정의해줍니다. 그리고 정의된 크기보다 더 큰 데이터를 저장하려고 한다면 이 경우도 데이터베이스에서 에러가 발생하게 됩니다. 문자 데이터 유형에는 CHAR와 VARCHAR 4가지가 있습니다. 이는 크기가 고정인지 아니면 가변인지를 구분합니다.
CREATE는 테이블을 생성하기 위한 명령어입니다. 테이블을 생성할 때는 규칙을 잘 지켜야 합니다. 테이블 명은 고유한 이름이어야 하고 한 테이블 안에서는 컬럼명이 고유해야 합니다. 컬럼 뒤에는 데이터 유형과 데이터의 크기가 반드시 명시되어야 합니다. 컬럼에 대한 정의는 괄호 안에 기술하고 각 클럼들은 콤마로 구분합니다. 테이블명과 컬럼명은 절대로 숫자로 시작될 수 없습니다. SQL 문의 마지막은 세미 콜론으로 끝내야 합니다. 테이블은 각각 정체성을 가지고 있어야 합니다. 그리고 컬럼명을 정의할 경우 다른 테이블들과 통일성을 가지고 있어야 합니다.
[CREATE 구문 사용 예시]
CREATE TABLE 테이블명(컬럼명1 데이터 타입 (DEFAULT/NULL 여부) ...) ;
CREATE 구문에서 NULL은 존재하지 않는 값이라는 의미이며 DEFAULT는 데이터의 기본 값을 의미합니다. 예를 들어 삭제 여부의 컬럼에 DEFAULT 값을 N으로 정해 놓으면 값을 별도로 명시하지 않을 경우 N으로 세팅되는 것입니다.
ALTER는 한 번 생성된 테이블의 구조를 다시 변경할 수 있는 명령어입니다. 일반적으로 테이블 구조를 잘 변경하지 않지만 시대가 흘러서 변경이 필요하거나 업무가 변경되면서 불가피하게 변경할 필요가 생길 수 있습니다. 이 경우 사용할 수 있습니다. ADD COLUMN은 새로운 컬럼을 추가할 때 사용합니다. DROP COLUMN은 기존에 있었던 컬럼이 필요하지 않게 되었을 때 삭제하는 명령어입니다. 한번 삭제한 컬럼은 다시 복구할 수 없습니다. MODIFY COLUMN은 기존에 있었던 컬럼을 변경하고자 할 대 사용하는 명령어입니다. RENAME COLUMN은 기존에 있었던 컬럼의 이름을 변경하고 싶을 때 사용하는 명령어입니다. ADD CONSTRAINT는 제약 조건을 추가하고자 할 때 사용하는 명령어입니다.
[ALTER 구문 사용 예시]
ALTER TABLE 테이블명 ADD 컬럼명 데이터 유형 ;
ALTER TABLE 테이블명 DROP COLUMN 컬럼명 데이터 유형 ;
ALTER TABLE 테이블명 RENAME COLUMN 변경 전 컬럼명 TO 변경 후 컬럼명 ;
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건 (컬럼명) ;
DROP TABLE은 테이블을 삭제할 때 사용하는 명령어입니다.
[DROP TABLE 구문 사용 예시]
DROP TABLE 테이블명 [CASCADE CONSTRAINT];
RENAME TABLE은 테이블 명을 변경하고자 할 때 사용할 수 있는 명령어입니다.
[RENAME TABLE 구문 사용 예시]
RENAME 변경 전 컬럼명 TO 변경 후 컬럼명
TRUNCATE TABLE은 테이블에 저장되어 있는 데이터들을 모두 없애는 명령어입니다. TRUNCATE는 DELETE와 비슷하지만 저장 공간이 재사용할 수 있도록 초기화되는 형태가 다르며 ROLLBACK이 불가능하다는 특징을 가지고 있습니다.
[TRUNCATE 구문 사용 예시]
TRUNCATE TABLE 테이블명;