# ORACLE CHAPTER.3 ###### tags: `Ming` `ORACLE` {%hackmd BJrTq20hE %} CREATE TABLE PUBLISHER( PUBLISHER_id VARCHAR2(40) PRIMARY KEY NOT NULL, PUBLISHER_NAME VARCHAR2(40) NOT NULL, CONTACT VARCHAR2(40), PHONE VARCHAR2(40) NOT FULL, CREATE_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE BOOK ( ISBN CHAR(13) PRIMARY KEY NOT NULL, BOOK_NAME VARCHAR2(200) NOT NULL, PRICE NUMBER(8,2) CHECK (PRICE >= 0), AUTHOR VARCHAR2(200), PUBLICATION_DATE DATE, PUBLISHER_ID VARCHAR2(40), CONSTRAINT FK_BOOK_PUBLISHER FOREIGN KEY (PUBLISHER_ID) REFERENCES PUBLISHER(PUBLISHER_ID) ); Question. 3-1 CREATE TABLE CUSTOMER( CUSTOMER_ID VARCHAR2(40) NOT NULL PRIMARY KEY, CUSTORMER_NAME VARCHAR2(40)NOT NULL, PHONE VARCHAR2(40)NOT NULL, ADDRESS VARCHAR2(200)NOT NULL ); Question. 3-2 CREATE TABLE ORDER_MASTER( ORDER_ID NUMBER(10) NOT NULL PRIMARY KEY, CUSTOMER_ID VARCHAR2(40), ORDER_DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 建立外來健: 1.設定外來鍵的名稱 2.將選定的欄位參照到其他表格以建立FK P.S.沒有逗點代表還是同一行 CONSTRAINT FK_ORDERMASTER_CUSTOMER FOREIGN KEY(CUSTOMER_ID) REFERENCES CUSTOMER(CUSTOMER_ID) ); Question. 3-3 CREATE TABLE ORDER_DETAIL( ORDER_ID NUMBER(10), ISBN CHAR(13)NOT NULL, -- 複合組鍵的表示方法 PRIMARY KEY(ORDER_ID, ISBN), -------------------------------------------------------------------- QUANTITY NUMBER(10), CONSTRAINT FK_ORDERDETAIL_ORDERMASTER FOREIGN KEY (ORDER_ID) REFERENCES ORDER_MASTER(ORDER_ID), CONSTRAINT FK_ORDERDETAIL_BOOK FOREIGN KEY (ISBN) REFERENCES BOOK(ISBN) ); Question. 3-4 ALTER TABLE ORDER_DETAIL ADD MY_COMMENT VARCHAR2(200); ALTER TABLE ORDER_DETAIL RENAME COLUMN MY_COMMENT TO YOUR_COMMENT; ALTER TABLE ORDER_DETAIL MODIFY YOUR_COMMENT VARCHAR2(300); ALTER TABLE ORDER_DETAIL DROP COLUMN YOUR_COMMENT; -------------------------------------------------------------------- ALTER TABLE ORDER_DETAIL DROP CONSTRAINT FK_ORDERDETAIL_BOOK; ALTER TABLE ORDER_DETAIL DROP CONSTRAINT FK_ORDERDETAIL_ORDERMASTER; DROP TABLE ORDER_DETAIL;