员工管理系统–数据库创建
创建用户
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初始数据导入
根据创建的表的格式,插入若干数据