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 변경테이블명;