南京信息工程大学实验(实习)报告
实验(实习)名称实验4 数据库的查询和视图实验(实习)日期2016.10.24 得分指导教师方忠进系计算机专业网络工程年级2014 班次 2 姓名刘信言学号20142346074 一.实验目的
(1)掌握select语句的基本语法;
(2)掌握子查询的表示
(3)掌握连接查询的表示
(4)掌握select语句的group by子句的作用和使用方法
(5)掌握select语句的order by子句的作用和使用方法
二、实验准备
(1)了解SELECT语句的基本语法格式;
(2)了解SELECT语句的执行方法;
(3)了解子查询的表示方法;
(4)了解连接查询的表示;
(5)了解SELECT语句的GROUPBY子句的作用和使用方法;
(6)了解SELECT语句的ORDER BY子句的作用;
三、实验内容
T4.1 数据库的查询
(1)SELECT语句的基本使用。
①对于实验2给出的数据库表结构,查询每个雇员的所有数据。
新建一个查询,在查询分析器中输入如下语句并执行:
【思考与练习】
用SELECT语句查询Departments和Salary表中所有的数据信息。
②用SELECT语句查询Employees表中每个雇员的地址和电话。
新建一个查询,在查询分析器中输入如下语句并执行:
【思考与练习】
a. 用SELECT语句查询Deparments和Salary表的一列或若干列。
b. 查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。
③查询EmployeeID为000001的雇员的地址和电话。
【思考与练习】
a.查询月收入高于2000元的员工号码。
b.查询1970年以后出生的员工的姓名和住址。
c.查询所有财务部的员工的号码和姓名。
④查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。
【思考与练习】查询Employees表中男员工的姓名和出生日期,要求将各列标题用中文标示。
⑤查询Employees表中员工的姓名和性别,要求SEX值为时显示为“男”,为0时显示为“女”。
【思考与练习】查询Employees员工的姓名、住址和收入水平,2000元以下显示低收入,2000-3000元显示为中等收入,3000元以上显示为高收入。
⑥计算每个雇员的实际收入
【思考与练习】使用SELECT语句进行简单的计算。
⑦获得员工总数。
【思考与练习】
a.计算salary表中员工月收入的平均数。
b.获得Employees表中最大员工号码。
c.计算Salary表中所有员工的总支出。
d.查询财务部雇员的最高和最低实际收入。
⑧找出所有姓王的雇员的部门号。
【思考与练习】
a.找出所有其地址中含有“中山”的雇员的号码及部门.。
b.查找员工号码倒数第二个数字为0的员工的姓名、地址和学历。
⑨找出所有收入在2000-3000元之间的员工号码。
【思考与练习】找出所有在部门“1”或“2”工作的雇员的号码。
注意:了解在SELECT语句中LIKE、BETWEEN…AND、IN、NOT以及CONTAIN谓词的作用。
⑩使用into子句,由表Salary创建“收入在1500元以上的员工”表,包括编号和收入
【思考与练习】使用Into子句,由表Employees创建“男员工”表,包括编号和姓名。
(2)子查询的使用。
①查找在财务部工作的雇员的情况
【思考与练习】用子查询的方法查找所有收入在2500元以下的雇员的情况
②查找财务部年龄不低于研发部雇员年龄的雇员的姓名。
【思考与练习】用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名。
②查找比所有财务部的雇员收入都高的雇员的姓名。
【思考与练习】用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名。
(3)连接查询的使用。
①查询每个雇员的情况及其薪水的情况。
【思考与练习】查询每个雇员的情况及其工作部门的情况。
②使用内连接的方法查询名字为“王林”的员工所在的部门
【思考与练习】
a.使用内连接的方法查找出不在财务部工作的所有员工信息。
b . 使用外连接方法查找出所有员工的月收入。
③查找财务部收入在2000元以上的雇员姓名及其薪水详情。
新建一个查询,在查询分析器中输入如下语句并执行。
【思考与练习】查询研发部在1976以前出生的雇员姓名及其薪水详情。
(4)聚合函数的使用。
①求财务部雇员的平均收入
新建一个查询,在查询分析器中输入如下语句并执行。
【思考与练习】查询财务部雇员的最高和最低收入。
②求财务部的平均实际收入
新建一个查询,在查询分析其中输入如下语句并执行。
【思考与练习】查询财务部雇员的最高和最低实际收入。
③求财务部雇员的总人数
④【思考与练习】统计财务部收入在2500以上的雇员的人数。
(5)GROUP BY、ORDER BY子句的使用:①查找Employees表中男性和女性的人数
【思考与练习】
a.按部门列出在该部门工作的员工的人数。
b.按员工的学历分组,排列出本科、大专和硕士的人数。
②查找员工数超过2的部门名称和员工数量。
【思考与练习】按员工的工作年份分组,统计各个工作年份的人数,例如,工作一年的多少人,工作两年的多少人。
③将各雇员的情况按收入由低到高排列。
【思考与练习】
a.将员工的信息按出生的时间从小到大排列。
b.在order by 子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从大到小排列。
T4.2视图的使用
1.目的和要求
(1)熟悉视图的概念和作用;
(2)掌握视图的创建方法;
(3)掌握如何查询和修改视图。
2.实验准备
(1)了解视图的概念;
(2)了解创建视图的方法;
(3)了解并掌握对视图的操作。
3.实验内容
(1)创建视图
①创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全部列。
②创建YGGL数据库上的视图Employees_view,视图包含“员工号码”、“姓名”和“实际收入”三列。
使用如下SQL语句:
(2)查询视图。
①从视图DS_VIEW中查询出部门号为3的部门名称。
②从视图Employees_view中查询出姓名为“王林”的员工的实际收入。
(3)更新视图
①向视图DS_VIEW中插入一行数据“6,广告部,广告业务”。
②修改视图DS_VIEW,将部门号为5的部门名称修改为“生产车间”。
③将视图Employees_view中员工号为“000001”的员工的姓名修改为“王浩”。
④删除视图DS_VIEW中部门号为“1”的一行数据。
(4)删除视图
删除视图DS_VIEW。
(5)在界面工具中操作视图。
①创建视图:启动SQL Server Management Studio,在对象资源管理器中展开“数据库→YGGL”,选择其中的“视图”项,右击鼠标,在弹出的快捷菜单上选择“新建视图”菜单项。
在随后出现的“添加表”窗口中,添加所需关联的基本表。
在视图窗口的关系图窗口显示了基表的全部列信息。
根据需要在窗口中选择创建视图所需的字段。
完成后单击“保存”按钮保存。
②查询视图:新建一个查询,输入T-SQL查询命令即可像查询表一样查询视图。
③删除视图:展开YGGL数据库→“视图”,选择要删除的视图,右击选择“删除”选项,确认即可。