/*檢驗是否存在(存在的話刪除)*/
DROP TABLESPACE TBS_EPET;
/*創建表空間*/
CREATE TABLESPACE TBS_EPET
DATAFILE 'c:\EPET_SPACE.DBF'
SIZE 5M;
/*創建用戶*/
CREATE USER epet
IDENTIFIED BY epet
DEFAULT TABLESPACE TBS_EPET;
/*授予兩種角色*/
GRANT CONNECT,RESOURCE TO epet;
/*使用新用戶連接*/
connect epet/epet;
/*創建主人表*/
CREATE TABLE MASTER(
ID NUMBER(11,0) PRIMARY KEY,
LOGIN_ID NVARCHAR2(50) NOT NULL,
PASSWORD NVARCHAR2(20) NOT NULL,
STATUS CHAR(1) DEFAULT 1 NOT NULL
);
/*創建序列*/
CREATE SEQUENCE SEQ_MASTER_ID
START WITH 1
INCREMENT BY 1;
/*創建觸發器爲主人表的插入數據行爲觸發"生成ID的操作"*/
CREATE TRIGGER TRIGGER_MASTER_ID
BEFORE INSERT
ON MASTER
FOR EACH ROW
BEGIN
SELECT SEQ_MASTER_ID.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/
INSERT INTO MASTER (LOGIN_ID,PASSWORD,STATUS) VALUES ('jack','jack','1');
INSERT INTO MASTER (LOGIN_ID,PASSWORD,STATUS) VALUES ('tom','tom','1');
INSERT INTO MASTER (LOGIN_ID,PASSWORD,STATUS) VALUES ('john','john','0');
/*創建表寵物類型表*/
CREATE TABLE PET_TYPE(
ID NUMBER(11) NOT NULL PRIMARY KEY,
NAME NVARCHAR2(50) NOT NULL,
STATUS CHAR(1) DEFAULT 1 NOT NULL
);
/*創建寵物類型表序列*/
CREATE SEQUENCE SEQ_PET_TYPE_ID
/*創建觸發器爲寵物類型表的插入數據行爲觸發"生成ID的操作"*/
CREATE TRIGGER TRIGGER_PET_TYPE_ID
BEFORE INSERT
ON PET_TYPE
FOR EACH ROW
BEGIN
SELECT SEQ_PET_TYPE_ID.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/
INSERT INTO PET_TYPE(NAME,STATUS) VALUES('貓類',1);
INSERT INTO PET_TYPE(NAME,STATUS) VALUES('狗類',1);
INSERT INTO PET_TYPE(NAME,STATUS) VALUES('鳥類',0);
/*創建寵物表*/
CREATE TABLE PET
(
ID NUMBER(11),
MASTER_ID NUMBER(11) NOT NULL,
NAME NVARCHAR2(50),
TYPE_ID NUMBER(11) NOT NULL,
HEALTH NUMBER(11) DEFAULT 100 NOT NULL,
LOVE NUMBER(11) DEFAULT 100 NOT NULL,
PROP1 NVARCHAR2(100),
PROP2 NVARCHAR2(100),
PROP3 NVARCHAR2(100),
ADOPT_TIME DATE NOT NULL,
STATUS CHAR(1) DEFAULT 1 NOT NULL,
CONSTRAINT PET_PK PRIMARY KEY(ID),
CONSTRAINT MASTER_FK FOREIGN KEY (MASTER_ID) REFERENCES MASTER(ID),
CONSTRAINT TYPE_FK FOREIGN KEY (TYPE_ID) REFERENCES PET_TYPE(ID)
);
/*給表添加註釋*/
COMMENT ON TABLE pet IS '寵物';
/*給表中的字段添加註釋*/
COMMENT ON COLUMN pet.name IS '寵物暱稱';
COMMENT ON COLUMN pet.health IS '寵物健康值';
CREATE SEQUENCE SEQ_PET_ID;
/*創建觸發器*/
CREATE TRIGGER TRIGGER_PET_ID
BEFORE INSERT
ON PET
FOR EACH ROW
BEGIN
SELECT SEQ_PET_ID.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/
/*插入測試寵物數據*/
INSERT INTO PET (MASTER_ID,NAME,TYPE_ID,HEALTH,LOVE,ADOPT_TIME,STATUS) VALUES
(1,'小虎',1,100,80,SYSDATE,'1');
INSERT INTO PET (MASTER_ID,NAME,TYPE_ID,HEALTH,LOVE,ADOPT_TIME,STATUS) VALUES
(1,'虎子',1,100,80,SYSDATE,'1');
INSERT INTO PET (MASTER_ID,NAME,TYPE_ID,HEALTH,LOVE,ADOPT_TIME,STATUS) VALUES
(2,'牧羊犬',2,100,80,SYSDATE,'0');
INSERT INTO PET (MASTER_ID,NAME,TYPE_ID,HEALTH,LOVE,ADOPT_TIME,STATUS) VALUES
(3,'貴賓犬',2,100,80,SYSDATE,'1');
INSERT INTO PET (MASTER_ID,TYPE_ID,HEALTH,LOVE,ADOPT_TIME,STATUS) VALUES
(3,2,100,80,SYSDATE,'1');
commit;