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;

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