《数据库管理系统》实验指导书
《数据库管理系统》实验指导书
课程代码:0812000816
英文名称:Database Management System
适用对象:经管类专业本科生
学时学分:共48,实验16学时,3.0分
一、实验的目的
数据库系统产生于20世纪60年代末。几十年来,数据库技术得到迅速发展,已形成较为完整的理论体系和一大批实用系统,现已成为计算机软件领域的一个重要分支。随着网络技术的迅猛发展,以及数据库技术与网络技术的紧密结合,数据库技术已经广泛应用于各种领域,小到工资管理、人事管理,大到企业信息的管理等,数据库技术已成为计算机系统应用最广的技术之一。同时,数据库技术及其应用也成为国内外高等学校计算机专业和许多非计算机专业的必修或选修内容。本课程实验教学的目的和任务是使学生通过实践环节深入理解和掌握课堂教学内容,使学生得到数据库应用的基本训练,提高其解决实际问题的能力。
二、实验开设对象
本实验开设对象为经管类专业学习《数据库管理系统》课程的学习者,主要是会计学、市场营销、金融学(中法班)的学生。
三、基本原理及课程简介
SQL Server是当今深受欢迎的关系数据库管理系统,是一个杰出的数据库平台,它建立在成熟而强大的关系数据模型的基础之上,可以很好地支持客户机/服务器模式,可用于大型联机事务处理、数据仓库以及电子商务等,能够满足各种类型的企事业单位构建网络数据库的要求,是目前各类学校学习大型数据库管理系统的首选对象。本课程主要介绍数据库管理系统的基本概念和基本原理以及SQL Server 2014关系数据库管理系统的主要功能及其使用。具体内容包括Transact-SQL基础、数据库管理、表的创建和更新、表的查询和视图管理、存储过程和触发器管理等实验项目。
四、指导教师要求
本实验课程教学指导原则上由《数据库管理系统》课程讲授教师负责,在人数较多时配1-2名教师担任实验指导教师,实验室人员配合指导。指导教师应在实验前阐述实验目的、基本方法、基本技术、实验要求等,指导学生在规定的时间内完成相关课程实验任务。
五、实验设备配置
每人配置1台电脑,安装SQL Server 2014软件,并能访问Internet。
六、考核与报告
1、实验完成后,学生将每次实验的结果整理到相应的实验报告并打印提交,符合实验教学的要求,并得到指导教师的认可。
2、指导教师对每份实验报告进行审阅,结合实验表现和实验报告正确率两方面因素,进行评分。
3、在最终的上机实验总成绩中,7个实验项目的成绩分别占据16%、18%、12%、16%、12%、16%、10%的比例。
实验一 数据库的创建、表的创建与表的更新
一、实验名称
数据库的创建、表的创建与表的更新
二、实验课时
课内4课时,课外2课时
三、实验目的
1. 熟悉SQL Server 2014 Management Studio的操作
2. 掌握使用图形界面实现的数据库管理
3. 掌握使用图形界面进行表的创建与更新
4. 掌握使用SQL语句进行表的创建与更新
四、实验内容和步骤
重要提示:
本课程的上机任务具有连续性,本次完成的内容是后面其他实验的基础。为了下次上机时不必重复劳动,请在课程结课前注意保存好上机数据(包括你的上机报告和数据库文件),并经常备份以免特殊情况造成丢失。
1. 使用图形界面创建数据库
(1)在D盘根目录下建立文件夹SQL_data(如无D盘,则在C盘)
(2)按以下要求建立数据库
数据库名称—-自己的姓名拼音(如曾倩,则数据库名称为ZengQian)
主数据文件逻辑名称—-数据库名称加上“_file1”(如ZengQian_file1)
路径—-D:\SQL_data
初始大小为10M
最大尺寸为200M
增长速度为每次增长5%
事务日志文件逻辑名称—-数据库名称加上“_log”(如ZengQian_log)
路径—-D:\SQL_data
初始大小为5M
最大尺寸为无限制
增长速度为每次增长1M
提示:
①设置文件的物理路径的方式是点击“路径”列中的“…”按钮,然后选择具体路径。
②创建数据库的窗口中,默认只有1个主数据文件,要创建次数据文件,应先点击右下角的“添加”按钮,然后修改文件的属性。
③其余操作方式可参考教材15到17页。
④如果遭遇带有“操作系统错误:5(拒绝访问)”字样的报错,请按如下链接中介绍的方法解决: HYPERLINK “https://www.cnblogs.com/ggll611928/p/6143708.html” https://www.cnblogs.com/ggll611928/p/6143708.html
(3)创建成功后,在对象资源管理器中,找到“数据库”文件夹,右键,点击“刷新”,找到所建立的数据库,右键打开其“属性”窗口,在左上角“选择页”中切换到“文件”页面,观察所建立的数据库是否和(1)中要求一致。
(4)确认正确后,截图记录下“文件”页面右侧的信息(包括数据库名称信息和文件信息,类似于图1.1),记录到上机报告中。
图1.1 新建的数据库的属性
2. 使用图形界面重命名数据库
(1)在对象资源管理器中,找到第1步创建的数据库,右键,点击“重命名”,将这个数据库重命名为你的大写的姓名拼音缩写(如曾倩,则数据库名称为ZQ)。
(2)重命名完成后,截图记录到上机报告中(类似于图1.2)
图1.2 重命名后的数据库
3. 使用图形界面修改数据库的文件与文件组
(1)在对象资源管理器中,找到“数据库”文件夹,再找到第2步修改后的数据库,右键打开其“属性”窗口,在左上角“选择页”中切换到“文件组”页面。
(2)在“文件组”页面中,添加一个新文件组,名称请自己定义。
(3)从左上角“选择页”中切换到“文件”页面。
(4)在“文件”页面中,添加一个新文件,名称请自己定义,初始大小、最大尺寸、增长速度保存默认,归属于新添加的文件组中。
(5)确认正确后,截图记录下“文件”页面右侧的信息(包括数据库名称信息和文件信息),记录到上机报告中。
4. 使用图形界面创建表
(1)在实验一第3步修改后数据库(以你的姓名拼音缩写命名)中,使用图形界面,建立员工表Employees,表中各列的名称和数据类型如表1.1所示,创建方法可参考教材第3.2.1节。
表1.1 员工表Employees的结构
列名
数据类型
存储的内容
列属性
Emp_id
int
员工编号
主键
Emp_name
nvarchar(20)
员工姓名
不允许为空
Sex
nchar(1)
性别
不允许为空
Dep_id
int
所在部门编号
不允许为空
(2)全部列名、数据类型和长度设置完毕后,将Emp_id设置为主键(方法:选中Emp_id列,点击,如图1.3所示);
图1.3 设置主键
(3)将Emp_name、Sex、Dep_id设置为不允许为空;
(4)保存表,将表的名称设置为Employees;
(5)保存完毕后,截图记录表设计器中Employees表的结构(包括字段、数据类型、是否允许为空)。
5. 使用SQL语句创建表
(1)编写SQL语句,创建表1.2所示结构的部门表Departments,注意各列的列属性,并记录SQL语句。(提示:可参考教材第39页,例3.1)
表1.2 部门表Departments的结构
列名
数据类型
存储的内容
列属性
Dep_id
int
部门编号
主键
Dep_name
nvarchar (10)
部门名称
不允许为空
(2)将以下SQL语句补充完整,创建表1.3所示的考勤表CheckIn,并记录补充完整后的SQL语句。(提示:可参考教材第39页,例3.1)
CREATE TABLE CheckIn(
CheckDate datetime NOT NULL,
Emp_id int NOT NULL,
CheckType char(2) NOT NULL,
cdMinutes ……………………………… –请根据表1.3,将这一行语句补充完整
ztMinutes ……………………………… –请根据表1.3,将这一行语句补充完整
Memo varchar(200) NULL,
PRIMARY KEY(CheckDate,Emp_id)
)
表1.3 考勤表CheckIn的结构
字段名称
数据类型
存储的内容
列属性
CheckDate
datetime
日期和时间
主键
Emp_id
int
员工编号
主键
CheckType
char(2)
考勤类型,CQ、CC、BJ、SJ、KG、JB分别表示正常出勤、出差、病假、事假、旷工、节假日加班
不允许为空
cdMinutes
int
迟到时间(分钟)
默认值为0
ztMinutes
int
早退时间(分钟)
默认值为0
Memo
varchar(200)
备注信息
允许为空
(3)将以下SQL语句补充完整,创建表1.4所示的工资表Wage,并记录补充完整后的SQL语句。
提示:可参考教材第40页,例3.1。
注意:AS关键字发挥了“=”的作用,因此“列名 AS 表达式”即可,不要写成“列名 AS 列名=表达式”
CREATE TABLE Wage(
Wage_id int PRIMARY KEY IDENTITY(1,1),
Emp_id int NOT NULL,
WYear smallint NOT NULL,
WMonth tinyint NOT NULL,
Basic_W decimal(10, 2) NOT NULL DEFAULT(0),
Bonus_W decimal(10, 2) NOT NULL DEFAULT(0),
Absence_W decimal(10, 2) NOT NULL DEFAULT(0),
Overtime_W decimal(10, 2) NOT NULL DEFAULT(0),
Wage …………………………………………………… –请根据表1.4,将这一行语句补充完整
Memo nvarchar(200) NULL
)
表1.4 工资表Wage的结构
字段名称
数据类型
说明
列属性
Wage_id
int
工资编号
主键,自动生成列值
Emp_id
int
员工编号
不允许为空
WYear
smallint
工资年份
不允许为空
WMonth
tinyint
工资月份
不允许为空
Basic_W
decimal(10,2)
基本工资
不允许为空,默认值0
Bonus_W
decimal(10,2)
本月奖金
不允许为空,默认值0
Absence_W
decimal(10,2)
缺勤扣款
不允许为空,默认值0
Overtime_W
decimal(10,2)
加班费
不允许为空,默认值0
Wage
工资总额
计算列,Wage=Basic_W
+ Bonus_W- Absence_W+ Overtime_W
Memo
nvarchar(200)
备注信息
允许为空
6. 使用图形界面修改表
(1)将Employees表的Sex列设置默认值为“男”。
(2)将CheckIn表的CheckType列设置默认值为“CQ”。
(3)修改完毕后,截图记录新的表结构。
7. 使用SQL语句修改表
编写SQL语句,向Employees表中添加职称列,列名称为Title,数据类型为nvarchar,数据长度为10,并记录SQL语句。
(提示:使用ALTER TABLE语句,以及ADD子句,可参考教材第41页例3.3。)
8. 使用图形界面进行表的更新
使用图形界面,向表Departments中添加如表1.5所示的6行数据,添加完毕后将结果截图记录到上机报告中。
提示:
找到Departments表,右键,然后选“编辑前200行”。
一行数据添加完后,将鼠标切换到其他行单击一下,即可自动保存刚才添加的那行数据。
表1.5 表Departments中的数据
Dep_id
Dep_name
1
财务部
2
人事部
3
技术部
4
销售部
5
车间
6
广告部
9. 使用SQL语句进行表的更新
(1)编写INSERT语句,向Employees表中插入如表1.6所示的3行数据,并记录SQL语句。
表1.6 表Employees中的前3行数据
Emp_id
Emp_name
Sex
Dep_id
Title
1
你自己的姓名
你自己的性别
1
部门经理
2
王佳
女
2
部门经理
3
张欣
男
3
部门经理
(2)自由选择图形界面方式,或SQL语句方式,向Employees表中插入如表1.7所示的所有数据。
表1.7 表Employees中的其他数据
Emp_id
Emp_name
Sex
Dep_id
Title
4
李明
男
4
部门经理
5
刘军
男
1
职员
6
李刚
男
1
职员
7
陈小雨
女
2
职员
8
赵阳
女
2
职员
9
李小华
男
3
职员
10
王丽
女
3
职员
11
于轩
男
4
职员
12
张璐
女
4
职员
(3)复制以下SQL语句到查询编辑器中,执行,向CheckIn表中插入322行考勤数据,执行完毕后将执行结果的提示信息截图记录到上机报告中。
(注意语句较长,应复制完整)
INSERT INTO CheckIn
VALUES (‘2020-02-27 07:31:03′,1,’CQ’,0,0,NULL),–2020年2月
(‘2020-02-27 08:52:14′,2,’CQ’,0,0,NULL),
(‘2020-02-27 07:56:52′,3,’CC’,0,0,NULL),
(‘2020-02-27 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-02-27 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-02-27 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-02-27 9:56:32′,7,’CQ’,0,0,NULL),
(‘2020-02-27 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-02-27 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-02-27 08:45:34′,10,’KG’,0,0,NULL),
(‘2020-02-27 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-02-27 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-02-28 07:31:03′,1,’CQ’,0,0,NULL),–2020年2月
(‘2020-02-28 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-02-28 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-02-28 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-02-28 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-02-28 08:45:53′,6,’BJ’,0,0,NULL),
(‘2020-02-28 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-02-28 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-02-28 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-02-28 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-02-28 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-02-28 07:43:26′,12,’CC’,0,0,NULL),
(‘2020-02-29 07:31:03′,1,’CQ’,0,0,NULL),–2020年2月
(‘2020-02-29 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-02-29 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-02-29 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-02-29 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-02-29 07:45:53′,6,’SJ’,0,0,NULL),
(‘2020-02-29 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-02-29 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-02-29 08:53:12′,9,’CQ’,0,0,NULL),
(‘2020-02-29 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-02-29 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-02-29 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-01 07:31:03′,1,’CQ’,0,0,NULL),–2020年3月
(‘2020-03-01 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-01 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-01 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-01 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-01 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-01 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-01 08:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-01 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-01 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-01 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-01 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-02 07:31:03′,1,’JB’,0,0,NULL),–加班
(‘2020-03-02 07:31:03′,3,’JB’,0,0,NULL),–加班
(‘2020-03-04 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-04 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-04 08:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-04 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-04 07:23:56′,5,’KG’,0,0,NULL),
(‘2020-03-04 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-04 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-04 07:51:45′,8,’CC’,0,0,NULL),
(‘2020-03-04 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-04 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-04 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-04 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-05 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-05 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-05 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-05 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-05 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-05 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-05 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-05 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-05 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-05 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-05 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-05 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-06 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-06 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-06 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-06 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-06 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-06 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-06 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-06 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-06 09:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-06 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-06 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-06 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-07 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-07 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-07 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-07 07:34:34′,4,’SJ’,0,0,NULL),
(‘2020-03-07 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-07 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-07 07:56:32′,7,’CC’,0,0,NULL),
(‘2020-03-07 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-07 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-07 07:45:34′,10,’KG’,0,0,NULL),
(‘2020-03-07 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-07 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-08 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-08 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-08 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-08 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-08 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-08 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-08 08:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-08 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-08 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-08 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-08 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-08 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-09 07:31:03’,3, ‘JB’,0,0,NULL),–加班
(‘2020-03-09 07:31:03’,5, ‘JB’,0,0,NULL),–加班
(‘2020-03-09 07:31:03’,9, ‘JB’,0,0,NULL),–加班
(‘2020-03-09 07:31:03’,10, ‘JB’,0,0,NULL),–加班
(‘2020-03-10 07:31:03’,3, ‘JB’,0,0,NULL),–加班
(‘2020-03-10 07:31:03’,5, ‘JB’,0,0,NULL),–加班
(‘2020-03-11 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-11 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-11 07:56:52′,3,’BJ’,0,0,NULL),
(‘2020-03-11 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-11 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-11 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-11 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-11 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-11 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-11 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-11 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-11 08:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-12 07:31:03′,1,’CC’,0,0,NULL),
(‘2020-03-12 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-12 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-12 08:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-12 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-12 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-12 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-12 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-12 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-12 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-12 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-12 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-13 07:31:03′,1,’CC’,0,0,NULL),
(‘2020-03-13 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-13 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-13 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-13 07:23:56′,5,’SJ’,0,0,NULL),
(‘2020-03-13 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-13 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-13 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-13 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-13 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-13 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-13 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-14 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-14 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-14 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-14 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-14 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-14 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-14 07:56:32′,7,’KG’,0,0,NULL),
(‘2020-03-14 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-14 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-14 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-14 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-14 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-15 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-15 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-15 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-15 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-15 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-15 08:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-15 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-15 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-15 07:53:12′,9,’CC’,0,0,NULL),
(‘2020-03-15 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-15 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-15 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-16 07:31:03’,8, ‘JB’,0,0,NULL),–加班
(‘2020-03-16 07:31:03’,9, ‘JB’,0,0,NULL),–加班
(‘2020-03-18 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-18 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-18 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-18 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-18 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-18 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-18 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-18 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-18 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-18 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-18 09:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-18 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-19 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-19 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-19 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-19 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-19 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-19 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-19 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-19 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-19 07:53:12′,9,’BJ’,0,0,NULL),
(‘2020-03-19 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-19 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-19 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-20 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-20 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-20 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-20 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-20 07:23:56′,5,’SJ’,0,0,NULL),
(‘2020-03-20 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-20 08:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-20 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-20 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-20 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-20 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-20 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-21 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-21 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-21 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-21 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-21 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-21 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-21 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-21 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-21 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-21 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-21 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-21 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-22 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-22 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-22 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-22 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-22 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-22 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-22 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-22 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-22 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-22 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-22 09:23:43′,11,’CC’,0,0,NULL),
(‘2020-03-22 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-25 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-25 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-25 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-25 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-25 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-25 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-25 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-25 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-25 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-25 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-25 07:23:43′,11,’CC’,0,0,NULL),
(‘2020-03-25 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-26 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-26 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-26 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-26 07:34:34′,4,’SJ’,0,0,NULL),
(‘2020-03-26 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-26 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-26 07:56:32′,7,’BJ’,0,0,NULL),
(‘2020-03-26 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-26 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-26 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-26 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-26 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-27 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-27 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-27 08:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-27 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-27 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-27 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-27 07:56:32′,7,’KG’,0,0,NULL),
(‘2020-03-27 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-27 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-27 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-27 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-27 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-28 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-28 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-28 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-03-28 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-28 09:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-28 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-28 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-28 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-28 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-28 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-28 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-28 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-03-29 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-03-29 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-03-29 07:56:52′,3,’CC’,0,0,NULL),
(‘2020-03-29 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-03-29 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-03-29 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-03-29 08:56:32′,7,’CQ’,0,0,NULL),
(‘2020-03-29 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-03-29 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-03-29 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-03-29 07:23:43′,11,’CQ’,0,0,NULL),
(‘2020-03-29 07:43:26′,12,’CQ’,0,0,NULL),
(‘2020-04-10 07:31:03′,1,’CQ’,0,0,NULL),–2020年4月
(‘2020-04-10 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-04-10 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-04-10 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-04-10 08:23:56′,5,’CQ’,0,0,NULL),
(‘2020-04-10 07:45:53′,6,’SJ’,0,0,NULL),
(‘2020-04-10 07:56:32′,7,’CQ’,0,0,NULL),
(‘2020-04-10 07:51:45′,8,’CQ’,0,0,NULL),
(‘2020-04-10 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-04-10 07:45:34′,10,’KG’,0,0,NULL),
(‘2020-04-10 09:23:43′,11,’CQ’,0,0,NULL),
(‘2020-04-10 08:43:26′,12,’CQ’,0,0,NULL),
(‘2020-04-11 07:31:03′,1,’CQ’,0,0,NULL),
(‘2020-04-11 07:52:14′,2,’CQ’,0,0,NULL),
(‘2020-04-11 07:56:52′,3,’CQ’,0,0,NULL),
(‘2020-04-11 07:34:34′,4,’CQ’,0,0,NULL),
(‘2020-04-11 07:23:56′,5,’CQ’,0,0,NULL),
(‘2020-04-11 07:45:53′,6,’CQ’,0,0,NULL),
(‘2020-04-11 07:56:32′,7,’BJ’,0,0,NULL),
(‘2020-04-11 08:51:45′,8,’CQ’,0,0,NULL),
(‘2020-04-11 07:53:12′,9,’CQ’,0,0,NULL),
(‘2020-04-11 07:45:34′,10,’CQ’,0,0,NULL),
(‘2020-04-11 10:23:43′,11,’CQ’,0,0,NULL),
(‘2020-04-11 07:43:26′,12,’CQ’,0,0,NULL)
(4)将以下SQL语句补充完整,为每位员工在Wage表中分别插入一行2020年3月份的工资数据,基本工资Basic_W为6000, Bonus_W、Absence_W、Overtime_W数额为0,备注为NULL。
(提示:VALUES的每行中有4个值,仔细思考这4个值对应哪4个列,将那4个列的列名写到括号中,请注意4个列名之间应有3个逗号。)
INSERT INTO Wage(……………………) –请根据表1.4,在这一行的括号中补充列名
VALUES (1,2020,3,6000),
(2,2020,3,6000),
(3,2020,3,6000),
(4,2020,3,6000),
(5,2020,3,6000),
(6,2020,3,6000),
(7,2020,3,6000),
(8,2020,3,6000),
(9,2020,3,6000),
(10,2020,3,6000),
(11,2020,3,6000),
(12,2020,3,6000)
执行语句成功后,在上机报告中记录补充完整后的SQL语句,并思考以下两个问题:
①Basic_W、Bonus_W、Absence_W和Overtime_W这四列不允许为空,为何语句中没有为这四列插入值?
②Wage列为什么没有指定值?
(提示:这两个思考题的答案请见实验二指导书的最后)
(5)编写UPDATE语句,在Wage表中,将1-4号员工(所有部门经理)2020年3月份的基本工资Basic_W修改为8000,并记录SQL语句。
提示:
1. WHERE语句中包括3个条件,即年份为2020,月份为3,员工编号为1-4。
2. WHERE语句之后的多个条件之间必须用AND或OR连接,不能用逗号连接。
3.员工编号的表达可使用3个OR,也可使用IN关键字。
4. AND或OR的左右所连接的应该是带有运算符的完整的表达式,如“列=值”,不能只是一个简单的值,类似“列名=值1 or 值2 or 值3”的格式是不允许的,应写成“列名=值1 or列名=值2 or列名=值3”。
5. AND和OR都使用时,请注意运算符的优先级问题,适当运用括号改变优先级。
(6)编写UPDATE语句,将Employees表中姓名为“张欣”的职工的性别修改为“女”,并记录SQL语句。
10. 记录最终结果
(1)在对象资源管理器中,展开你创建的那个数据库,单击展开“表”文件夹,右键单击其中dbo.Employees,在弹出的快捷菜单中点击“选择前1000行”,查看表中的数据,并截图记录表中所有数据。
(2)按照与第7(1)步相同的方法,打开表dbo.CheckIn,并截图记录表中部分数据。(截取表中部分数据即可,不必将全部322行数据都截图。)
(3)按照与第7(1)步相同的方法,打开表dbo.Wage,并截图记录表中所有数据。
五、实验要求
完成实验任务,按要求记录各个实验步骤所使用的SQL语句以及最终结果,并填写上机报告。
六、实验参考资料
在完成实验时,可以参考有关教材与PPT课件。
七、附思考题答案:
①Basic_W、Bonus_W、Absence_W和Overtime_W这四列不允许为空,为何语句中没有为这四列插入值?
因为这4个列有默认值0,当我们不为他们插入值时,他们会自动得到默认值0,不会是空值。
②Wage列为什么没有指定值?
因为这一列是计算列,会自动根据其他列得到一个计算值,不必(也不能)人为指定列值。
实验二 表的查询
一、实验名称
表的查询
二、实验课时
课内2课时,课外4课时
三、实验目的
掌握使用SQL语句实现表的查询(包括带条件的查询、排序、分组、带聚合函数的查询、连接查询等)。
四、实验内容与步骤
重要提示:
本课程的上机任务具有连续性,实验二需在实验一的基础上完成。本次完成的内容是后面其他实验的基础。为了下次上机时不必重复劳动,请在课程结课前注意保存好上机数据(包括你的上机报告和数据库文件),并经常备份以免特殊情况造成丢失。
编写SQL语句,完成以下各题的要求,并将SQL语句与执行结果记录到上机报告中,记录时请注意语句和数据的完整、清晰。
1. 查询当前员工表Employees中的员工来自哪些部门,要求去掉重复的部门。(提示:参考教材52页例4.6,使用DISTINCT关键字)
2. 查询职务为“部门经理”且性别为“女”的员工姓名。
3. 使用IN关键字,从表Employees中,查询1号部门和4号部门的所有员工信息。
4. 统计一共有几种职务。(提示:使用聚合函数以及DISTINCT关键字)
5. 统计每一个部门中职务为“职员”的员工人数,统计结果中包含部门编号和员工人数,并且要求每列的标题分别显示为“部门编号”、“员工人数”。(提示:使用GROUP BY和AS,按部门编号分组)
6. 查询每一个部门所包含的员工信息。查询结果包括姓名、性别、职务和对应的部门名称。对于没有员工的部门,在查询结果中要同样列出,其对应的员工信息为空(NULL)(且截图中要带有这几行数据)。(提示:参考教材第63页例4.38使用外连接)
7. 使用以下语句,查询表CheckIn中,2020年3月份的旷工记录(CheckType为“KG”),并按员工编号分组,按旷工次数升序排序,要求每列的标题分别显示为“员工编号”、“本月旷工次数”。
SELECT Emp_id AS 员工编号, COUNT(*) AS 本月旷工次数
FROM CheckIn
WHERE CheckType=’KG’ AND MONTH(CheckDate)=3 AND YEAR(CheckDate)=2020
GROUP BY Emp_id
ORDER BY 本月旷工次数 ASC
8. 使用以下语句,根据第7题的查询结果(5号和10号员工各矿工1次,7号员工矿工2次),在表Wage中,更新存在旷工记录的员工2020年3月份的缺勤扣款Absence_W列的值(假设每次旷工扣300元)。
UPDATE Wage
SET Absence_W=Absence_W+300*1
WHERE WYear=2020 AND WMonth=3 AND Emp_id IN (5,10)
UPDATE Wage
SET Absence_W=Absence_W+300*2
WHERE WYear=2020 AND WMonth=3 AND Emp_id=7
9. 仿照第7步的语句,自己设计SELECT语句,查询表CheckIn中, 2020年3月份的病假、事假记录(CheckType分别为“BJ”或“SJ”),并按员工编号分组,按请假次数升序排序,要求每列的标题分别显示为“员工编号”、“本月请假次数”。(提示:本题的WHERE子句中既要用到AND,又要用到OR,请特别注意运算符的优先级问题,否则会影响本题查询结果,并影响后续其他步骤的结果;本题的查询结果应为5行,如为6行或其他,则不对。)
10. 使用以下语句,根据第9题的查询结果,在表Wage中,更新存在病假、事假记录的员工2020年3月份的缺勤扣款Absence_W列的值(假设每次病假、事假扣100元)。
UPDATE Wage
SET Absence_W=Absence_W+100*1
WHERE WYear=2020 AND WMonth=3 AND Emp_id IN (3,7,9)
UPDATE Wage
SET Absence_W=Absence_W+100*2
WHERE WYear=2020 AND WMonth=3 AND Emp_id IN (4,5)
11. 使用以下语句,查询表CheckIn中, 2020年3月份的加班记录(CheckType为“JB”),并按员工编号分组,按加班次数升序排序,要求每列的标题分别显示为“员工编号”、“本月加班天数”。
SELECT Emp_id AS 员工编号, COUNT(*) AS 本月加班天数
FROM CheckIn
WHERE CheckType=’JB’ AND MONTH(CheckDate)=3 AND YEAR(CheckDate)=2020
GROUP BY Emp_id
12. 仿照第8、10步的语句,根据第11题的查询结果,编写SQL语句,在表Wage中,更新存在加班记录的员工2020年3月份的加班费Overtime_W列的值(假设每次加班费500元)。
13. 假设1号员工2020年3月表现突出,请编写UPDATE语句,将其该月奖金Bonus_W增加2000。
14.从Employees和Wage表中查询所有员工的姓名、工资,并按工资从高到低排列。(提示:使用ORDER BY和内连接)
15. 统计所有员工的最高工资、最低工资、总工资和平均工资,要求每列的标题分别显示为“最高工资”、“最低工资”、“总工资”和“平均工资”,且在同一个语句中实现以上统计。(提示:使用聚合函数和AS)
16. 使用BETWEEN表示范围,查询工资在6500-9000之间(包括6500和9000)的所有员工的详细信息和工资。(提示:使用内连接,表Employees和表Wage都要用到)
17. 查询工资低于平均工资的员工编号和具体工资。(提示:在WHERE子句之后使用比较子查询,子查询用来查询平均工资)
18. 查询7号员工所在部门的最高工资。
提示:
①使用子查询,外层查询中使用聚合函数查部门内最高工资,并使用连接查询,子查询中用来确定7号员工所在部门的部门编号。
②使用两层子查询,第一层用来指定部门内员工名单,第二层用来确定7号员工所在部门的部门编号。
19. 查询最高工资与最低工资之间差距超过4000的部门编号。(提示:表Employees和表Wage连接;按部门编号分组,各组分别用聚合函数求最高工资和最低工资,然后在HAVING子句中限定最高工资和最低工资之间的差距。)
思考:
1. 查询工资低于所在部门平均工资的员工编号和具体工资。
2. 查询各部门最高工资,以及获得(所在部门)最高工资的员工编号和具体工资
3. 查询最高工资与最低工资之间差距最大的部门编号
3. 查询最高工资与最低工资之间差距最大的部门编号
select top 1 with ties Dep_id
from Employees join Wage
on Employees.Emp_id=Wage.Emp_id
group by Dep_id
order by max(Wage)-min(Wage) desc
五、实验要求
按要求完成实验任务,记录各个实验步骤所使用的SQL语句以及最终结果,并填写上机报告。
六、实验参考资料
在完成实验时,可以参考有关教材与PPT课件。
实验三 视图的创建与管理
一、实验名称
视图的创建与管理
二、实验课时
课内2课时
三、实验目的
1. 掌握视图结构的创建与修改方法
2. 掌握视图中数据的查询与更新方法
四、实验内容与步骤
重要提示:
本课程的上机任务具有连续性,实验三需在实验二的基础上完成。本次完成的内容是后面其他实验的基础。为了下次上机时不必重复劳动,请在课程结课前注意保存好上机数据(包括你的上机报告和数据库文件),并经常备份以免特殊情况造成丢失。
1. 创建视图:
编写SQL语句,创建一个名为“员工信息”的不加密视图,其中内容包括:员工编号、姓名、性别、职称、所在部门编号和部门名称,并用中文显示列名。
创建完成后,将SQL语句完整地记录到上机报告中,并打开该视图,截图记录视图中的数据。
提示:
(1)使用CREATE VIEW语句;
(2)可参考教材第71-72页例4.56,以及73页例4.58的前半部分;
(3)本视图中要用到两张表,分别是Employees和Departments,需使用连接查询;
(4) Employees和Departments两张表中都有部门编号字段,但视图中的部门编号应来自Employees;原因请自己思考,如较难明白原因,可尝试将此处改成Departments表,另建一个视图,然后再尝试按第2步的要求往其中插入数据,观察能否成功,分析失败原因;
(5)设置视图中列名的方法请参考教材中73页例4.58的前半部分。
2. 修改视图中的数据:
假设9号员工从其他部门调入财务部(财务部即1号部门),请编写SQL语句,在第1步创建的视图中,修改9号员工所属的部门。
修改完成后,将SQL语句完整地记录到上机报告中。
提示:
(1)使用UPDATE语句;
(2)注意只能通过修改部门编号实现,不能通过修改部门名称实现,具体原因请自己思考。
3. 查询视图中的数据:
请编写SQL语句,从“员工信息”视图中,查询财务部所有员工的姓名和职称。
将SQL语句完整地记录到上机报告中,并截图记录查询结果。
提示:
(1)使用SELECT语句,在FROM子句之后指定视图名称;
(2) 在WHERE子句之后指定部门名称;
(3)请注意修改时应使用视图中的列名(即中文列名),不要再使用表中的列名。
4. 修改视图结构:
编写SQL语句,修改第1步创建的“员工信息”视图,要求修改后的视图只包含财务部(即1号部门)员工的信息,且不再包含部门名称列。
修改完成后,将SQL语句完整地记录到上机报告中,并重新打开该视图,截图记录视图中的数据。
提示:
(1)使用ALTER VIEW语句,并在WHERE子句中添加限定部门编号的条件;
(2)可参考教材第75页例4.63。
5. 向视图中插入数据:
假设有一名新员工入职,加入财务部(即1号部门),其员工编号为13,姓名为“张玲玲”,性别为“女”,职称为“职员”。请编写SQL语句,将该员工的信息添加到视图中。
添加完成后,将SQL语句完整地记录到上机报告中,并重新打开该视图,截图记录视图中的数据。
(提示:使用INSERT语句)
6. 查看更新视图对表的影响:
编写SQL语句,查询表Employess中的所有数据,并将查询结果截图记录到上机报告。
(从查询结果可以总结出,更新视图中的数据,会自动更新视图所依赖的表的数据。)
五、实验要求
完成实验任务,按要求记录所使用的SQL语句和结果,并填写上机报告。
六、实验参考资料
在完成实验时,可以参考有关教材与PPT课件。
PAGE
PAGE 1
PAGE
PAGE 1