선택장애

데이터베이스(DB) - CREATE문(예제, 문제풀이) 본문

데이터베이스(DB)

데이터베이스(DB) - CREATE문(예제, 문제풀이)

yes or yes 2017. 8. 14. 15:51
반응형

CREATE문은 테이블을 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본키 및 외래키를 정의하는 명령어이다.
PRIMARY KEY는 기본키를 정할 때 사용하고
FOREIGN KEY는 외래키를 지정할 때 사용하며
ON UPDATE와 ON DELETE는 외래키 속성의 수정과 튜플 삭제시 동작을 나타낸다.

●속성의 데이터와 타입의 종류




●CREATE문의 기본 문법(그냥 이렇구나 하고 넘겨주세요;;)

CREATE TABLE 테이블이름 
( { 속성이름 데이터타입
   [NOT NULL]  [UNIQUE]  [DEFAULT 기본값]
   [CHECK 체크조건]
   }
   [PRIMARY KEY 속성이름(들)]
   {[FOREIGN KEY 속성이름 REFERENCES 테이블이름(속성이름)]
     [ON UPDATE [NO ACTION┃CASCADE┃SET NULL┃SET DEFAULT]]  [ON DELETE [NO               ACTION┃CASCADE┃SET NULL┃SET DEFAULT]]
   }
)

●이제 문제를 같이 풀어보면서 예제도 볼게요
- 문제 1. 다음과 같은 속성을 가진 NewBook 테이블을 생성하시오.
정수형은INT, 문자형은 가변형 문자타입인 VARCHAR을 사용한다.
bookid(도서번호) - INT
bookname(도서이름) - VARCHAR(20)
publisher(출판사) - VARCHAR(20)
price(가격) - INT


- 문제 1의 답
CREATE TABLE NewBook (
bookid  INT,  
bookname VARCHAR(20),

publisher VARCHAR(20),
price INT);


- 문제 2. 다음과 같은 속성을 가진 NewBook 테이블을 생성하시오. 정수형은 INT를 사용하며 문자형은 가변형 문자타입인 VARCHAR을 사용한다.
bookid(도서번호) - INT
bookname(도서이름) - VARCHAR(20)
publisher(출판사) - VARCHAR(20)
price(가격) - INT

- 문제 2의 답
CREATE TABLE NewCustomer (   /*테이블 이름:NewCustomer*/
custid  INT  PRIMARY KEY,           /*custid라는 INT형인데 기본키로*/
name  VARCHAR(40),                  /*VARCHAR(40)형 쭈욱*/
address  VARCHAR(40),
phone  VARCHAR(30));



- 문제 3. 다음과 같은 속성을 가진 NewOrders 테이블을 생성하시오.
• orderid(주문번호) INT, 기본키
custid(고객번호) INT, NOT NULL 제약조건, 외래키(NewCustomer.custid, 연쇄삭제)
bookid(도서번호) INT, NOT NULL 제약조건
saleprice(판매가격) - INT
orderdate(판매일자) - DATE


-문제 3의 답
CREATE TABLE NewOrders (  
orderid  INT,
custid  INT  NOT NULL,
bookid  INT  NOT NULL,  saleprice  INT,
orderdate  DATE,  
PRIMARY KEY (orderid),
FOREIGN KEY (custid) REFERENCES NewCustomer(custid) ON DELETE CASCADE);
/*외래키(FOREIGN KEY)가 나왔네요 간단하게 설명드리자면
외래키 제약조건을 명시할 때는 반드시 참조되는 테이블(부모 릴레이션)이 존재해  야 하며 참조되는 테이블의 기본키여야 한다. 외래키 지정 시 ON DELETE 또는 ON  UPDATE 옵션은 참조되는 테이블의 튜플이 삭제되거나 수정될 때 취할 수 있는 동  작을 지정한다. NO ACTION은 어떠한 동작되 취하지 않고, SET NULL은 NULL 값  으로 바꾸며, SET DEFAULT는 정해진 값으로 바꾼다.*/



반응형