Database

[Database] SQL DDL 데이터 정의어

Ocean_ 2023. 2. 4. 17:04

데이터 정의어(DDL)

  • 테이블이나 관계의 구조를 생성하는데 사용하며 CREATE,ALTER,DROP 이 있다.

CREATE 문

  • 테이블 구성, 속성과 속성 제약정의 , 기본키 외래키 정의하는 명령
  • PRIMARY KEY : 기본키를 정할 때 사용
  • FOREIGN KEY : 외래키를 정할 때 사용
  • ON UPDATE, ON DELETE : 외래키 속성 수정과 투플 삭제시 동작 나타냄
  • 참조의 무결성 지켜야함.
CREATE TABLE 테이블이름
( 속성이름 데이터타입 [NOT NULL | UNIQUE | DEFAULT 기본값 | CHECK 체크조건] [PRIMARY KEY 속성이름(들)]
[FOREIGN KEY 속성이름 REFERENCES 테이블이름(속성이름)],
[ON DELETE [CASCADE(연쇄삭제)┃SET NULL(널로설정)]
)
CREATE TABLE NewBook (
bookid INTEGER PRIMARY KEY, 
bookname VARCHAR(20),
publisher VARCHAR(20),
price INTEGER);
CREATE TABLE NewBook (
bookname VARCHAR(20) NOT NULL,
publisher VARCHAR(20) UNIQUE,
price INTEGER DEFAULT 10000 CHECK(price > 1000),
PRIMARY KEY (bookname, publisher));
CREATE TABLE NewOrders (
orderid INTEGER,
custid INTEGER NOT NULL,
bookid INTEGER NOT NULL,
saleprice INTEGER,
orderdate DATE,
PRIMARY KEY (orderid),
FOREIGN KEY (custid) REFERENCES NewCustomer(custid) ON DELETE CASCADE );

ALTER 문

  • 생성된 테이블의 속성과 속성에 관한 제약을 변경하며 기본키, 외래키 변경함
  • ADD, DROP 속성 추가, 제거
  • MODIFY 속성 기본값 설정, 삭제
ALTER TABLE 테이블이름
[ADD 속성이름 데이터타입]
[DROP COLUMN 속성이름]
[MODIFY 속성이름 데이터타입]
[MODIFY 속성이름 [NULL┃NOT NULL]]
[ADD PRIMARY KEY(속성이름)]
[[ADD┃DROP] 제약이름]
ALTER TABLE NewBook ADD isbn VARCHAR(13);
ALTER TABLE NewBook MODIFY isbn INTEGER;
ALTER TABLE NewBook DROP COLUMN isbn;
ALTER TABLE NewBook MODIFY bookid INTEGER NOT NULL;
ALTER TABLE NewBook ADD PRIMARY KEY(bookid);

DROP 문

  • 테이블을 삭제하는 명령
  • 테이블의 구조와 데이터를 모두 삭제하므로 사용에 주의
  • 이터만 삭제하려면 DELETE 문을 사용함
DROP TABLE NewBook;

숭실대학교 Database 강의를 수강 후 정리하였습니다.