728x90
반응형
DDL
- DB를 구축하거나 수정할 목적으로 사용하는 언어이다.
DDL의 3가지 유형
명령어 | 기능 |
CREATE | SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의함 |
ALTER | TABLE에 대한 정의를 변경하는 데 사용함 |
DROP | SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제함. |
CREATE TABLE
CREATE TABLE 학생 # <학생> 테이블 생성
(이름 VARCHAR(15) NOT NULL, # '이름'속성은 최대 문자 15로 NULL값을 갖지 않음.
학번 CHAR(8), # '학번'속성은 문자 8자이다.
성별 SEX, # '성별'속성은 'SEX'도메인을 자료형으로 사용한다.
생년월일 DATE, # '생년월일'속성은 DATE자료형을 갖는다.
PRIMARY KEY(학번), # '학번'을 기본키로 정의
FOREIGN KEY(전공) REFERENCES 학과(학과코드) # '전공'속성은 <학과> 테이블의 '학과코드' 속성을 참조하는 외래키이다.
ON DELETE SET NULL # <학과>테이블에서 튜플이 삭제되면 관련된 모든 튜플의 '전공'속성의 값을 NULL로 변경
ON UPDATE CASCADE, # <학과>테이블에서 '학과코드'가 변경되면 관련된 모든 튜플의 '전공'속성의 값도 같은 값으로 변경
CONSTRAINT 생년월일제약
CHECK(생년월일>='1998-01-01')); # '생년월일'속성에는 1980-01-01 이후의 값만을 저장할 수 있으며, 이 제약 조건의 이름은 '생년월일제약'이다.
- PRIMARY KEY : 기본키로 사용할 속성을 지정
- UNIQUE : 대체키로 사용할 속성을 지정. 중복된 값을 가질 수 없음.
- FOREIGN KEY ~ REFERENCES ~ : 외래키로 사용할 속성을 지정
- ON DELETE 옵션 : 참조 테이블의 튜플이 삭제되었을 때 기본 테이블에 취해야 할 사항을 지정.
- ON UPDATE 옵션 : 참조 테이블의 참조 속성 값이 변경되었을 때 기본테이블에 취해야 할 사항을 지정.
- CONSTRAINT : 제약 조건의 이름을 지정.
- CHECK : 속성 값에 대한 제약 조건을 정의.
ALTER TABLE
ALTER TABLE 학생 ADD 학년 VARCHAR(3); # <학생>테이블에 최대 3문자로 구성되는 '학년' 속성 추가
ALTER TABLE 학생 ALTER 학번 VARCHAR(10) NOT NULL; # <학생>테이블의 '학번'필드의 데이터 타입과 크기를 VARCHAR(10)으로 하고 NULL값이 입력되지 않게 변경
ALTER TABLE 학생 ADD COLUMN 이름 VARCHAR(10); # <학생>테이블에 '이름'필드 추가
ALTER TABLE 학생 MODIFY COLUMN 이름 CHAR(10) UNSIGNED NOT NULL; # 데이터 타입 변경 및 제한사항 추가
ALTER TABLE 학생 DROP COLUMN 이름; # <학생>테이블에서 '이름'필드 삭제
- ADD : 새로운 속성을 추가할 때 사용.
- ALTER : 특정 속성의 Default 값을 변경할 때 사용.
- DROP COLUMN : 특정 속성을 삭제할 때 사용.
DROP TABLE
DROP TABLE 학생; # <학생>테이블 삭제
- CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거
- RESTRICT : 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소.
728x90
반응형
'DataBase' 카테고리의 다른 글
[DataBase]MVCC (0) | 2023.08.04 |
---|---|
[DataBase] Transactional Isolation Level (0) | 2023.08.03 |
[DB] 데이터베이스 기본개념 (0) | 2023.03.08 |