|
 |
테이블 변경 SQL 구문 | |
|
|
1. 설치 시 확인 사항 |
|
테이블 이름은 RENAME 구문을 사용하여 변경할 수 있다. |
|
1) 구문 |
RENAME [ TABLE | CLASS | VIEW | VCLASS] old_talbe_name AS new_table_name [ ; ] | |
|
old_table_name |
:
|
| 테이블의 새로운 이름을 지정한다. |
new_table_name |
:
|
| 테이블의 새로운 이름을 지정한다. | |
|
2) 예제 |
|
다음은 stadium 테이블의 이름을 stadium_info로 변경하는 예제이다. |
RENAME stadium AS stadium_info; | |
|
3) 주의 사항 |
|
테이블의 이름 변경은 테이블의 소유자, DBA, DBA의 멤버만이 할 수 있으며, 이 외의 사용자는 소유자나 DBA로부터 이름을 변경할 수 있는 권한을 받아야 한다. |
|
2. 컬럼 및 제약 조건 변경 |
|
ALTER 구문을 이용하여 테이블의 컬럼 및 제약 조건을 추가, 변경, 삭제할 수 있다. |
|
3. 컬럼 및 제약 조건 추가 |
|
컬럼 및 제약 조건은 ALTER 구문의 ADD [ATTRIBUTE | COLUMN] 예약어를 사용하여 추가할 수 있다. |
|
1) 구문 |
ALTER [ table_type ] table_name ADD [ ATTRIBUTE | COLUMN ] attr_definition | table_constraint_definition [ { , attr_definition | class_constraint }_ ] [ INHERIT resolution [ { , resolution }_ ] ] [ ; ]
ALTER [ table_type ] table_name ADD CLASS ATTRIBUTE table_attr_definition [ {, class_attr_definition }_ ] [ INHERIT resolution [ { , resolution }_ ] ] [ ; ]
table_type: [TABLE | CLASS] [VIEW | VCLASS]
resolution: [ TABLE ] attr_mthd_name OF superclass_name [ AS alias ] table_constraint_definition : [ CONSTRAINT constraint_name ] [ UNIQUE | PRIMARY KEY | FOREIGN KEY] (attribute_name [{, attribute_name } ...]) | |
|
table_type |
:
|
| 변경할 테이블의 종류를 일반 테이블과 가상 테이블 중 하나를 지정한다. |
table_name |
:
|
| 추가할 테이블의 이름을 지정한다. |
attr_definition |
:
|
| 추가할 컬럼의 이름과 데이터 타입을 지정한다. |
constraint_name |
:
|
| 추가할 제약 조건의 이름을 지정한다. | |
|
2) 예제 |
|
다음은 컬럼을 추가하는 다양한 방법을 보여주는 예제이다. |
ALTER TABLE athlete ADD COLUMN age INT; ALTER TABLE athlete ADD COLUMN age INT DEFAULT 0 NOT NULL; ALTER TABLE athlete ADD COLUMN retire CHAR(1) SHARED 'N'; ATLER TABLE athlete ADD COLUMN phone VARCHAR(13) DEFAULT '000-0000-0000'; | |
|
다음은 제약 조건을 추가하는 다양한 방법을 보여주는 예제이다. |
ALTER TABLE company ADD CONSTRAINT pk_id PRIMARY KEY (comp_id); ALTER TABLE nation ADD CONSTRAINT u_name UNIQUE (name); | |
|
4. 컬럼 이름 변경 |
|
ALTER 구문의 RENAME 예약어를 사용하여 테이블이 생성된 후에 컬럼의 이름을 변경할 수 있다. |
|
1) 구문 |
ALTER [ table_type ] table_name RENAME rename_clause [ INHERIT resolution [ {, resolution }_ ] ] [ ; ]
table_type: [TABLE | CLASS] [VIEW | VCLASS]
rename_clause: [ ATTRIBUTE | COLUMN ] [ CLASS ] old_attr_mthd_name AS new_attr_mthd_name FUNCTION OF [ CLASS ] method_name AS method_implementation_name
FILE file_path_name AS file_path_name
resolution: [ CLASS ] attr_mthd_name OF superclass_name [ AS alias ] | |
|
table_type |
:
|
| 변경할 테이블의 종류로 일반 테이블과 가상 테이블 중 하나를 지정한다. |
table_name |
:
|
| 변경할 컬럼이 존재하는 테이블 이름을 지정한다. |
rename_clause |
:
|
| old_attr_mthd_name : 변경하기 전의 컬럼 이름을 지정한다. new_attr_mthd_name : 변경할 새로운 컬럼 이름을 지정한다. | |
|
2) 예제 |
|
다음은 athlete 테이블의 gender 컬럼 이름을 gender_type으로 변경하는 예제이다. |
ALTER TABLE athlete RENAME COLUMN gender AS gender_type; | |
|
5. 컬럼의 디폴트 값 변경 |
|
ALTER 구문의 CHANGE 예약어를 사용하여 디폴트 값이 없는 컬럼의 디폴트 값을 지정하거나 기존의 디폴트 값을 변경할 수 있다. |
|
1) 구문 |
ALTER [ table_type ] table_name CHANGE [ CLASS ] attribute_name DEFAULT value [ { , [ CLASS ] attribute_name DEFAULT value }_ ] [ ; ]
table_type: [TABLE | CLASS] [VIEW | VCLASS] | |
|
table_type |
:
|
| 변경할 테이블의 종류를 일반 테이블과 가상 테이블 중 하나를 지정한다. |
table_name |
:
|
| 변경할 컬럼을 가지는 테이블의 이름을 지정한다. |
attribute_name |
:
|
| 새로운 디폴트 값을 적용할 컬럼의 이름을 지정한다. |
value |
:
|
| 변경할 디폴트 값을 지정한다. | |
|
2) 예제 |
|
다음은 athlete 테이블의 gender 컬럼의 디폴트 값을 변경하는 예제이다. gender 컬럼은 디폴트 값이 없으므로 첫 번째 질의를 통해서 디폴트 값을 'M'으로 설정할 수 있으며, 두 번째 질의로 gender 컬럼의 디폴트 값을 'W'로 변경한다. |
ALTER TABLE athlete CHANGE gender DEFAULT 'M'; ALTER TABLE athlete CHANGE gender DEFAULT 'W'; | |
|
6. 컬럼 및 제약 조건 삭제 |
|
ALTER 구문의 DROP 예약어를 사용하여 컬럼이나 제약 조건을 삭제할 수 있다. 한 번의 ALTER 구문으로 삭제할 수 있는 컬럼이나 제약 조건의 개수 제한은 없다. |
|
1) 구문 |
ALTER [ table_type ] table_name DROP [ ATTRIBUTE | COLUMN ] [ CLASS ] attr_mthd_name [ {, [ CLASS ] attr_mthd_name }_ ] [ INHERIT resolution [ {, resolution }_ ] ] [ ; ]
ALTER [ table_type ] table_name DROP CONSTRAINTconstraint_name
table_type: [TABLE | CLASS] [VIEW | VCLASS]
resolution: [ CLASS ] attr_mthd_name OF superclass_name [ AS alias ] | |
|
table_type |
:
|
| 변경할 테이블의 종류를 일반 테이블과 가상 테이블 중 하나를 지정한다. |
table_name |
:
|
| 삭제할 컬럼이 존재하는 테이블의 이름을 명시한다. |
attr_mthd_name |
:
|
| 삭제할 컬럼의 이름을 명시한다. |
constraint_name |
:
|
| 삭제할 제약 조건의 이름을 명시한다. | |
|
2) 예제 |
|
다음은 stadium 테이블의 address 컬럼과 seats 컬럼을 삭제하는 예제이다. |
ALTER TABLE stadium DROP ATTRIBUTE address, seats; | |
|
다음은 stadium 테이블의 code 컬럼에 설정되어 있는 PRIMARY KEY 제약 조건을 삭제하는 예제이다. |
ALTER TABLE stadium DROP CONSTRAINT pk_stadium_code; | |
|