Database/MySQL

[MySQL] DDL 2 - Table

밈아 2021. 8. 15. 03:10
반응형

DDL

테이블 생성

CREATE TABLE [테이블명] (
    [COLUMN NAME] INT PRIMARY KEY,
    [COLUMN NAME] VARCHAR(20) NOT NULL,
    [COLUMN NAME] INT AUTO_INCREMENT,
    [COLUMN NAME] DATETIME
)
  • PRIMARY KEY : 고유한 키 값을 갖는 필드
  • AUTO_INCREMENT : 레코드가 생성될 때마다 자동으로 증가
  • NOT NULL : null 값 허용 안 함

 

create table items (
    int not null auto_increment,
    content varchar(300),
    due_date date,
    `use` int(1) not null default 1,
    primary key(id)
)

create table phonebook (
    id int primary key auto_increment,
    name varchar(10) not null,
    phonenum varchar(14) default '010-0000-0000',
    email varchar(20),
    regDate datetime
)

위와 같이 테이블을 생성할 수 있다.

use와 같은 명령어를 테이블명 또는 컬럼명으로 하고 싶은 경우 ` (backtick)으로 감싸면 사용할 수 있다.

primary key, foreign key는 제일 마지막에 따로 명시해줄 수 있다.

 

테이블 수정

컬럼(Column) 수정

alter table phonebook modify column name varchar(9);
# name : varchar(10) -> varchar(9)

alter table phonebook modify column phonenum varchar(15);
# phonenum : varchar(14) -> varchar(15)

 

컬럼(Column) 추가

# phonebook 테이블에 age 컬럼을 추가한다.
alter table phonebook add column age int(3) default 1;

 

컬럼(Column) 삭제

# phonebook 테이블에 있는 email 컬럼을 삭제한다.
alter table phonebook drop column email;

 

테이블 이름 변경

# phonebook 테이블의 이름을 phone으로 변경한다.
alter table phonebook rename phone;

 

컬럼(Column) 순서 이동

 

컬럼(Column) 이름 변경

# phone 컬럼의 이름을 number로 변경한다.
alter table phone change column phone number varchar(20) not null;

 

테이블 삭제

DROP TABLE [IF EXISTS] [테이블명];

IF EXISTS 조건을 넣으면 해당 테이블이 있는 경우에만 삭제하는 것으로 된다.

 

DESC

DESC [테이블명];

테이블 열 구조 확인

 

반응형