DataBase/MySQL

[MySQL] 데이터 정의어(DDL): CREATE, ALTER, DROP/ 테이블 생성, 변경, 삭제

자바칩 프라푸치노 2020. 11. 23. 11:16

1) CREATE

- 새로운 테이블 생성 시 사용하는 구문

- 오브젝트(VIEW, INDEX, DATABASE, 등) 를 생성할 때도 사용

1
2
3
drop database if exists sqldb;
create database sqldb;
use sqldb;
cs

맨처음에는 database를 만들어줘야하는데요

중복될수도있으니 drop 해주고 create를 해줍니다.

use sqldb;를 해야 sqldb를 사용한다는 뜻입니다.

 

1
2
3
4
5
6
7
8
9
create table usertbl(
    userid char(8not null primary key-- 사용자 아이디
    name varchar (10not null-- 이름
    birthyear int not null-- 출생년도
    addr char(2not null-- 주소
    mobile1 char(3) , -- 휴대폰 앞번호 010
    mobile2 char(8), -- 휴대폰 나머지 번호
    height smallint, -- 키(smallint는 2바이트임)
    mdate date); -- 회원가입일 
cs

table을 만들때도 중복될 수 있으니 drop table if exists 테이블명;

을 해주면 좋습니다.

기본 문법은 아래와 같습니다.

 

create table 테이블명(

   변수이름  변수타입  제약조건);

 

- 제약조건(constraint)

1) not null

-컬럼에 null을 허용하지 않음

 

2) unique 

- 컬럼에 중복값을 허용하지 않음

 

3) primary key( pk, 기본키)

- 중복과 null값을 허용하지 않음

- 테이블 당 하나의 컬럼에 사용가능

 

 

 

2) ALTER

테이블을 생성 이후 테이블을 변경할 때 사용하는 구문

 ⓐ 테이블에 컬럼 추가

1
2
alter table usertbl
add(age int not null);
cs

alter table 테이블명

add( 컬럼명 데이터타입 제약조건);

 

위의 코드는 usertbl에 int타입이고 null이 허용되지 않는 age컬럼을 추가하라는 뜻입니다.

 

ⓑ 테이블의 컬럼 수정- 컬럼의 데이터 타입 변경

1
2
alter table usertbl
modify age varchar(5);
cs

ⓒ테이블의 기존 컬럼 삭제

1
2
alter table usertbl
drop column age;
cs

 

3) DROP

테이블 삭제

 

drop table 테이블명;

 

- 외래키로 엮인 테이블 모두 삭제

drop table usertbl cascade constraints;

 

 

 

 

 

 

 

 

 

 

 

728x90