标签:
--使用master
use master
go
--判断数据库HR是否存在
if exists(select 1 from sysdatabases where name=‘HR‘)
begin
--如果存在则删除数据库HR
drop database HR
end
go
--创建数据库HR
create database HR
go
--使用数据库HR
use HR
go
-------------------------------------------
-------------------------------------------
--在数据库HR中创建JOBS表 存储公司中职位的信息
--判断JOBS表是否存在
if exists(select 1 from sysobjects where name=‘JOBS‘)
begin
--如果表存在则删除JOBS表
drop table JOBS
end
go
--创建JOBS表
create table JOBS
(
JOB_ID varchar(10) not null primary key,--职位编号
JOB_TITLE nvarchar(20) not null, --职位名称
MIN_SALARY money not null, --职位最低薪资,不小于1000元
MAX_SALARY money not null --职位最高薪资,不小于最低薪资
)
go
---------添加JOBS表中的约束条件-----------
--检查MIN_SALARY不小于1000元
alter table JOBS
add constraint CH_MIN_SALARY check(MIN_SALARY>=1000)
--检查MAX_SALARY不小于不小于最低薪资
alter table JOBS
add constraint CH_MAX_SALARY check(MAX_SALARY>=MIN_SALARY)
go
--向表JOBS中添加测试数据
insert into JOBS values(1001,‘经理‘,1200,1300)
--insert into JOBS values(1002,‘经理1‘, 200,1300)错误,职位最低薪资小于1000元
go
--显示JOBS中的所有的信息
select * from JOBS
go
-------------------------------------------
-------------------------------------------
-------------------------------------------
-------------------------------------------
--在数据库HR中创建DEPARTMENTS表 存储公司中部门的信息
--判断表DEPARTMENTS是否存在
if exists(select 1 from sysobjects where name=‘DEPARTMENTS‘)
begin
--如果存在则删除
drop table DEPARTMENTS
end
go
--创建表DEPARTMENTS
create table DEPARTMENTS
(
DEPARTMENT_ID int identity(1001,1) primary key not null,--部门编号,主键,自增
DEPARTMENT_NAME nvarchar(30) not null, --部门名称
MANAGER_ID int --部门主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
)
go
--向表中添加测试数据
insert into DEPARTMENTS values(‘管理部门‘,null)
go
--显示表DEPARTMENTS中的所有的信息
select * from DEPARTMENTS
go
-------------------------------------------
-------------------------------------------
-------------------------------------------
-------------------------------------------
--在数据库HR中创建EMPLOYEES表 存储公司中职员的信息
--判断表EMPLOYEES是否存在
if exists(select 1 from sysobjects where name=‘EMPLOYEES‘)
begin
--如果EMPLOYEES表中存在则删除表
drop table EMPLOYEES
end
go
--创建表EMPLOYEES
create table EMPLOYEES
(
EMPLOYEE_ID int primary key identity(100,1) not null, --职员编号,主键,自增(起始值为100,每次增1)
FIRST_NAME nvarchar(4) not null, --职员名称
LAST_NAME nvarchar(4) not null,--职员姓氏
EMAIL varchar(25) not null,--职员邮件
PHONE_NUMBER varchar(20) not null,--职员电话
HIRE_DATE datetime default(getdate()),--职员入职时间
JOB_ID varchar(10) not null,--职员职位编号,外键,引用JOBS表的JOB_ID
SALARY money ,--职员薪资,大于0
MANAGER_ID int ,--职员主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
DEPARTMENT_ID int ,--职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID
)
go
----------向表中添加约束条件---------------
-- 职员职位编号,外键,引用JOBS表的JOB_ID
alter table EMPLOYEES
add constraint FK_JOB_ID foreign key(JOB_ID) references JOBS(JOB_ID)
--职员薪资,大于0
alter table EMPLOYEES
add constraint CH_SALARY check(SALARY>0)
--职员主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
alter table EMPLOYEES
add constraint FK_EMPLOYEE_ID foreign key(EMPLOYEE_ID) references EMPLOYEES(EMPLOYEE_ID)
-- 职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID
alter table EMPLOYEES
add constraint FK_DEPARTMENT_ID foreign key(DEPARTMENT_ID) references DEPARTMENTS(DEPARTMENT_ID)
go
--向表EMPLOYEES中添加测试数据
insert into EMPLOYEES values(‘李四‘,‘李‘,‘821670983@qq.com‘,‘180123266‘,default,‘1001‘,2000,100,1001)
go
--显示表EMPLOYEES中的所有的信息
select * from EMPLOYEES
go
-------------------------------------------
-------------------------------------------
-------------扩展练习---------------------
-------------------------------------------
-------------------------------------------
--在数据库HR中,创建任职历史记录表distory
--判断HR中的表distory是否存在
if exists (select 1 from sysobjects where name=‘distory‘)
begin
--如果表存在则删除该表
drop table distory
end
go
--创建表distory
create table distory
(
EMPLOYEE_ID int not null,--职员编号,主键
START_DATE datetime not null,--开始时间,主键
END_DATE datetime not null,--结束时间 默认为getdate()
JOB_ID varchar(10) not null,--职员职位编号,外键,引用JOBS表的JOB_ID
DEPARTMENT_ID int --职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID
)
go
----------向表中添加约束条件---------------
--职员编号,主键
alter table distory
add constraint PK_EMPLOYEE_ID primary key(EMPLOYEE_ID)
--开始时间,主键
alter table distory
add constraint PK_START_DATE unique(START_DATE)
--结束时间 默认为getdate()
alter table distory
add constraint DF_END_DATE default(getdate()) for END_DATE
--职员职位编号,外键,引用JOBS表的JOB_ID
alter table distory
add constraint FK_JOB_ID1 foreign key(JOB_ID) references JOBS(JOB_ID)
--职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID
alter table distory
add constraint FK_DEPARTMENT_ID1 foreign key(DEPARTMENT_ID) references DEPARTMENTS(DEPARTMENT_ID)
go
--向表distory中添加测试数据
insert into distory values(100001,‘2012.12.12‘,default,‘1001‘,1001)
insert into distory values(100002,‘2015. 2. 2‘,default,‘1001‘,1001)
go
--查询表distory中的所有的信息
select * from distory
go
-------------------------------------------
-------------------------------------------
标签:
原文地址:http://www.cnblogs.com/wanglu1991/p/4663643.html