Study/DB
DDL (Data Definition Language)
LireEruel
2023. 10. 13. 10:03
DDL (Data Definition Language)
- 데이터 정의어
- 데이터베이스 객체(table, view, index ... )의 구조를 정의
- 테이블 생성, 컬럼 추가, 타입 변경, 제약 조건 지정, 수정 등
create | 데이터베이스 객체 생성 |
drop | 데이터베이스 객체 삭제 |
alter | 기존에 존재하는 데이터베이스 객체 수정 |
데이터베이스 생성 create
Charater set은 각 문자가 컴퓨터에 저장될 때 어떠한 '코드'로 저장될지에 대한 규칙의 집합 의미
Collation은 특정 문자 셋에 의해 데이터베이스에 저장된 값들을 비교 검색하거나 정렬 등의 작업을 위해 문자들을 서로 '비교'할 때 사용하는 규칙들의 집합을 의미
# 기본 생성
create database 데이터베이스명;
# 다국어 처리
create database 데이터베이스명
default character set utf8mb3 collate utf8mb3_general_ci;
# 이모지 문자까지 처리
create database 데이터베이스명
default character set utf8mb4 collate utf8mb3_general_ci;
데이터베이스 변경 alter
alter database 데이터베이스명
default charater set 값 collate 값;
데이터베이스 삭제
drop database DB_이름;
# example
drop database dbtest;
데이터베이스 사용
use DB_이름
# example
use ssafydb;
자주 쓰는 Data Type
문자형 데이터 타입
데이터 유형 | 정의 |
CHAR[(M)] | 고정 길이를 갖는 문자열을 저장 |
VARCHAR[(M)] | 가변 길이를 갖는 문자열을 저장 |
TEXT[(M)] | 최대 65546 byte |
숫자형 데이터 타입
데이터 유형 | 바이트 | 정의 |
INT[(M)] | 4 | JAVA와 같은 INT 범위 |
TYNYINT(1) | 1 | JAVA의 boolean |
날짜형 데이터타입
데이터 유형 | 바이트 | 정의 |
DATETIME | 8 | YYYY-MM-DD HH:MM:SS 형식의 날짜형 데이터를 저장한다. |
TIMESTAMP | 4 | Index가 더 빠르게 생성 |
table 생성
create table table_name(
column_name Type [optional attributes],
col2 Type,
...
)
optional attributes ( 제약조건 )
- 컬럼에 저장될 데이터의 조건을 설정하는 것
- 제약조건을 설정하면 조건에 위배되는 데이터는 저장 불가
- 테이블 생성시 컬럼에 직접 지정하거나 constraint로 지정, 또는 ALTER를 이용하여 설정 가능.
use ssafydb;# 어떤 db를 사용할 것인지 명시해야합니다.
create table ssafy_member (
idx int auto_increment not null,
userid varchar(16) not null unique,
username varchar(20),
userpwd varchar(16),
emailid varchar(20),
emailidomain varchar(50),
joindate timestamp default current_timestamp,
primary key(idx)
)
table 변경
# 컬럼 추가
ALTER TABLE 테이블명 ADD COLUMN 컬럼명 data-type 제약조건;
# 컬럼 변경
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 data-type 제약조건;
# 컬럼 이름 변경
ALTER TABLE 테이블명 CHANGE COLUMN 이전컬럼명 변경컬럼명 data-type 제약조건;
# 컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
# 테이블 이름 변경
ALTER TABLE 이전테이블명 RENAME 변경테이블명;