Linux/SQL

[DBMS] DDL 명령어 정리 (데이터베이스/테이블)

GGkeeper 2021. 11. 28. 07:39

[Database 생성]

mysql> create database <DB이름> ;

예시)
MariaDB [(none)]> create database TEST;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| TEST              |
+--------------------+
5 rows in set (0.00 sec)

[Database 삭제]

mysql> drop database <DB이름> ;

예시)
MariaDB [(none)]> drop database TEST;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

 

[Table 생성] 

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

mysql> create table <테이블명> ( <컬럼명> <데이터타입> [옵션] [제약조건 ... ] , …. );

예시)
MariaDB [(none)]> create database TEST;
MariaDB [(none)]> use TEST;

TEST 데이터베이스 안에 member 테이블을 생성

create table member(
   no int auto_increment primary key,
   name varchar(16),
   userid varchar(20) unique,
   userpw varchar(10)
);

1. 테이블 생성 확인
mysql> show tables;

MariaDB [TEST]> show tables;
+----------------+
| Tables_in_TEST |
+----------------+
| member         |
+----------------+
1 row in set (0.00 sec)


2. 테이블 구조 확인
mysql> desc <테이블명>;

MariaDB [TEST]> desc member;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| no     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(16) | YES  |     | NULL    |                |
| userid | varchar(20) | YES  | UNI | NULL    |                |
| userpw | varchar(10) | YES  |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+

 

[Table 수정 / 구조변경] 

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

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

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

예시)
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| no     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(16) | YES  |     | NULL    |                |
| userid | varchar(20) | YES  | UNI | NULL    |                |
+--------+-------------+------+-----+---------+----------------+

위의 테이블에서 userpw 를 추가해라 (테이블명 : usertable)
= alter table usertable add userpw varchar(30) NOT NULL;

 

2. drop 삭제
mysql> alter table <테이블명> drop <컬럼명>;

예시)
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| no     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(16) | YES  |     | NULL    |                |
| userid | varchar(20) | YES  | UNI | NULL    |                |
+--------+-------------+------+-----+---------+----------------+

위의 테이블에서 userid 를 삭제해라 (테이블명 : usertable)
= alter table usertable drop userid;

 

3. modify 수정
mysql> alter table <테이블명> modify <컬럼명> <데이터타입> [옵션] [제약조건] ;

예시)
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| no     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(16) | YES  |     | NULL    |                |
userid | varchar(20) | YES  | UNI | NULL    |                |
+--------+-------------+------+-----+---------+----------------+

위의 테이블에서 userid 의 데이터 타입을 varchar(10), NOT NULL 로 수정해라 (테이블명 : usertable)
= alter table usertable modify userid varchar(10) NOT NULL;

 

4. change 변경
mysql> alter table <테이블명> change <기존컬럼명> <새컬럼명> <데이터타입> [옵션] [제약조건] ;


예시)
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| no     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(16) | YES  |     | NULL    |                |
userid | varchar(20) | YES  | UNI | NULL    |                |
+--------+-------------+------+-----+---------+----------------+

위의 테이블에서 userid 의 컬럼명을 id 로 변경해라 (테이블명 : usertable)
= alter table usertable change userid id varchar(20) ;

 

5. rename 테이블 명 변경
mysql> alter table <기존 테이블명> rename <변경할 테이블명> ;
mysql> rename table <기존 테이블명> to <변경할 테이블명> [ , ... ] ;


예시)
+----------------+
| Tables_in_TEST |
+----------------+
usertable      |
+----------------+

usertable 의 테이블 명을 USER 로 변경해라
= alter table usertable rename USER;
= rename table usertable to USER;
둘 중에 하나 편한 걸로 사용한다.

 

[Table 초기화]

테이블 내 데이터를 모두 삭제하고 설정을 초기화

테이블 삭제(DROP)재 생성(CREATE)을 수행

mysql> truncate <테이블명>;

 

 

[Table 삭제]

mysql> drop table <테이블명>;