实验三数据库的查询和视图.pdf
《实验三数据库的查询和视图.pdf》由会员分享,可在线阅读,更多相关《实验三数据库的查询和视图.pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-.z.实验三数据库的查询和视图 T4.1 数据库的查询 1、目的和要求(1)掌握 SELECT 语句的基本语法。(2)掌握子查询的表示。(3)掌握连接查询的表示。(4)掌握 SELECT 语句的 GROUP BY 子句的作用和使用方法。(5)掌握 SELECT 语句的 ORDER BY 子句的作用和使用方法。2、实验准备(1)了解 SELECT 语句的基本语法格式。(2)了解 SELECT 语句的执行方法。(3)了解子查询的表示方法。(4)了解连接查询的表示。(5)了解 SELECT 语句的 GROUP BY 子句的作用和使用方法。(6)了解 SELECT 语句的 ORDER BY 子句的作
2、用。3、实验内容(1)SELECT 语句的基本使用。对于实验二给出的数据库表结构,查询每个雇员的所有数据。新建一个查询,在“查询分析器”窗口中输入如下语句并执行。单击右键空白处,选择执行,在下方会出现所有结果。【思考与练习】用 SELECT 语句查询 Departments 表和 Salary 表中所有信息。新建一个查询,在“查询分析器”窗口中输入如下语句并执行。单击右键空白处,选择执行,在下方会出现所有结果。在“消息”中会发现总共有 60 行受影响。用 SECECT 语句查询 Employees 表中每个雇员的地址和。新建一个查询,在“查询分析器”窗口中输入如下代码并执行。单击右键空白处,选
3、择执行,在下方会出现所有结果。在“消息”中会发现有 12 行记录受影响【思考与练习】A、用 SELECT 语句查询 Departments 表和 Salary 表的一列或若干行。利用 SELECT 语句查询 Departments 表和 Salary 表中 EmployeeID 为 000001 的记录,在“查询分析器”中输入以下代码。执行后在下方会出现所有 EmployeeID=000001 的记录 B、查询 Employees 表中部门号和性别,要求使用 DISTINCT 消除重复行。对表只选择*些行时,可能会出现重复行。此时就需要使用 DISTINCT 关键字消除结果中的重复行。此时使用
4、 DISTINCT 消除在 Employees 中查询到的部门号和性别的重复行,具体代码如下。上面代码分别是使用了 DISTINCT 和没有使用 DISTINCT 关键字,下面就是两种的结果的对比。可以从上面的执行结果中看出使用了 DISTINCT 关键字,结果集中的重复行就被消除了。查询 EmployeeID 为 000001 的雇员的地址和。-.z.鼠标右键单击在弹出的菜单窗口中选择“执行”,结果中只会出现一行记录,EmployeeID为 000001 的雇员的地址和。【思考与练习】A、查询月收入高于 2000 元的员工。只需要查询员工,条件为月收入高于 2000 元员工,则至于要 Sal
5、ary 表就行。用 T-SQL命令在表 Salary 表中查询月收入高于 2000 元的员工代码如下。在结果栏中显示(9 行受影响),说明月收入高于 2000 的员工共有 9 人,如上截图所示,将所有月收入高于 2000 的员工的员工输出。B、查询 1970 年以后出生的员工的*和地址。通过分析员工信息,跟员工年龄、*、地址相关的只有表 Employees 表,所以只需要在一*表中查询即可,具体 T-SQL 查询命令如下。在结果栏中消息显示(7 行受影响),说明 1970 年以后出生有 7 人,如上截图所示,将部分 1970 年以后出生员工*、地址输出显示。C、查询所有财务部的员工的和*。通过
6、分析的,需要知道财务部与员工的和*,财务部只存在于 Departments 表中,员工*和只存在于 Employees 表中。因此需要在表 Departments 表和 Employees 表中进行查询。利用 T-SQL 命令查询代码如下。在结果栏中显示 3 行受影响,从上面截图中可以看出所有财务部员工有 3 人,并且查询显示其*、。查询 Employees 表中女雇员的地址和,使用 AS 子句将结果中各列的标题分别指定为地址、。从上面结果的截图发现 Address 变为地址,PhoneNumber 变为。【思考与练习】查询 Employees 表中男员工的*和出生日期,要求各列标题用中文表示
7、。通过分析此查询属于单表查询,只需要用到 Employees 表,使用 AS 子句就能够使结果集中各列标题用中文显示。利用 T-SQL 命令查询代码如下。从上面结果的截图发现各列标题都是中文。从消息中显示(9 行受影响)说明,员工中男性有 9 人,并且全部男性的*和出生日期都已经查询显示出。查询Employees表中员工的*和性别,要求Se*值为1时显示为“男”,为0时显示为“女”。【思考与练习】查询 Employees 员工的*、住址和收入水平,2000 元以下显示为低收入,20003000元显示为中等收入,3000 元以上显示高收入。经过分析需要查询员工的*、住址和收入水平,需要在 Emp
8、loyees 表和 Salary 表中进行查询,并且将 Salary 表中员工的 Ine 进行分类需要用到 AS 子句。利用 T-SQL 命令进行多表查询语句如下。执行上面截图中代码,在结果栏中出现员工的*,住址和收入水平。消息中显示 12 行受影响,Employees 表中所有员工信息都已经查询输出。计算每个雇员的实际收入。经过分析需要员工的收入以及员工和员工*,就需要在 Employees 表和 Salary 表中进行查询。利用 T-SQL 命令查询如下。结果栏中就会显示 EmployeeID,Name,实际收入这三项。注意:在上面 T-SQL 命令中 EmployeeID 如果不指明为哪
9、个表中的 EmployeeID,代码就会报错“EmployeeID 不明确”,改为 Employees.EmployeeID 或者 Salary.EmployeeID 都行。【思考与练习】-.z.使用 SELECT 语句进行简单的计算。在这里我将使用 SELECT 语句计算出 Employees 表中工龄三年以上的人数,并且查询员工,*,工龄。获得员工总数。经分析得需要得到员工总数,只需要在 Employees 表内使用内置函数 COUNT 就行。利用 T-SQL 命令执行操作如下。【思考与练习】A、计算 Salary 表中员工月收入的平均数。B、获得 Employees 表中最大的员工。C、
10、计算 Salary 表中所有员工的总支出。D、查询财务部雇员的最高和最低实际收入。经过分析需要查询财务部雇员的最高和最低实际收入,涉及到 Employees 表、Departments 表和 Salary 表,需要在三*表中进行查询。首先确定 DepartmentName 为“财务部”的 DepartmentID。其次在 Employees 表中确定 DepartmentID 为财务部的雇员的 EmployeeID。最后在 Salary 表中通过 EmployeeID 查询财务部雇员的 Ine 和 Oute,在最后的输出时候用 Ine-Oute 的结果为实际收入。执行后在结果栏中看到财务部雇员
11、的最高实际收入和最低实际收入。找出所有姓王的雇员的部门号。【思考与练习】A、找出所有地址中含有“*”的雇员的及部门号。注意:%代表着任意长度的字符串(长度可以为 0),“%*%”表示“*”前面和后面都能够有任意长度字符串,用来表示地址中含有“*”二字。B、查找员工中倒数第 2 个数字为 0 的员工的*、地址和学历。注意:数字占单个字符,所以通配符“_”只有一个,“%0_”表示倒数第二位为 0。找出所有收入在 20003000 元的员工。【思考与练习】找出所有在部门“1”或“2”工作的雇员的。10 使用 INTO 子句,由表 Salary 创建“收入在 1500 元以上的员工”表,包括编号和收入
12、。在左边对象资源管理器的 YGGL 数据库的表中刷新,会发现多了表“收入在 1500 元以上的员工”。【思考与练习】使用 INTO 子句,由表 Employees 创建“男员工”表,包括编号和*。(2)子查询的使用。查找在财务部工作的雇员的情况。查询财务部工作的雇员情况,需要用到 Department 表和 Employees 表进行多表查询。首先,在 Department 表中查询 DepartmentName 为“财务部”的 DepartmentID。然后,将 DepartmentID 拿到表 Employees 表中查询所有 DepartmentID 为财务部的雇员的所有信息。利用 T-
13、SQL 命令查询代码如下。在结果栏中显示所有工作部门为“财务部”的雇员的详细信息。【思考与练习】用子查询的方法查找所有收入在 2500 元以下的雇员的情况。进分析需要用到工资表 Salary 和员工信息表 Employees 进行查询。-.z.首先,在表 Salary 中查询 Ineall”查询到的是“李丽”,年龄小于所有研发部的,所有书本上源码表示的是“财务部雇员年龄不大于研发部雇员年龄”与题目中“不低于”冲突。所以书上源码有误,将源码改成上面截图中第 12 行即可。【思考与练习】用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的*。分析:首先在 Employees 表里找到 Empl
14、oyeeName 为“研发部”的雇员的*和查找雇员的EmployeeID,其次这样的 EmployeeID 还需要满足 Ine 大于所有的 DepartmentName 为“财务部”的雇员的 Ine,满足条件返回 True,select 到满足这样条件的雇员的 Name,否则返回FALSE。Where 子查询中嵌套使用。执行 T-SQL 命令后在结果栏中显示只有 1 人满足。(3)连接查询的使用。查询每个雇员的情况及其薪水情况。执行之后,将 Employees 表和 Salary 表中所有员工的基本情况进行输出。不足之处就是 EmployeeID 这一列有重复。【思考与练习】查询每个雇员的情况
15、及其工作部门的情况。执行后将每个雇员的基本情况、工资情况、工作部门情况输出。使用内连接的方法查询名字为“王林”的员工的所在部门。【思考与练习】A、使用内连接方法查找出不在财务部工作的所有员工信息。内连接是指定了关键字INNER的连接,内连接按照ON所指定的连接条件合并两个表,返回满足条件的行。此处 INNER 关键字能够省略。查找所有不在财务部工作的员工的信息,就需要使用员工基本信息表 Employees 和部门信息表 Department 进行查询。T-SQL 命令语句如下。执行结果包含表 Employees 和表 Department 的所有字段,不去除重复字段(DepartmentID)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 数据库 查询 视图
限制150内