K 개발자
데이터 정의어 본문
CREATE 문
CREATE 문은 테이블로 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본키 및 외래키를 정의하는 명령이다.
ALTER 문
ALTER 문은 생성된 테이블의 속성과 속성에 관한 제약을 변경하며, 기본키 및 외래키를 변경한다.
DROP 문
DROP 문은 테이블을 삭제하는 명령이다.
DROP 문은 테이블의 구조와 데이터를 모두 삭제하므로 사용에 주의해야 한다.
연습문제
-- 다음과 같은 속성을 가진 NewBook 테이블을 생성하시오.
/*
bookid(도서번호) - NUMBER
bookname(도서이름) - VARCHAR2(20)
publisher(출판사) - VARCHAR2(20)
price(가격) - NUMBER
*/
CREATE TABLE NewBook (
bookid NUMBER,
bookname VARCHAR2(20),
publisher VARCHAR2(20),
price NUMBER);
-- 다음과 같은 속성을 가진 NewCustomer 테이블을 생성하시오.
/*
custid(고객번호) - NUMBER, 기본키
name(이름) - VARCHAR2(40)
address(주소) - VARCHAR2(40)
phone(전화번호) - VARCHAR2(30)
*/
CREATE TABLE NewCustomer (
custid NUMBER PRIMARY KEY,
name VARCHAR2(40),
address VARCHAR2(40),
phone VARCHAR2(30));
-- 다음과 같은 속성을 가진 NewOrders 테이블을 생성하시오.
/*
orderid(주문번호) - NUMBER, 기본키
custid(고객번호) - NUMBER, NOT NULL 제약조건, 외래키(NewCustomer.custid, 연쇄삭제)
bookid(도서번호) - NUMBER, NOT NULL 제약조건
saleprice(판매가격) - NUMBER
orderdate(판매일자) - DATE
*/
CREATE TABLE NewOrders (
orderid NUMBER,
custid NUMBER NOT NULL,
bookid NUMBER NOT NULL,
saleprice NUMBER,
orderdate DATE,
PRIMARY KEY(orderid),
FOREIGN KEY(custid) REFERENCES NewCustomer(custid) ON DELETE CASCADE);
/*
외래키 제약조건을 명시할 때는 주의할 점이 있다.
반드시 참조되는 테이블(부모 릴레이션)이 존재해야 하며 참조되는 테이블의 기본키여야 한다.
*/
-- NewBook 테이블에 VARCHAR2(13)의 자료형을 가진 isbn 속성을 추가하시오.
ALTER TABLE NewBook ADD isbn VARCHAR2(13);
-- NewBook 테이블의 isbn 속성의 데이터 타입을 NUMBER형으로 변경하시오.
ALTER TABLE NewBook MODIFY isbn NUMBER;
-- NewBook 테이블의 isbn 속성을 삭제하시오.
ALTER TABLE NewBook DROP COLUMN isbn;
-- NewBook 테이블의 bookid 속성에 NOT NULL 제약조건을 적용하시오.
ALTER TABLE NewBook MODIFY bookid NUMBER NOT NULL;
-- NewBook 테이블의 bookid 속성을 기본키로 변경하시오.
ALTER TABLE NewBook ADD PRIMARY KEY(bookid);
-- NewBook 테이블을 삭제하시오.
DROP TABLE NewBook;
-- NewCustomer 테이블을 삭제하시오.
DROP TABLE NewCustomer;
-- 삭제하려는 테이블의 기본키를 다른 테이블에서 참조하고 있다면 삭제가 거절된다. NewCustomer 테이블을 삭제하기 위해서는 참조하고 있는 테이블 NewOrders 테이블부터 삭제해야 한다.
DROP TABLE NewOrders;
DROP TABLE NewCustomer;
Comments