MySQL

MySQL SQL 문법 요약 - 데이터 정의어(DDL)

char1ey 2022. 12. 25. 14:01
목차
1. 데이터 정의어
2. SHOW
3. CREATE
4. ALTER
5. DROP
6. 데이터의 설정

 

 

1. 데이터 정의어

  • CREATE
  • SHOW
  • DROP
  • ALTER
  • TRUNCATE
  • ...

데이터 정의어에 해당하는 명령어들이다.

 

CREATE는 무엇가를 만들고 생성하는 명령어이다.

SHOW는 조회를 할 때에 사용하는 명령어이다.

DROP은 전체를 삭제할 경우에 사용되며,

TRUNCATE은 테이블의 틀을 남기고 삭제한다.

ALTER는 테이블에 대한 변경을 할 때에 사용한다.

 

대표적인 명령어들을 한 번 사용해보자.

 

 


2. SHOW

 

데이터베이스 조회

SHOW DATABASES;

 

테이블 조회

SHOW tables;

 


3. CREATE

 

데이터베이스 생성

 

데이터베이스를 생성하는 명령어로서 복수가 아닌 단수로 써주어야한다.

 

CREATE DATABASE [DB 이름];
# Query OK, 1 row affected (0.03 sec)

 

SAMPLE)

CREATE DATABASE sample DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# Query OK, 1 row affected (0.03 sec)

 

데이터 베이스를 생성하면서 해당 데이터베이스에 대한 속성을 기술하는 명령을 실행한다.

 

 

테이블 생성

 

테이블을 생성하기 위해서 [테이블 이름], [속성명], 속성의 [데이터 타입]을 지정할 떄 CREATE TABLE 명령을 사용한다.

 

테이블을 생성할 때 다수의 속성을 지정할 수 있기 때문에 필요한 만큼 기술할 수 있다.

 

필드의 NULL값 허용여부, 기본키(PRIMARY KEY)와 이를 참조하는 외래키(FOREIGN)의 지정, 속성의 제약조건을 기술할 수 있다.

 

테이블을 생성하기 위해서 우선 데이터 베이스를 선택해야한다.

 

USE [사용할 DB 이름]
# Database changed

 

CREATE TABLE [테이블명];

 

테이블을 생성하는 명령어이다.

 

보통을 이렇게 쓰기보다 안에 데이터_타입과 제약조건을 적어 사용해야한다.

 

각 줄을 column이라고 한다.

 

데이터 타입의 종류나 제약조건은 마지막에 적어둘 것이다.

 

CREATE TABLE [필드명](
    [필드명] [데이터_타입] 제약조건,
    [필드명] [데이터_타입] 제약조건,
    [필드명] [데이터_타입] 제약조건,
);

 


4. ALTER

 

ALTER TABLE;
ALTER DATABASE;
ALTER COLUMN;

 

테이블명 바꾸기

ALTER TALBE [테이블명] RENAME TO [바꿀테이블명];

 

아래의 명령어로 바뀐 테이블명을 확인할 수 있다.

 

DESC [테이블명];

 


5. DROP

 

데이터베이스 삭제

DROP DATABASE [DB 이름];

 

 


6. 데이터의 설정

 

데이터 타입(필드 타입)

데이터 타입 의미
CHAR 255 byte, 고정 데이터를 입력해야할 떄 사용. ex) 남성, 여성과 같은 성별
VARCHAR 255 byte, 가변데이터를 입력해야할 때 사용. ex) 이름 등
TEXT 65535 byte, 내용이 길게 들어가는 자료를 사용해야할 때 적합하다.
INT(NUMBER) 4 Byte, -21억 ~ 21억 까지 표현가능하다.
DATE 년 월 일로 표현해준다.
TIME 시간으로 표현해준다.
DATETIME 년 월 일 시간, YYYY-MM-DD-HH:MM:SS로 표현, 8Byte
TIMESTAMP 년 월 일 시간, INTERGER, 4Byte
YEAR  

 

제약 조건

제약조건 의미
NOT NULL NULL을 허용하지 않음. 값이 꼭 입력되어야 할 때 사용한다.
UNIQUE NULL 한번은 허용한다. 해당 속성에 중복 값을 허용하고 싶지 않을 때에 사용한다.
PRIMARY KEY NULL을 허용하지 않는다.
기본키를 지정할 때 사용하는 조건으로 테이블 당 한 개의 기본키만 생성이 가능하다.
FOREIGN KEY 외래키를 지정할 때에 사용한다.
REFERRENCES와 같이 사용하여 참조할 테이블의 속성을 지정해야 한다.
CHECK 속성에 입력되는 데이터를 특정 조건에 맞는 데이터만 입력받고 싶을 때에 사용한다.
DEFAULT 값이 입려되지 않았을 때, 디폴트에 지정된 값으로 입력한다.
INDEX 인덱스를 지정할 때에 사용한다.
AUTO_INCREMENT 값을 1씩 더하며 자동생성 해준다. ex) 1, 2, 3, 4, 5, 6, ...

 

 

SAMPLE) 

CREATE TABLE user(
    user_id varchar(50) PRIMARY KEY,
    user_pw varchar(50) NOT NULL,
    user_name varchar(50) NOT NULL,
    gender char(4) DEFAULT '남자',
    register_date DATETIME DEFAULT now()
);

char에 들어가는 숫자 4는 4바이트이며, 한글은 한 글자당 2바이트를 차지한다.

now()는 날짜 함수이다.