–使用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
——————————————-
——————————————-