dongdorodongdong
SQL-DDL 본문
DDL (Data Definition Language)
- CREATE
- ALTER
- DROP
- RENAME
- TRUNCATE
CREATE
- 코드
제약조건
- NOT NULL : NULL 값은 허용하지 않는다.
- PRIMARY KEY : 주키
- UNIQUE : 해당 속성은 유일해야 한다.
- FOREIGN KEY : 외래키
- REFERENCES : 외래키를 참조하는 참조 릴레이션
- CHECK : 입력할 수 있는 값의 범위 등을 제한VIEW 생성 코드
- 학생 테이블에서 성별이 '여'인 데이터만 뷰로 생성하여 시스템 성능을 향상
생성된 테이블 구조 확인
- Oracle
DESC 테이블명;
- SQL Server
exec s_hepl '테이블명' goSELECT 문장을 통한 테이블 생성
- 주의 점 : not null 제약조건만 적용되고, 다른 제약 조건은 없어진다. 따라서 ALTER TABLE 기능을 사용
- Oracle
CREATE TABLE 테이블명 AS SELECT * FROM 테이블명;
- SQL Server
SELECT * INTO 테이블명 FROM 테이블명;
ALTER
코드
- 학과 테이블에 연락처 속성을 추가
- 학과 테이블에 학과명 속성을 제거고려사항
- 컬럼의 크기를 늘릴 수는 있지만 줄이지는 못한다.
- 컬럼의 NULL값만을 가지고 있으면 데이터 유형을 변경할 수 있다.
- 컬럼의 DEFAULT 값을 바꾸면 변경 작업 이후에만 적용이 된다.
- 컬럼의 NULL값이 없을 경우에만 NOT NULL 제약 조건을 추가할 수 있다.RENAME COLUMN
- Oracle
ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 변경컬럼명;
- SQL Server
sp_rename 기존컬럼명, 변경컬럼명, 'COLUMN';DROP CONSTRAINT
- Oracle
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
- SQL Server
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;ADD CONSTRAINT
- Oracle
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(컬럼명);
- SQL Server
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(컬럼명);
DROP
코드
- 학과 테이블 삭제
- 고려사항
- CASCADE CONSTRAINT 옵션은 해당 테이블과 관계가 있었던 제약조건에 대해서도 삭제한다는 것을 의미
- SQL Server는 CASCADE 옵션이 존재하지 않기 때문에 테이블을 삭제하기 전에 참조하는 제약 조건, 테이블을 먼저 삭제해야 한다. - CASCADE : 참조하는 테이블을 연쇄적으로 제거
- RESTRICT : 참조하는 테이블이 있을 경우 제거 안 됨
RENAME
- 코드
RENAME 기존테이블명 TO 변경테이블명; - 고려사항
- SQL Server
sp_rename 기존테이블명, 변경테이블명;
TRUNCATE
- 코드
TRUNCATE TABLE 테이블명; - 특징
- 해당 테이블에 들어있던 모든 행들이 제거되고 저장 공간을 재사용 가능하도록 해제
- 테이블 구조를 완전히 삭제하기 위해서는 DROP TABLE을 실행하면 된다.
'SQLD' 카테고리의 다른 글
SQL-WHERE (0) | 2019.10.23 |
---|---|
SQL-TCL (0) | 2019.10.23 |
SQL-DML (0) | 2019.10.23 |
관계형데이터베이스 개요 (0) | 2019.10.23 |
데이터 모델의 이해* (0) | 2019.08.08 |