본문 바로가기

DB - MySQL

DDL(Data Definition Language)

반응형

1. DDL(Data Definition Language)란?

데이터베이스의 구조를 정의하는 데 사용된다. SQL DDL은 데이터베이스 관리자가 데이터베이스를 생성, 수정, 삭제하는 데 사용되는 명령어들을 의미한다. 주요한 DDL 명령어로는 CREATE, ALTER, DROP, TRUNCATE 등이 있다.

2. CREATE 구문

CREATE 문은 새로운 데이터베이스, 테이블, 뷰, 인덱스, 프로시저 등을 만든다. 새로운 데이터베이스를 만들 때, CREATE DATABASE 문을 사용하며, CREATE TABLE 문을 사용하여 새로운 테이블을 만든다.

1) 일반적으로 database와 table 생성하는 방법

**[ 기본 구문 ]**
CREATE DATABASE name;
CREATE TABLE table1( column_dfinition );

**[ 예시 ]**
DROP DATABASE IF EXISTS testdb;
CREATE DATABASE testdb;
USE testdb;

****DROP DATABASE IF EXISTS cutomers;
CREATE TABLE cutomers(
	cNo int auto_increment primary key,
	cName varchar(15) not null,
	cAge int not null,
	cAddress varchar(100),
	cPhone varchar(13)
);


2) 하위 쿼리에 의해 검색된 테이블과 동일한 구조로 테이블 생성하는 방법

DROP DATABASE IF EXISTS tb1;
CREATE TABLE tb1 AS SELECT column1, column2 FROM table2;

2. ALTER 구문

ALTER 문은 이미 존재하는 데이터베이스, 테이블, 뷰, 인덱스, 컬럼 등을 수정하는 데 사용된다. ALTER 문을 사용하여 테이블에 새로운 컬럼을 추가하거나, 컬럼의 데이터 타입을 변경하거나, 인덱스를 추가하거나, 뷰의 쿼리를 변경할 수 있다.


1) 열 추가

**[ 기본 구문 ]**
ALTER TABLE table1 ADD COLUMN column1 data_type;

**[ 예시 ]**
ALTER TABLE employees ADD COLUMN salary int;

해석: employees 테이블에서 salary 열을 추가한다.


2) 데이터 구조 변경

**[ 기본 구문 ]**
ALTER TABLE table1 MODIFY COLUMN column1 new_data_type;

**[ 예시 ]**
ALTER TABLE employees MODIFY COLUMN salary VARCHAR(255);

해석: employees 테이블에서 salary 열의 타입을 int에서 VARCHAR(255)로 변경한다.


3) 컬럼 이름 변경

**[ 기본 구문 ]**
ALTER TABLE table1 RENAME COLUMN column1 TO new_column_name;

**[ 예시 ]**
ALTER TABLE employees RENAME COLUMN salary TO wage;

해석: employees 테이블에서 salary 열의 이름을 wage로 변경한다.

3. DROP 구문

DROP 문은 데이터베이스, 테이블, 뷰, 인덱스 등을 삭제하는 데 사용된다. DROP 문을 사용하여 테이블을 삭제하면 해당 테이블의 모든 레코드가 삭제된다.

**[ 기본 구문 ]**
DROP DATABASE name;
DROP TABLE table1;

4. RENAME 구문

RENAME구문을 이용하여 테이버에스, 테이블, 뷰, 인덱스 등의 이름을 변경할 수 있다.

**[ 기본 구문 ]**
RENAME DATABASE db_name TO new_db_name;
RENAME TABLE table_name TO new_table_name;

*주의사항: 데이터베이스 이름과 테이블 이름을 변경하기 전에, 모든 응용 프로그램과 쿼리가 해당 이름을 사용하고 있는지 확인해야 한다. 또한, 변경 후 다른 쿼리에서 참조되는 모든 객체의 이름을 업데이트해야 한다. 그리고, DAO에 연결되어 있는 DB명과 이용하고 있는 쿼리의 table명 모두 확인해야한다.

반응형

'DB - MySQL' 카테고리의 다른 글

INESERT, UPDATE, DELETE 구문  (0) 2023.05.24
테이블 붙이기 - UNION, JOIN  (0) 2023.05.24
서브쿼리와 상관 서브 쿼리  (0) 2023.05.24
SELECT문 - NULL값 관리  (0) 2023.05.23
SELECT문 - 조건문 활용  (0) 2023.05.23