SQL_Server实用教程(第三版)实验4_数据库的查询和视图

合集下载

SQL Server实用简明教程(第三版)

SQL Server实用简明教程(第三版)

SQL Server实用简明教程(第三版)
第1章 概述
第10页
数据库的类型和特点
Microsoft SQL Server 2005系统提供了两种类 型的数据库,即系统数据库和用户数据库。
系统数据库存放Microsoft SQL Server 2005系 统的系统级信息,例如系统配置、数据库、登录 账户、数据库文件、数据库备份、警报、作业等 信息。Microsoft SQL Server 2005使用这些系 统级信息管理和控制整个数据库服务器系统。
第1章 概述
第4页
1.1 概述
本节将从3个方面向读者介绍Microsoft SQL Server。
首先介绍Microsoft SQL Server系统的发 展简史
然后解释OLTP和OLAP的概念和作用 最后谈一谈Microsoft SQL Server系统的
体系架构。
SQL Server实用简明教程(第三版)
复制
Service Broker
全文检索
数据库引擎 SSDE
通知服务
集成服务 集成服务
SSIS
报表服务 SSRS
分析服务 SSAS
SQL Server实用简明教程(第三版)
第1章 概述
第8页
主要内容
1.1 概述 1.2 数据库和数据库对象 1.3 管理工具 1.4 数据库管理员 1.5 应用程序的开发过程 1.6 本章小结
作为微软公司的旗舰产品,Microsoft SQL Server是一种典型的关系 型数据库管理系统,它不仅提供了数据定义、数据控制、数据操纵等 数据库系统的基本功能,还提供了系统安全性、数据完整性、并发性、 审计性、可用性、集成性等独特功能。
作为开场白,本章将快速浏览Microsoft SQL Server的特点,让读者 对Microsoft SQL Server有一个整体的认识,为后面的学习打下牢固 的基础

SQL Server 2000实用教程(第三版)习题参考答案

SQL Server 2000实用教程(第三版)习题参考答案

SQL Server 2000实用教程(第三版)作者:周力习题参考答案第1章SQL Server 数据库基础一、单项选择题1.A 2. C 3. B 4.B 5.D 6. C 7.A 8. C二、填空题1.数据之间的联系2.域完整性、参照完整性3.数据表中,不允许一个4.学号课程编号课程编号5.1:n (或n:1) n :m6.空值不应7.新的用户登录服务器已连接到服务器的用户继续使用三、简答题1.数据库是以一定的组织形式存放在计算机中的相关数据的集合。

数据库系统是指在计算机系统中引入数据库后的一个完整的应用系统。

包括数据库、数据库管理系统、应用程序以及用户等。

在大型数据库系统中,还专门设有数据库管理员(DBA)。

数据库管理系统是帮助用户建立、使用和管理数据库的计算机软件。

其功能包括数据定义、数据操作、数据库运行控制、数据库维护等。

2.唯一约束和主键约束的区别主要有以下几点:第一,设置主键约束的字段其值不允许为空(NULL),但设置唯一约束的字段无此要求。

第二,一个表只允许设置一个主键约束,但允许设置多个主键约束。

此外,在SQL Server 2000中,设置唯一约束和主键约束都需创建唯一索引。

默认情况下,主键约束产生聚集索引,而唯一约束产生非聚集索引(关于聚集索引和非聚集索引的概念将在第3章讨论)。

3.(见1.3.1节)第2章数据库的创建与管理一、单项选择题1.C、B 2. D、A 3. B 4.B、C 5.C 6. B D二、多项选择题1.1)2)3)4)6)2.1)2)4)8)三、填空题1.master tempdb model2.工具(T) F53.表格. sql4. 在新窗口中修改对象脚本新建5.ALTER DA TABASE REMOVE FILE6.数据文件或日志文件有大量的可用空间数据库增长的部分第3章数据表和索引一、单项选择题1.D 2. B、A、D 3. C 4.D 5.B 6.A 7. A B D 8. B 9. B 10. A 二、多项选择题1.1)3)4)5)7)2.3)4)5)6)三、填空题1.1 1 任意2.image sql_variant3.dicimal (7,2) numeric (7,2)4.timestamp5.全局变量局部临时表6.1 2497.索引页叶级1008.查询检索修改维护9. Alter table teacher add birthday smalldatetime null10. update course set c_score=c_score+1 where c_name=’数据库’四、简答题1.主键约束或唯一性约束,检查约束或规则,指定默认值或不允许字段为空等。

数据库的视图操作实验报告

数据库的视图操作实验报告

实验(四)数据库的视图操作实验一、实验目的和要求(1)掌握SQL Server中的视图创建向导和图表创建向导的使用方法;(2)加深对视图和SQL Server图表作用的理解。

(3)掌握数据库安全性的操作方法。

二、实验内容和原理1. 基本操作实验(1)在SQL Server企业管理器中调出Create View Wizard(创建图表向导),按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。

CREATE VIEW 借阅_计算机图书AS SELECT 图书.*,借阅.*FROM 图书,借阅WHERE图书.编号=借阅.书号AND图书.类别=‘计算机’(2)在SQL server企业管理器中调出Create View Wizard(创建图表向导),完成在图书-读者数据库中建立一个图书_借阅图表操作。

要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.书号=借阅.书号”外码与被参照表之间的关联。

(3)查看上述实验结果。

如果结果有误,予以纠正。

2. 提高操作实验在学生-课程数据库中用Transact-SQL语句描述下列视图定义。

(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。

视图的列名为SNO、SNAME、SSEX和SAGE。

(2)从课程表中建立查询所有课程先修课信息的视图课程_PRE。

视图的列名为课程号、课程名称和先修课名称。

(3)从选修表中建立查询成绩大于等于80信息的视图STU_CJ1。

视图的列名为学号、课程号和成绩。

(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。

视图的列名为姓名、课程名称和成绩。

(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。

视图的列名为姓名、课程名称和成绩。

(6)利用Transact-SQL命令修改视图STU_SEX。

把视图的列名改为学号、姓名、性别和年龄,把加上“WITH CHECK OPTION”选项。

实现SQLServer数据库中的视图和查询

实现SQLServer数据库中的视图和查询
§1视图基本概念 一、视图基本概念 1.基本表 基本表是独立存在的表。在SQLServer 中创建了一个基本表,那么可以在表中 添加记录,这些记录存放在硬盘上。 “学生表”、“课程表”、“成绩表”
2.视图
视图看上去同表似乎一模一样,具有一组命名的 字段和数据项,但它其实是一个虚拟的表,在物理上 并不实际存在。视图是由查询数据库表产生的,它限 制了用户能看到和修改的数据。视图一旦定义后,就 可以和基本表一样被查询、被删除,也可以在一个视 图基础上再定义新的视图。 视图兼有表和查询的特点:与查询相类似的是, 视图可以用来从一个或多个相关联的表或视图中提取 有用信息;与表相类似的是,视图可以用来更新其中 的信息,并将更新结果永久保存在磁盘上。我们可以 用视图使数据暂时从数据库中分离成为游离数据,以 便在主系统之外收集和修改数据。
3、使用DROP VIEW删除视图 删除视图的语法格式如下。 DROP VIEW 视图名1,…,视图名n 使用该语句一次可以删除多个视图。
§4 通过视图访问数据 使用视图管理表中的数据包括插入、更新 和删除三种操作,在操作时要注意以下几点: 修改视图中的数据时,可以对基于两个以 上基表或视图的视图进行修改,但是不能同时 影响两个或者多个基表,每次修改都只能影响 一个基表。 不能修改那些通过计算得到的列,例如年龄 和平均分等。 若在创建视图时定义了 WITH CHECK OPTION选项,那么使用视图修改基表中的数 据时,必须保证修改后的数据满足定义视图的 限制条件。
二、视图的优缺点
当对通过视图看到的数据进行修改时,相应 的基本表的数据也要发生变化,同时,若基本表 的数据发生变化,则这种变化也可以自动地反映 到视图中。 视图有很多优点,主要表现在: 1、视点集中 视图集中即是使用户只关心它感兴趣的某些 特定数据和他们所负责的特定任务。这样通过只 允许用户看到视图中所定义的数据而不是视图引 用表中的数据而提高了数据的安全性。

实验四SQLServer的视图、存储过程和触发器

实验四SQLServer的视图、存储过程和触发器

实验四SQLServer的视图、存储过程和触发器实验四 SQL Server的视图、存储过程和触发器一、实验目的本实验主要了解SQL Server视图、存储过程和触发器的基本概念和使用方法。

通过本实验,读者将掌握视图的创建、修改和删除的操作方法和T-SQL语句;学会在SSMS中创建、修改、执行和删除存储过程的操作及相关的T-SQL语句;掌握触发器的创建、修改和删除的操作方法和T-SQL语句。

二、实验环境●Microsoft SQL Server Managerment Studio●Book数据库三、实验内容1. 创建视图view_book1,使其包含预订数量最高的20%的教材信息。

要求显示教材代号(BookCode)、教材名称(BookName)、ISBN号(ISBNCode)和出版社名称(Publisher)。

2. 创建视图view_book2,查询预订了教材名中含有“程序”一词的教师姓名(T eacherName)和所在学院名称(AcadName)。

3. 创建视图view_book3,使其包含“学院名称(AcadName)”、“教师姓名(TeacherName)”、“预订书名(BookName)”、“是否领走(TakeAway)”。

4. 创建存储过程proc_book1,查询指定学院的教师预订教材的情况。

要求显示教材名称(T_ame)、教师姓名(T_erName)和教材数量(T_okNum+T_okNum)。

(1) 查询条件为:学院代码(2) 查询条件为:学院名称5. 创建存储过程proc_book2,查询指定教材的预订数量。

6. 创建添加教材信息的存储过程proc_book3。

7. 创建存储过程proc_book4,查询指定教材名称和出版社名称的教材所对应的教材代号和库存。

8. 创建触发器tri_book1,在对T_Teacher表进行插入、修改和删除记录时,都会自动显示表中的内容。

9. 创建触发器tri_book2,当修改T_Teacher表中的TeacherCode字段值时,该字段在T_BookOrder表中的对应值也作修改。

SQLServer实验指导第三版教学设计

SQLServer实验指导第三版教学设计

SQLServer实验指导第三版教学设计1. 简介SQLServer是一种关系型数据库管理系统,被广泛应用于各种大型企业和机构中。

本文主要介绍第三版SQLServer实验指导教学设计,用于指导学生在学习过程中更好地掌握SQLServer数据库管理系统的知识和技能。

2. 教学目标本次教学的主要目标是培养学生的SQLServer数据库管理系统相关知识和技能,具体目标如下:1.学习SQLServer数据库管理系统的基本概念和原理;2.掌握SQLServer数据库管理系统的基本操作方法;3.深入学习SQLServer数据库管理系统的常用操作技巧。

3. 教学内容本次教学主要包含以下内容:3.1 基本概念和原理1.数据库管理系统的概念和分类;2.SQLServer的概念和特点;3.SQLServer的体系结构和组成部分;4.SQLServer的数据库设计和规范。

3.2 基本操作方法1.SQLServer的安装和配置;2.SQLServer的管理工具和命令行操作;4.SQLServer的表操作和数据类型;5.SQLServer的数据查询和更新;6.SQLServer的事务管理和备份恢复。

3.3 常用操作技巧1.SQLServer的索引和性能优化;2.SQLServer的视图和存储过程;3.SQLServer的数据导入导出和复制;4.SQLServer的运维和安全管理。

4. 教学方法在教学中,我们采用以下方法进行教学:1.讲解:通过讲解的方式,向学生介绍SQLServer数据库管理系统的基本概念和原理,以及各种操作方法和技巧。

2.演示:通过演示的方式,向学生展示SQLServer数据库管理系统的各种操作方法和技巧,并进行实例演示。

3.实践:通过实践的方式,让学生在实际操作中,深入了解SQLServer数据库管理系统的各种操作方法和技巧。

5. 教学步骤本次教学的具体步骤如下:5.1 SQLServer数据库管理系统的基本概念和原理1.数据库管理系统的概念和分类;2.SQLServer的概念和特点;3.SQLServer的体系结构和组成部分;5.2 SQLServer数据库管理系统的基本操作方法1.SQLServer的安装和配置;2.SQLServer的管理工具和命令行操作;3.SQLServer的数据库创建和删除;4.SQLServer的表操作和数据类型;5.SQLServer的数据查询和更新;6.SQLServer的事务管理和备份恢复。

SQLServer实验指导第三版课程设计 (2)

SQLServer实验指导第三版课程设计 (2)

SQLServer实验指导第三版课程设计一、实验内容本实验旨在通过 SQLServer 数据库的实际操作,帮助学生掌握关系数据库的创建、查询、修改和删除等基础操作,并了解 SQLServer 的相关特性和配置。

二、实验环境本实验需要安装 SQLServer 数据库管理系统,并在该系统上创建相应的数据库和表格。

建议安装 SQLServer 2012 以上版本,并在操作系统上安装相应的Microsoft .NET Framework。

三、实验步骤3.1 数据库创建使用 SQLServer 数据库管理系统,创建名为 student 的新数据库。

其中,用到的语句如下:CREATE DATABASE student;3.2 数据表创建在创建好的 student 数据库中,创建名为 score 的新数据表。

其中,用到的语句如下:USE student;GOCREATE TABLE score (id INT PRIMARY KEY,name VARCHAR(50),score INT);3.3 数据插入向 score 表格中插入一些测试数据,供后续操作使用。

其中,用到的语句如下:INSERT INTO score VALUES (1, 'Kobe', 98);INSERT INTO score VALUES (2, 'Lebron', 95);INSERT INTO score VALUES (3, 'Jordan', 99);3.4 数据查询查询 score 表格中的所有数据,显示每个学生的姓名和分数。

其中,用到的语句如下:SELECT name, score FROM score;3.5 数据更新将 id 为 1 的学生的分数修改为 99 分。

其中,用到的语句如下:UPDATE score SET score = 99 WHERE id = 1;3.6 数据删除删除 id 为 2 的学生的记录。

SQLSERVER2008实用教程实验参考答案(实验4)

SQLSERVER2008实用教程实验参考答案(实验4)

SQLSERVER2008实用教程实验参考答案(实验4)实验4 数据库的查询和视图一、SELECT语句的基本使用1. 查询Employees表中所有数据2. 查询Employees表中指定字段数据3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和电话查询月收入高于2000元的员工号码查询1970年以后出生的员工的姓名和住址5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和电话,并将列标题显示为地址和电话查询Employees表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期6. 使用使用CASE子句查询Employees表中员工的姓名和性别,要求Sex值为1时显示“男”,为0时显示“女”查询Employees表中员工的姓名、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。

7. 使用SELECT语句进行简单计算计算每个雇员的实际收入8. 使用内置函数获得员工总数计算Salary表中员工月收入的平均数获得Employees表中最大的员工号码计算Salary表中所有员工的总支出查询财务部雇员的最高和最低实际收入9. 模糊查询找出所有姓王的雇员的部门号找出所有地址中含有“中山”的雇员的号码及部门号找出员工号码中倒数第二个数字为0的员工的姓名、地址和学历10. Between…And…和Or的使用找出收入在2000~3000元之间的雇员编号找出部门为“1”或“2”的雇员的编号11. 使用INTO子句,由源表创建新表由表Salary创建“SalaryNew”表,要求包括编号和收入,选择收入在1500元以上的雇员由表Employees创建“EmployeesNew”表,要求包括编号和姓名,选择所有男员工二、子查询的使用1. 查找在财务部工作的雇员情况2. 用子查询的方法查找所有收入在2500以下的雇员的情况3. 查找财务部年龄不低于研发部雇员年龄的雇员姓名4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名5. 查找比所有财务部的雇员收入都高的雇员的姓名6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名三、连接查询的使用1. 查询每个雇员的情况及薪水的情况2. 查询每个雇员的情况及其工作部门的情况3. 使用内连接的方法查询名字为“王林”的雇员所在的部门4. 使用内连接的方法查找出不在财务部工作的所有雇员信息5. 使用外连接方法查找出所有员工的月收入6. 查找财务部收入在2000元以上的雇员姓名及其薪水详情7. 查询研发部在1976年以前出生的雇员姓名及其薪水详请四、聚合函数的使用1. 求财务部雇员的平均收入2. 查询财务部雇员的最高和最低收入3. 求财务部雇员的平均实际收入4. 查询财务部雇员的最高和最低实际收入5. 求财务部雇员的总人数6. 统计财务部收入在2500元以上的雇员人数五、GROUP BY、ORDER BY子句的使用1. 查找Employees表中男性和女性的人数2. 按部门列出在该部门工作的员工的人数3. 按员工的学历分组,排列出本科、大专、硕士的人数4. 查找员工数超过2的部门名称和雇员数量5. 按员工的工作年份分组,统计各个工作年份的人数,例如工作1年的多少人,工作2年的多少人6. 将雇员的情况按收入由低到高排列7. 将员工信息按出生时间从小到大排列8. 在ORDER BY 子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从大到小排列六、视图的使用1. 创建视图(1)在数据库YGGL上创建视图Departments_View,视图包含Department表的全部列(2)创建视图Employees_Departments_View,视图包含员工号码、姓名、所在部门名称(3)创建视图Employees_Salary_View,视图包含员工号码、姓名和实际收入三列2. 查询视图从视图Employees_Salary_View中查询出姓名为“王林”的员工的实际收入3. 更新视图(1)向视图Departments_View中添加一条记录(‘6’,‘广告部’,‘广告业务’)执行完命令后,分别查看Departments_View和Department表中发生的变化(2)尝试向Employees_Departments_View中添加一条记录,看看会发生什么情况(3)尝试向Employees_Salary_View中添加一条记录,看看会发生什么情况(4)将视图Departments_View中,部门号为‘6’的部门名称修改为‘生产车间’(5)删除视图Departments_View中最新增加的的一条记录4. 删除视图Employees_Departments_View5. 在界面工具中操作视图一、SELECT语句的基本使用1. 查询Employees表中所有数据SELECT*FROM Employees;2. 查询Employees表中指定字段数据SELECT EmployeeID,Name,DepartmentID FROM Employees;3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行SELECT Distinct DepartmentID,Sex FROM Employees;4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和电话Select Address,PhoneNumber FROM Employees WHERE EmployeeID='000001';查询月收入高于2000元的员工号码SELECT EmployeeID FROM Salary WHERE InCome>2000;查询1970年以后出生的员工的姓名和住址SELECT Name,Address FROM Employees WHERE YEAR(Birthday)>'1970'; SELECT Name,Address FROM Employees WHERE Birthday>'1970';5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和电话,并将列标题显示为地址和电话SELECT Address AS地址,PhoneNumber AS电话FROM Employees;查询Employees表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期SELECT Name AS姓名,Birthday AS出生日期FROM Employees WHERE Sex=1;6. 使用使用CASE子句查询Employees表中员工的姓名和性别,要求Sex值为1时显示“男”,为0时显示“女”SELECT Name AS姓名,CASEWHEN Sex=1 THEN'男'WHEN Sex=0 THEN'女'ENDAS性别FROM Employees;查询Employees表中员工的姓名、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四数据库的查询和视图T4.1 数据库的查询1.目的与要求(1)掌握select语句的基本语法;(2)掌握子查询的表示(3)掌握连接查询的表示(4)掌握select语句的group by子句的作用和使用方法(5)掌握select语句的order by子句的作用和使用方法2 实验准备(1)了解SELECT语句的基本语法格式;(2)了解SELECT语句的执行方法;(3)了解子查询的表示方法;(4)了解连接查询的表示;(5)了解SELECT语句的GROUPBY子句的作用和使用方法;(6)了解SELECT语句的ORDERBY子句的作用;3实验内容SELECT语句的基本使用。

①对于实验2给出的数据库表结构,查询每个雇员的所有数据。

新建一个查询,在查询分析器中输入如下语句并执行:USEYGGLGOSELECT *FROM Employees【思考与练习】用SELECT语句查询Departments和Salary表中所有的数据信息。

用SELECT语句查询Employees表中每个雇员的地址和电话。

新建一个查询,在查询分析器中输入如下语句并执行:Use YGGLGOSELECT Address PhoneNumberFROM Employees【思考与练习】a.用SELECT语句查询Deparments和Salary表的一列或若干列。

b.查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。

c.查询EmployeeID为000001的雇员的地址和电话。

Use YGGLGOSELECT Address PhoneNumberFROM EmployeesWHERE EmployeeID=’000001’【思考与练习】a.查询月收入高于2000元的员工号码。

b.查询1970年以后出生的员工的姓名和住址。

c.查询所有财务部的员工的号码和姓名。

查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。

USE YGGLGOSELECT Address AS 地址,PhoneNumber AS 电话FROM EmployeesWHERE Sex=0【思考与练习】查询Employees表中男员工的姓名和出生日期,要求将各列标题用中文标示。

⑤查询Employees表中员工的姓名和性别,要求SEX值为时显示为“男”,为0时显示为“女”。

SELECTNameAS姓名,CASEWHENSex=1 THEN男WHENSex=1 THEN女END AS性别FROMEmployees【思考与练习】查询Employees员工的姓名、住址和收入水平,2000元以下显示低收入,2000-3000元显示为中等收入,3000元以上显示为高收入。

⑥计算每个雇员的实际收入USE YGGLGOSELECT EployeeID,实际收入=income-OutComeFROMSalary【思考与练习】使用SELECT语句进行简单的计算。

⑦获得员工总数。

SELECTCOUNT(*)FROMSalary【思考与练习】a.计算salary表中员工月收入的平均数。

b.获得Employees表中最大员工号码。

c.计算Salary表中所有员工的总支出。

d.查询财务部雇员的最高和最低实际收入。

⑧找出所有姓王的雇员的部门号。

USE YGGLGOSELECTDepartmentIDFROMEmployeesWHERENameLIKE王%【思考与练习】a.找出所有其地址中含有“中山”的雇员的号码及部门.b.查找员工号码倒数第二个数字为0的员工的姓名、地址和学历。

⑨找出所有收入在2000-3000元之间的员工号码。

SELECT EmployeeIDfrom Salarywhere InCome between 2000 and 3000【思考与练习】找出所有在部门“1”或“2”工作的雇员的号码。

注意:了解在SELECT语句中LIKE、BETWEEN…AND、IN、NOT以及CONTAIN谓词的作用。

⑩使用into子句,由表Salary创建“收入在1500元以上的员工”表,包括编号和收入USE YGGLGOselect EmployeeID as 编号,Income as 收入into 收入在1500元以上的员工from Salarywhere InCome>1500【思考与练习】使用Into子句,由表Employees创建“男员工”表,包括编号和姓名。

(1)子查询的使用。

①查找在财务部工作的雇员的情况USE YGGLGOselect *from Employeeswhere DepartmentID=(select DepartmentID from Departmentswhere DepartmentName='财务部')【思考与练习】用子查询的方法查找所有收入在2500元以下的雇员的情况②查找财务部年龄不低于研发部雇员年龄的雇员的姓名。

USE YGGLGOselect Namefrom Employeeswhere DepartmentID in(select DepartmentIDfrom Departmentswhere DepartmentName='财务部')andBirthday!>all(select Birthdayfrom Employeeswhere DepartmentID in(select DepartmentID from Departmentswhere DepartmentName='研发部'))【思考与练习】用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名。

③查找比所有财务部的雇员收入都高的雇员的姓名。

USE YGGLGOSelect Name from Employeeswhere EmployeeID in(select EmployeeID from Salarywhere InCome >all(select InCome from Salarywhere EmployeeID in(select EmployeeID from Employeeswhere DepartmentID=(select DepartmentID from Departmentswhere DepartmentName='财务部'))))【思考与练习】用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名。

(2)连接查询的使用。

①查询每个雇员的情况及其薪水的情况。

USE YGGLGOselect Employees.*,Salary.*from Employees,Salarywhere Employees.EmployeeID=Salary.EmployeeID【思考与练习】查询每个雇员的情况及其工作部门的情况。

②使用内连接的方法查询名字为“王林”的员工所在的部门select DepartmentName from DepartmentsJoin Employees on Departments.DepartmentID=Employees.DepartmentIDwhere ='王林'【思考与练习】a.使用内连接的方法查找出不在财务部工作的所有员工信息。

b.使用外连接方法查找出所有员工的月收入。

②查找财务部收入在2000元以上的雇员姓名及其薪水详情。

新建一个查询,在查询分析器中输入如下语句并执行。

select Name,Income,Outcomefrom Employees,Salary,Departmentswhere Employees.EmployeeID=Salary.EmployeeIDand Employees.DepartmentID=Departments.DepartmentIDand DepartmentName='财务部'and Income>2000【思考与练习】查询研发部在1976以前出生的雇员姓名及其薪水详情。

(2)聚合函数的使用。

1.求财务部雇员的平均收入新建一个查询,在查询分析器中输入如下语句并执行。

USE YGGLGOselect AVG(Income) as '财务部平均收入'from Salarywhere EmployeeID in(select EmployeeIDfrom Employeeswhere DepartmentID=(select DepartmentIDfrom Departmentswhere DepartmentName='财务部'))【思考与练习】查询财务部雇员的最高和最低收入。

3.求财务部的平均实际收入新建一个查询,在查询分析其中输入如下语句并执行。

USE YGGLGOselect avg(Income-Outcome) as '财务部平均实际收入' from Salarywhere EmployeeID in(select EmployeeIDfrom Employeeswhere DepartmentID=(select DepartmentIDfrom Departmentswhere DepartmentName='财务部'))【思考与练习】查询财务部雇员的最高和最低实际收入。

③求财务部雇员的总人数select COUNT(EmployeeID) from Employeeswhere DepartmentID=(select DepartmentID from Departmentswhere DepartmentName='财务部')【思考与练习】统计财务部收入在2500以上的雇员的人数。

(5)GROUP BY、ORDER BY子句的使用:①查找Employees表中男性和女性的人数select Sex,COUNT(Sex)from Employeesgroup by Sex;【思考与练习】a.按部门列出在该部门工作的员工的人数。

b.按员工的学历分组,排列出本科、大专和硕士的人数。

②查找员工数超过2的部门名称和员工数量。

select Employees.DepartmentID,COUNT (*) as '人数'from Employees,DepartmentsWHERE Employees.DepartmentID=Departments.DepartmentIDgroup by Employees.DepartmentIDhaving COUNT(*)>2【思考与练习】按员工的工作年份分组,统计各个工作年份的人数,例如,工作一年的多少人,工作两年的多少人。

相关文档
最新文档