员工管理系统实战--oracle数据库创建(二)

员工管理系统–数据库创建

创建用户

1 先用sys登陆PLSQL,在sys登陆的条件下执行以下文件的代码
创建用户
2 之后使用新建的用户执行创建表的代码

--Property(资产表)
CREATE TABLE PROPERTY(
      pno NUMBER(10) NOT NULL,
      pname VARCHAR2(20),
      describe VARCHAR2(40), 
      CONSTRAINT pk_pno PRIMARY KEY(pno)
);

--Department(部门表)
CREATE TABLE DEPARTMENT(
      dno NUMBER(10) NOT NULL,
      dname VARCHAR2(20),
      dtel VARCHAR2(20),
      pno NUMBER(10), 
      CONSTRAINT pk_dno PRIMARY KEY(dno),
      CONSTRAINT ck_dtel CHECK(LENGTH(dtel) =11 AND dtel LIKE '1%')
);


--STAFF(员工表)
CREATE TABLE STAFF(
      sno NUMBER(10) NOT NULL,
      dno NUMBER(10) NOT NULL,
      wno NUMBER(10) NOT NULL,
      sname VARCHAR2(20) NOT NULL,
      sex VARCHAR2(20) NOT NULL,
      age NUMBER(10) ,
      stel VARCHAR2(20) ,
      marriage VARCHAR2(20),
     pass VARCHAR2(20) DEFAULT '123456',
      hiredate DATE,
      school VARCHAR2(20),
      bonus NUMBER(10),
      pno NUMBER(10),
      photo BLOB,
      CONSTRAINT pk_id PRIMARY KEY(sno),
      --
      CONSTRAINT ck_sex CHECK(sex IN('男','女')),
      CONSTRAINT ck_age CHECK(age BETWEEN 20 AND 60),
      CONSTRAINT ck_stel CHECK(LENGTH(stel) =11 AND stel LIKE '1%'),
      CONSTRAINT ck_marriage CHECK(marriage IN('True','False')),
      CONSTRAINT ck_pass CHECK(LENGTH(pass) =6 )
      --
);

--vacate(请假表)
CREATE TABLE VACATE(
      vno NUMBER(10) NOT NULL,
      sno NUMBER(10) NOT NULL,
      dno NUMBER(10) NOT NULL,
      wno NUMBER(10) NOT NULL,
      sname VARCHAR2(20) NOT NULL,
      vtel VARCHAR2(20) ,
      startdate DATE,
      enddate DATE,
      vacate_reason VARCHAR2(100),
      state VARCHAR2(20) DEFAULT '审核中',
      CONSTRAINT ck_state CHECK(state IN('审核中','审核通过','审核未通过')),
      CONSTRAINT pk_vno PRIMARY KEY(vno),
      CONSTRAINT ck_vtel CHECK(LENGTH(vtel) =11 AND vtel LIKE '1%')
);

ALTER TABLE  DEPARTMENT ADD constraint fk_pno FOREIGN KEY(pno) REFERENCES Property(pno);

ALTER TABLE  STAFF ADD CONSTRAINT fk_dno FOREIGN KEY(dno) REFERENCES DEPARTMENT(dno);

ALTER TABLE  STAFF ADD CONSTRAINT fpk_pno FOREIGN KEY(pno) REFERENCES PROPERTY(pno);

ALTER TABLE  VACATE ADD CONSTRAINT fk_sno FOREIGN KEY(sno) REFERENCES STAFF(sno);

ALTER TABLE  VACATE ADD CONSTRAINT vfk_dno FOREIGN KEY(dno) REFERENCES DEPARTMENT(dno);

ALTER TABLE  VACATE ADD CONSTRAINT fk_wno FOREIGN KEY(wno) REFERENCES WAGES(wno);

ALTER TABLE  STAFF ADD CONSTRAINT fpk_wno FOREIGN KEY(wno) REFERENCES WAGES(wno);

--创建序列      
create sequence vacate_seq
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
cache 20;

create sequence staff_seq
maxvalue 9999999999999999999999999999
start with 5300
increment by 1
cache 20;

3初始数据导入

根据创建的表的格式,插入若干数据

猜你喜欢

转载自blog.csdn.net/qq_40084390/article/details/89961591