一、实验目的及要求
1、熟悉SQL Server中SQL Server Management Studio的环境
2、掌握使用SQL方式来创建和删除数据库及数据表的方法
3、会向表中添加数据
二、实验环境
SQL Server 2016中SQL Server Management Studio
三、实验内容
1、创建数据库,数据库的名称统一为:“S+学号”,例如“S1234567890”。
2、创建如下三个关系模式,并给出三个表创建的SQL语句,要求建表时给出主外键约束、唯一约束、取空值约束、用户自定义的约束等;
3、按下表插入数据。
(1)Employee表
列名 | 数据类型 | 长度 | 是否允许为空 | 说明 |
EmployeeID | Char | 4 | 否 | 员工编号,主键 |
Name | Char | 10 | 否 | 姓名 |
Birthday | Date | 3 | 否 | 出生日期 |
Sex | Bit | 1 | 否 | 性别 |
Address | Char | 20 | 是 | 地址 |
Zip | Char | 6 | 是 | 邮编 |
PhoneNumber | Char | 12 | 是 | 电话号码(唯一) |
EmailAddress | Char | 30 | 是 | 电子邮件地址(唯一) |
DepartmentID | Char | 3 | 否 | 员工部门号,外键 |
(2)Departments表
列名 | 数据类型 | 长度 | 是否允许为空 | 说明 |
DepartmentID | Char | 3 | 否 | 员工部门号,主键 |
DepartmentName | Char | 20 | 否 | 部门名(唯一) |
Note | Text | 16 | 是 | 备注 |
(3)Salary表
列名 | 数据类型 | 长度 | 是否允许为空 | 说明 |
EmployeeID | Char | 4 | 否 | 员工编号,外键, 主键 |
Income | Float | 8 | 否 | 收入 |
OutCome | Float | 8 | 否 | 支出 |
Sdate | Date | 3 | 否 | 主键 |
3. 对以上建立的3个表输入如下数据:
Departments表:
DepartmentID | DepartmentName | Note |
1 | 财务部 | 财务部 |
2 | 研发部 | 研发部 |
3 | 人力资源部 | 人力资源部 |
Employee表:(性别“1”表示女,性别“0”表示男,)
EmployeeID | Name | Birthday | Sex | Address | Zip | PhoneNumber | EmailAddress | DepartmentID |
1001 | 李勇 | 1978-3-12 | 0 | 河南郑州 | 475001 | 3880378 | ly@henu.edu.cn | 1 |
1002 | 王敏 | 1980-11-2 | 1 | 河南新乡 | 475002 | 0378311 | wm@henu.edu.cn | 1 |
1003 | 刘晨 | 1978-6-22 | 0 | 北京 | 475003 | 0378322 | lc@henu.edu.cn | 1 |
1004 | 周宏 | 1983-10-3 | 1 | 河北廊坊 | 475004 | 7865987 | zh@ henu.edu.cn | 1 |
2001 | 张立 | 1998-8-1 | 0 | 北京 | 475005 | 0378333 | zl@henu.edu.cn | 2 |
2002 | 刘毅 | 1988-1-23 | 0 | 江苏南京 | 475006 | 0378344 | lyy@henu.edu.cn | 2 |
2003 | 张玫 | 1981-3-15 | 1 | 陕西西安 | 475007 | 0378355 | zm@henu.edu.cn | 2 |
2004 | 王军 | 1979-5-12 | 0 | 山东威海 | 475008 | 5687967 | wj@henu.edu.cn | 2 |
3001 | 徐静 | 1990-8-12 | 1 | 山东青岛 | 475009 | 0378366 | xj@henu.edu.cn | 3 |
3002 | 赵军 | 1979-2-19 | 0 | 陕西榆林 | 475010 | 0378377 | zj@henu.edu.cn | 3 |
3003 | 王霞 | 1982-8-18 | 1 | 陕西延安 | 475011 | 7556677 | wx@henu.edu.cn | 3 |
Salary表:
EmployeeID | Income | OutCome | Sdaate |
1001 | 3600 | 1500 | 2020-01-01 |
1002 | 3300 | 1000 | 2020-01-01 |
1001 | 3700 | 1200 | 2020-02-01 |
1002 | 4500 | 1600 | 2020-02-01 |
2001 | 4000 | 1600 | 2020-01-01 |
2002 | 3800 | 1800 | 2020-01-01 |
2003 | 3800 | 1500 | 2020-01-01 |
2004 | 5100 | 1800 | 2020-01-01 |
3001 | 4200 | 2000 | 2020-03-01 |
3002 | 4100 | 1800 | 2020-03-01 |
3003 | 4600 | 1400 | 2020-03-01 |
[源程序清单]
CREATE DATABASE S2131051143;
go
use S2131051143;
create table Departments
(
DepartmentID Char(3) not null PRIMARY KEY,
DepartmentName Char(20)not null UNIQUE,
Note Text,
);
insert into Departments values
('1','财务部','财务部'),
('2','研发部','研发部'),
('3','人力资源部','人力资源部');
CREATE TABLE Employee
(
EmployeeID Char(6) not null PRIMARY KEY,
Name Char(10) not null,
Birthday Date not null,
Sex Bit not null,
Address Char(20),
Zip Char(6),
PhoneNumber char(12) UNIQUE,
EmailAddress char(30) UNIQUE,
DepartmentID char(3) not null ,
foreign key(DepartmentID) references Departments(DepartmentID)
);
insert into Employee values
('1001','李勇','1978-3-12',0,'河南郑州','475001','3880378','ly@henu.edu.cn','1'),
('1002','王敏','1980-11-2',1,'河南新乡','475002','0378311','wm@henu.edu.cn','1'),
('1003','刘晨','1978-6-22',0,'北京','475003','0378322','lc@henu.edu.cn','1'),
('1004','周宏','1983-10-3',1,'河北廊坊','475004','7865987','zh@ henu.edu.cn','1'),
('2001','张立','1998-8-1',0,'北京','475005','0378333','zl@henu.edu.cn','2'),
('2002','刘毅','1988-1-23',0,'江苏南京','475006','0378344','lyy@henu.edu.cn','2'),
('2003','张玫','1981-3-15',1,'陕西西安','475007','0378355','zm@henu.edu.cn','2'),
('2004','王军','1979-5-12',0,'山东威海','475008','5687967','wj@henu.edu.cn','2'),
('3001','徐静','1990-8-12',1,'山东青岛','475009','0378366','xj@henu.edu.cn','3'),
('3002','赵军','1979-2-19',0,'陕西榆林','475010','0378377','zj@henu.edu.cn','3'),
('3003','王霞','1982-8-18',1,'陕西延安','475011','7556677','wx@henu.edu.cn','3');
create table Salary
(
EmployeeID Char(6) not null ,
Income FLoat(8) not null,
OutCome Float(8) not null,
Sdate Date not null ,
foreign key(EmployeeID) references Employee(EmployeeID)
);
alter table Salary add primary key(EmployeeID,Sdate)
insert into Salary values
('1001',3600,1500,'2020-01-01'),
('1002',3300,1000,'2020-01-01'),
('1001',3700,1200,'2020-02-01'),
('1002',4500,1600,'2020-02-01'),
('2001',4000,1600,'2020-01-01'),
('2002',3800,1800,'2020-01-01'),
('2003',3800,1500,'2020-01-01'),
('2004',5100,1800,'2020-01-01'),
('3001',4200,2000,'2020-03-01'),
('3002',4100,1800,'2020-03-01'),
('3003',4600,1400,'2020-03-01');