블로그 내의 모든 예시와 실습은 VMware workstation16.2.3, Centos7을 활용 합니다.

데이터 정의어(DDL, Data Definition Language)

  • 데이터베이스의 구조를 정의하거나 변경, 삭제하기 위해 사용하는 언어
  • CREATE(개체 생성), ALTER(개체 수정),DROP(개체 삭제),TRUNCATE(개체 초기화)

Database 생성

mariadb> create database ;</b>

ddl1

  • 확인

mariadb> show databases;

ddl2

Database 삭제

mariadb> drop database ;</b>

ddl3

  • 확인

mariadb> show databases;

ddl4

Table 생성

  • 데이터베이스가 먼저 만들어져 있어야 하고 데이터베이스 선택 후 생성 가능

mariadb> create database mytest01;

mariadb> use mytest01;

ddl5

mariadb> <테이블명> (</b><컬럼명></b>데이터타입[옵션][제약조건 ...],...);

ddl6

mysql> create table test_member(
->no int <b style:”colorblue”>auto_increment
not null primary key,
->
name char(20),
->
id varchar(20) unique,
->
password varchar(50) <b style:”colorblue”>default “1234”</b>, -> reg_date datetime not null);

  • 테이블 생성 확인

    mariadb> show tables;

ddl7

  • 테이블 구조 확인

    mariadb> desc <테이블명>;

ddl8

데이터 타입

  • 저장될 테이터의 형태 [숫자형]
타입 크기 데이터
bool,boolean 1byte 참(true)/거짓(false)
tinyint 1byte 정수
int ,integer 4byte 정수
bigint 8byte 정수
float 4byte 부동소수점(실수)
double 8byte 부동소수점(실수)
bit(n) (n)bit 정수

[문자형]

타입 크기
char(n) (n)byte 고정형 최대 2^8 byte
varchar(n) (n) byte 가변형 최대 2^8 byte
text 2^16byte
longtext 2^32byte

[날짜형]

타입 크기
date YYYY-MM-DD
time HH:MM:SS
datetime YYYY-MM-DD HH:MM:SS
timestamp YYYY-MM-DD HH:MM:SS(time_zone이 반영된 시간)
year YYYY

제약 조건

  • 데이터의 무결성을 지키기 위해 제한된 조건
  • 테이블 및 열(컬럼) 레벨에서 적용가능하며, 테이블의 생성이나 구조 변경 시에도
  • 적절한 제약조건을 골라서 사용
조건 기능
NOT NULL NULL 값 사용 제한
UNIQUE 테이블 내에서 해당 column의 값이 유일하도록 설정(중복 불가능)
PRIMARY KEY(기본키) 테이블의 각 행을 고유하게 식별하는 값(UNIQUE + NOT NULL)
FOREIGN KEY(외래키) 두 테이블의 데이터 간 연결을 설정하고 강제 적용하여 외래 키 테이블에 저장될 수 있는 데이터를 제어
CHECK 해당 coulmn에 저장 가능한 데이터 값의 범위나 조건 지정

Table 수정(구조 변경)

mariadb> alter table <테이블명> <옵션 값 ...>;

[ACTION]

옵션 기능
add column 추가
drop column 삭제
modify column 수정
change column 변경
rename Table 명 변경

Table 수정(구조 변경) - add

  • Column 추가

mysql>alter table <테이블명> add <컬럼명> <데이터타입> [옵션] [제약조건] [위치 옵션];

  • 위치 옵션
    • first: 가장 위에 추가
    • after <컬럼명> : 해당 컬럼 뒤에 추가

ddl9

ddl10

Table 수정(구조 변경) - drop

  • Column 삭제

mariadb> alter table <테이블명> drop <컬럼명>;</b>

ddl11

Table 수정(구조변경) - modify

  • column 수정

alter table <테이블명> modify <컬럼명> <데이터타입> [옵션] [제약조건];</b>

ddl12

Table 수정(구조변경) - change

  • column 변경

mariadb> alter table <테이블명> change <기존컬럼명 <새컬럼명> <데이터타입> [옵션] [제약조건];</b>

ddl13

Table 수정(구조 변경) - rename

  • 테이블 이름 변경

alter table <기존 테이블명=""> rename <변경할 테이블명="">;</b>

ddl14

Table 삭제

mariadb> drop table <테이블멸>;테이블명>;</b>

ddl15