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()는 날짜 함수이다.