Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
data_definition_language [2015/03/19 13:44] – 이전 판으로 되돌림 (2015/03/19 21:32) ledyxdata_definition_language [2015/09/13 16:35] (current) – 제거됨 ledyx
Line 1: Line 1:
-= Data Definition Language = 
  
-{{tag>SQL Database}} 
- 
-= CREATE = 
-* SCHEMA 
-<sxh sql> 
-CREATE SCHEMA 스키마명 AUTHORIZATION 사용자ID; 
-</sxh> 
- 
-* DOMAIN 
-<sxh sql> 
-CREATE DOMAIN 도메인명 DataType 
- [DEFAULT 기본값] --DEFAULT 'MALE' 
- [CONSTRAINT 제약조건명 CHECK(범위값)]; --CONSTRAINT VALID-SEX CHECK(VALUE IN('MALE', 'FEMALE')); 
-</sxh> 
- 
-* TABLE 
-<sxh sql> 
-CREATE TABLE 테이블명 ( 
- 속성명 DataType [NOT NULL], ... 
- [, PRIMARY KEY(PK명, ...)] 
- [, UNIQUE (AK명, ...)] 
- [, FOREIGN KEY(FK명, ...) REFERENCES 참조테이블명(PK명, ...)] 
- [ON DELETE 옵션] 
- [ON UPDATE 옵션] 
- --옵션 : 참조 테이블의 변화에 따라... NO ACTION, CASCADE, SET NULL, SET DEFAULT 
- [, CONSTRAINT 제약조건명] [제약조건] -- 제약조건 : CHECK(T/F 판별 논리식), PK, FK, UNIQUE KEY, NOT NULL 
-); 
-</sxh> 
-<sxh sql> 
---CTAS(CREATE TABLE ~ AS SELECT ~) : Sub Query를 이용한 테이블 복제 생성 
---제약조건 중 "NOT NULL"만 복사된다! 
- 
---ORACLE 
-CREATE TABLE 테이블명 
-AS SELECT문; 
- 
---SQL Server 
---* 컬럼 속성에 IDENTITY를 사용했다면, 같이 적용됨! 
-SELECT * INTO 테이블명 
-FROM 복제할테이블 
-</sxh> 
- 
-* VIEW 
-<sxh sql> 
-CREATE VIEW 뷰명[(속성명[, 속성명, ...])] --속성명을 기술하지 않으면 SELECT문의 속성명을 자동 사용 
- AS SELECT문; --VIEW의 Sub Query에서는 UNION, ORDER BY 사용 불가. 
-</sxh> 
- 
-* INDEX 
-<sxh sql> 
-CREATE [UNIQUE] INDEX 인덱스명 
- ON 테이블명({속성명 [ASC|DESC][, 속성명 [ASC|DESC]]}) 
- [CLUSTER] --지정된 Key에 따라 Tuple들을 Group으로 지정하기 위해 사용 
-</sxh> 
- 
-* Trigger 
-<sxh sql> 
-CREATE TRIGGER 트리거명[BEFORE|AFTER][INSERT|DELETE|UPDATE] ON 테이블명 --[동작시기 옵션][동작 옵션] 
- REFERENCING [NEW|OLD] TABLE AS 테이블명 
- FOR EACH ROW 
- WHEN 조건식 
- BEGIN 
- SQL문; 
- END; 
-</sxh> 
- 
-= ALTER TABLE = 
-<sxh sql> 
-ALTER TABLE 테이블명 
-/*(Column 추가)*/ ADD 속성명 데이터타입 [DEFAULT '기본값'] [, ...]; 
-/*(Column 변경)*/ MODIFY 속성명 변경할_데이터타입 [DEFAULT '기본값'] [NOT NULL] [, ...]; --SQL Server는 "ALTER" 
-/*(Column 삭제)*/ DROP COLUMN 속성명 [CASCADE] [, ...]; 
-/*(COLUMN 이름 변경)*/ 속성명 TO 새속성명 
- 
---제약조건 관련 
-/*(제약조건 삭제)*/ DROP CONSTRAINT 제약조건명; 
-/*(제약조건 추가)*/ ADD CONSTRAINT 제약조건명 제약조건(속성명); 
-</sxh> 
- 
-= DROP = 
-<sxh sql> 
-DROP SCHEMA|DOMAIN|TABLE|VIEW|INDEX|TRIGGER 이름 [CASCADE|RESTRICT CONSTRAINT]; 
---RESTRICT : 다른 개체가 제거할 개체를 참조중인 경우 제거 취소, SQL Server에서는 CASCADE 옵션 없음! 
- 
-DROP CONSTRAINT 제약조건명 
-</sxh> 
- 
-= TRUNCATE TABLE = 
-<sxh sql> 
-TRUNCATE TABLE 테이블명; --데이터만 삭제 
-</sxh> 
- 
-= RENAME TABLE = 
-<sxh sql> 
-RENAME 테이블명 TO 새테이블명; 
--- sp_rename 테이블명, 새테이블명; --SQL Server; 
-</sxh> 
data_definition_language.1426772662.txt.gz · Last modified: (external edit)