oracle 創建數據庫

/*檢驗是否存在(存在的話刪除)*/ 

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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章