SQL 기초] 테이블 변경(alter table)

2017.03.02 13:56



만들어진 테이블에 컬럼을 추가하거나 데이터의 최대길이를 변경하는 등의 작업은 alter 명령어를 사용한다. 





컬럼 추가


기존 테이블에 컬럼을 추가하는 방법


ALTER TABLE 테이블명 ADD 컬럼 정의


- 컬럼 정의는 CREATE TABLE에 사용하는 컬럼 정의와 동일


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 SCOTT @ ORACLE > DESC test01;
 이름                         널?      유형
 --------------------------- -------- -------------------------
 NO                          NOT NULL NUMBER
 NAME                                 VARCHAR2(10)
 A                                    NUMBER
 B                                    NUMBER
 
 
 
 SCOTT @ ORACLE > ALTER TABLE test01 ADD newcol NUMBER;
 
테이블이 변경되었습니다.
 
-- MYSQL의 경우 자료형으로 NUMBER 대신 INTEGER 사용
 
 
 
 
 SCOTT @ ORACLE > DESC test01;
 이름                         널?      유형
 --------------------------- -------- -------------------------
 NO                          NOT NULL NUMBER
 NAME                                 VARCHAR2(10)
 A                                    NUMBER
 B                                    NUMBER
 NEWCOL                               NUMBER
 
cs






컬럼 속성 변경


기존 테이블의 컬럼 속성을 변경하는 방법



ALTER TABLE 테이블명 MODIFY 컬럼 정의




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 SCOTT @ ORACLE > DESC test01;
 이름                         널?      유형
 --------------------------- -------- -------------------------
 NO                          NOT NULL NUMBER
 NAME                                 VARCHAR2(10)
 A                                    NUMBER
 B                                    NUMBER
 NEWCOL                               NUMBER
 
 
 
 SCOTT @ ORACLE > ALTER TABLE test01 MODIFY newcol VARCHAR2(10);
 
테이블이 변경되었습니다.
 
-- MYSQL의 경우 자료형으로 VARCHAR2 대신 VARCHAR 사용
 
 
 
 
 SCOTT @ ORACLE > DESC test01;
 이름                         널?      유형
 --------------------------- -------- -------------------------
 NO                          NOT NULL NUMBER
 NAME                                 VARCHAR2(10)
 A                                    NUMBER
 B                                    NUMBER
 NEWCOL                               VARCHAR2(10)
 
cs




컬럼 삭제


기존 테이블의 컬럼을 삭제하는 명령


ALTER TABLE 테이블명 DROP COLUMN 컬럼명




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 SCOTT @ ORACLE > SELECT * FROM test01;
 
        NO NAME                          A          B     NEWCOL
---------- -------------------- ---------- ---------- ----------
         1 강하나                        2          2         55
         2 나훈아                        2          5         66
         3 라동국                        5          5         77
         4 마골피                                   7         88
 
 
 
 
 SCOTT @ ORACLE > ALTER TABLE test01 DROP COLUMN newcol;
 
테이블이 변경되었습니다.
 
-- MYSQL의 경우 "DROP 컬럼명"만 표기해도 실행된다
 
 
 
 SCOTT @ ORACLE > SELECT * FROM test01;
 
        NO NAME                          A          B
---------- -------------------- ---------- ----------
         1 강하나                        2          2
         2 나훈아                        2          5
         3 라동국                        5          5
         4 마골피                                   7
cs


-- ALTER TABLE... DROP COLUMN 명령은 해당 컬럼에 데이터가 들어있어도 컬럼이 삭제된다. 

또루아빠 SQL(오라클,mysql) , , , , , ,