sql server 2008 数据库应用与开发教程 课后习题参考答案
SQL Server 2008数据库应用与开发教程(第二版)第一章习题参考答案1.简述SQL Server 2008系统中主要数据库对象的特点。
答:主要的数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规则和默认值等。
“表”节点中包含了数据库最基本、最重要的对象——表。
表实际用来存储系统数据和用户数据,是最核心的数据库对象。
“视图”节点包含了数据库中的视图对象。
视图是一种虚拟表,用来查看数据库中的一个或多个表,视图是建立在表基础之上的数据库对象,它主要以SELECT语句形式存在。
在“同义词”节点中包含了数据库中的同义词对象。
这是Microsoft SQL Server 2008系统新增的一种对象。
“可编程性”对象是一个逻辑组合,它包括存储过程、函数、触发器、程序集、类型、规则和默认值等对象。
数据库中的函数对象包含在“函数”节点中。
函数是接受参数、执行复杂操作并将结果以值的形式返回的例程。
2.SQL Server 2008数据库管理系统产品分为哪几个版本,各有什么特点?答:SQL Server 2008数据库管理系统产品的服务器版本包括了企业版和标准版,专业版本主要包括以下版本:工作组版(Workgroup)、开发人员版(Developer)、免费精简版(Express)、Web版,以及免费的集成数据库SQL Server Compact 3.5。
3.SQL Server 2008包含哪些组件,其功能各是什么?答:SQL Server 2008的体系结构是对SQL Server的组成部分和这些组成部分之间的描述。
Microsoft SQL Server 2008系统由4个组件组成,这4个组件被称为4个服务,分别是数据库引擎、Analysis Services、Reporting Services和Integration Services。
数据库引擎是Microsoft SQL Server 2008系统的核心服务,负责完成数据的存储、处理、查询和安全管理等操作。
分析服务(SQL Server Analysis Services,简称为SSAS)的主要作用是提供多维分析和数据挖掘功能。
报表服务(SQL Server Reporting Services,简称为SSRS)为用户提供了支持Web方式的企业级报表功能。
集成服务(SQL Server Integration Services,简称SSIS)是一个数据集成平台,负责完成4.安装SQL Server 2008之前应该做什么准备工作?答:(1) 增强物理安全性(2) 使用防火墙(3) 隔离服务(4) 禁用NetBIOS和服务器消息块5.SQL Server 2008支持哪两种身份验证?答:Windows 身份验证或混合模式身份验证。
6.如何注册和启动SQL Server 服务器?答:1. 注册服务器使用Microsoft SQL Server Management Studio工具注册服务器的步骤如下:(1) 启动Microsoft SQL Server Management Studio工具,选择“视图”|“已注册”命令或者按下快捷键Ctrl+Alt+G,在打开的“已注册的服务器”窗口中选中“数据库引擎”图标。
(2) 在“数据库引擎”上单击鼠标右键,从弹出的快捷菜单中选择“新建”|“服务器注册”命令,即可打开如图1-20所示的“新建服务器注册”对话框。
选择“常规”选项卡,可以在该选项卡中输入将要注册的服务器名称。
(3) 选择“连接属性”选项卡,如图1-21所示,在该选项卡中可以设置连接到的数据库、网络以及其他连接属性。
(4) 然后单击“测试”按钮,可以对当前设置的连接属性进行测试。
如果出现如图1-23所示的“新建服务器注册”消息框,则表示连接属性的设置是正确的。
(5) 完成连接属性设置后,单击“保存”按钮,即可完成连接属性的设置操作。
接着单击“保存”按钮,即可完成新建服务器注册的操作。
新注册的服务器名称将出现在列表中。
2. 启动服务器可以通过“开始”菜单来启动SQL Server Configuration Manager,7. 熟悉查询分析器的功能与使用。
(略)第二章习题参考答案1.在Microsoft SQL Server 2008 中,主数据文件的后缀是_.mdf______,日志数据文件的后缀是__.ldf______。
2. 在创建数据库时,系统自动将_master___系统数据库的所有用户定义的对象复制到新建的数据库。
3. 每个文件组可以有__多__个日志文件。
4. 使用T-SQL语句创建数据库的语句是:CREA TE DA TABASE;创建表的语句是:CREA TE TABLE第三章习题参考答案1.在一个表上可以定义__多_个CHECK约束。
2.创建表的语句是:_CREATE TABLE 表名___________。
3.表和表之间的关系是通过__连接实现的。
4.删除表“employ”中的“employdate”列所使用的语句是什么?答: ALTER TABLE employ( DROP employdate)5.为表“employ”删除主键约束的语句是怎样的?答: ALTER TABLE employ(DROP CONSTRAINT 约束名 PRIMARY KEY)第四章习题参考答案1.在SQL Server 2008中对数据使用SSMS图形化界面进行修改,与使用T-SQL修改数据,两种方法相比较,哪一种功能更强大、更为灵活?试举例说明。
答:使用T-SQL修改数据功能更强大,更为灵活。
2. 向附录A 学生成绩(XSCJ)数据库的表中送入或修改成样本数据。
(略)3. 写出T-SQL语句,对产品销售数据库(库名CPXS)产品表进行如下操作:(1) 插入如下记录0001 空调3000 2000203 冰箱2500 1000301 彩电2800 50答:语句如下:insert into 产品表V alues('0001','空调3000','200');insert into 产品表V alues('0203','冰箱2500','100');insert into 产品表V alues('0301','彩电2800','50');(2)将产品数据库的产品表中的每种商品的价格打8折。
语句如下:update 产品表SET 价格=价格*0.8(3)将产品数据库的产品表中价格打8折后小于50的商品删除。
DELETE FROM 产品表WHERE 价格<50第五章习题参考答案1.简述SQL Server 2008的安全层次?答:在SQL Server 2008中,数据的安全保护由4个层次构成。
SQL Server 2008主要对其中的3个层次提供安全控制。
下面分别对每个层次进行简介。
(1) 远程网络主机通过Internet访问SQL Server 2008服务器所在的网络,这由网络环境提供某种保护机制。
(2) 网络中的主机访问SQL Server 2008服务器,首先要求对SQL Server进行正确配置,其内容将在下一节中介绍;其次是要求拥有对SQL Server 2008实例的访问权——登录名,其内容将要在9.2.1小节中介绍。
(3) 访问SQL Server 2008数据库,这要求拥有对SQL Server 2008数据库的访问权——数据库用户,其内容将要在9.2.2小节中介绍。
(4) 访问SQL Server 2008数据库中的表和列,这要求拥有对表和列的访问权——权限,其内容将要在9.5.2小节中介绍。
2.对SQL Server实例访问,SQL Server 2008支持哪几种身份验证模式?答:SQL Server 2008支持两种身份验证模式:Windows身份验证模式和混合身份验证模式。
3.在SQL Server 2008中有几类角色?答:三类:服务器角色、数据库角色、应用程序角色4.什么是架构,架构有什么用处?答:SQL Server 2008实现了ANSI中有关架构的概念。
架构是一种允许用户对数据库对象进行分组的容器对象。
架构对如何引用数据库对象有很大的影响。
在SQL Server 2008中,一个数据库对象通过4个命名部分所组成的结构来引用:<服务器>.<数据库>.<架构>.<对象>使用架构的一个好处是它可以将数据库对象与数据库用户分离,可以快速地从数据库中删除数据库用户。
在SQL Server 2008中,所有的数据库对象都隶属于架构,在对数据库对象或者对其存在于数据库应用程序中的相应引用没有任何影响的情况下,可以更改并删除数据库用户。
这种抽象的方法允许用户创建一个由数据库角色拥有的架构,以使多个数据库用户拥有相同的对象。
5.如何管理SQL Server 2008的权限层次结构?答:对数据的访问是通过SQL Server 2008的权限层次结构进行管理的。
可以使用GRANT、DENY和REVOKE语句来管理这个权限层次结构。
●GRANT:允许一个数据库用户或角色执行所授权限指定的操作。
●DENY:拒绝一个数据库用户或角色的特定权限,并且阻止它们从其他角色中继承这个权限。
●REVOKE:取消先前被授予或拒绝的权限。
6.管理对可编程对象的访问主要涉及哪些可编程对象?答:可编程对象,如存储过程及用户定义的函数,具有自己的安全上下文。
数据库用户需要获得授权以执行存储过程、函数和程序集。
一旦数据库引擎检查了执行可编程对象的权限,就会在可编程对象内部对其所执行的操作进行权限检查。
当数据库对象按顺序相互访问时,该访问顺序将形成一个所有权链。
第六章习题参考答案1.T-SQL和SQL的关系是什么?答:SQL全称是“结构化查询语言(Structured Query Language)”SQL(Structured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
T-SQL是标准SQL 程式设计语言的增强版,它是用来让应用程式与SQL Server 沟通的主要语言。
T-SQL 提供标准SQL的DDL 和DML 功能,加上延伸的函数、系统预存程序以及程式设计结构(例如IF 和WHILE)让程式设计更有弹性。
可以理解成T-sql是SqlServer支持的sql语法,而不是软件。
2.试述T-SQL语言的特点。
SQL2008课后习题答案实验7
SQL2008课后习题答案实验71.存储过程1>创建存储过程,使⽤Employees表中的员⼯⼈数来初始化⼀个局部变量,并调⽤这个存储过程create procedure test @number1 int outputasbegindeclare @number2 intset @number2=(select COUNT (*)from Employees)set @number1=@number2end执⾏该存储过程,并查看结果;declare @num intexec test @num outputselect @num2>创建存储过程,⽐较两个员⼯的实际收⼊,若前者⽐后者⾼就输出0,否则输出1;create procedure COMPA @ID1 char(6),@ID2 char(6),@BJ int outputasbegindeclare @SR1 float,@SR2 floatselect @SR1=InCome-OutCome from Salary where EmployeeID=@ID1select @SR2=InCome-OutCome from Salary where EmployeeID=@ID2if @ID1>@ID2set @BJ=0elseset @BJ=1end执⾏该存储过程,并查看结果;declare @BJ intexec COMPA '000001','108991',@BJ outputselect @BJ3>创建添加职员记录的存储过程EmploeeAdd;create procedure EmployeeAdd(@EmployeeID char(6),@Name char(10),@Education char(4),@Birthday datetime,@WorkYear tinyint,@Sex bit,@Address char(40),@PhoneNumber char(12),@DepartmentID char(3))asbegininsert into Employeesvalues(@EmployeeID,@Name,@Education,@Birthday,@WorkYear,@Sex,@Address,@PhoneNumber,@DepartmentID) endreturngo执⾏该存储过程;exec EmployeeAdd '990230','刘朝','本科','840909',2,1,'洪武⼩洪⼭5号','85465213','3'4>创建⼀个带有output游标参数的存储过程,在Employees表中声明并打开⼀个游标;create procedure em_cursor @em_cursor cursor varying outputasbeginset @em_cursor=CURSOR forward_only staticFORselect * from Employeesopen @em_cursorend声明⼀个局部游标变量,执⾏上述存储过程,并将游标赋值给局部游标变量,然后通过该游标变量读取记录;declare @MyCursor cursorexec em_cursor @em_cursor=@MyCursor outputfetch next from @MyCursorwhile (@@FETCH_STATUS=0)beginfetch next from @MyCursorendclose @MyCursordeallocate @MyCursorgo5>创建存储过程,使⽤游标确定⼀个员⼯的实际收⼊是否排在前三名。
数据库教程(SQLServer)课后习题及答案
习题13、简述数据库系统的组成。
答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、数据库管理员(DataBase Administrator ,DBA )和用户组成。
4、试述数据库系统的三级模式结构。
这种结构的优点是什么?答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,同时包含了二级映像,即外模式/模式映像、模式/内模式映像,如下图所示。
数据库应用1……外模式A 外模式B 模式应用2应用3应用4应用5……模式外模式/模式映像模式/内模式映像数据库系统的这种结构具有以下优点:(1)保证数据独立性。
将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。
(2)有利于数据共享,减少了数据冗余。
(3)有利于数据的安全性。
不同的用户在各自的外模式下根据要求操作数据,只能对限定的数据进行操作。
(4)简化了用户接口。
按照外模式编写应用程序或输入命令,而不需了解数据库全局逻辑结构和内部存储结构,方便用户系统。
5、什么是数据的物理独立性与逻辑独立性?并说明其重要性。
答:(1)数据的物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,存储设备的更换,物理存储的更换,存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。
(2)数据的逻辑独立性是指数据库总体逻辑结构的改变,如修改数据模式,增加新的数据类型、改变数据间联系等,不需要相应修改应用程序。
(3)数据的独立性使得数据库中数据独立于应用程序而不依赖于应用程序,也就是说数据的逻辑结构、存储结构与存取方式的改变不影响应用程序。
相应的,数据的独立性也使得应用程序的编制不再依赖于数据的物理和逻辑结构,提高了应用程序的可移植性与鲁棒性。
从理论上说,数据的独立性可以使数据的组织和应用程序的编制完全分离。
8、什么是数据模型?答:数据模型(Data Model )是一种抽象模型,是对现实世界数据特征的抽象。
sql server 2008表数据操作答案
Vmare Workstation 8及linux系统安装实验报告一、实验目的掌握虚拟机软件的安装和使用掌握Linux的安装掌握Linux的基本配置二、实验环境一台运行Windows的计算机(硬盘剩余空间在10G以上)、虚拟机软件Vmware、Linux安装软件。
三、实验内容安装虚拟机软件Vmware在Vmware中安装Linux。
四、主要步骤VMware安装完成后,重启机器后,打开VMware,如图1图1 VMware Workstation 主界面在VMware中新建一台虚拟机的主要步骤:1.选择File->New->Virtual Machine(或直接按ctrl+n键),出现新建虚拟机向导,如图2所示:图2 新建虚拟机向导2.选择”Custom(advanced)”3.Choose the Vitual Machine Hardware Compatability(选择虚拟机硬件兼容性),”Hardware compatability”选”Worksation 6.5-7.0”4.Guest Operating System Installation(寄宿操作系统安装,即虚拟机上安装的操作系统),如图3:图3 Guest OS 安装选项在”Install from”部分选取安装源,可从光盘驱动器(”Installer disc”)或光盘映像(“Installer disc image file(iso)”)安装,此处选择Fedora-8-i386-DVD.iso。
5.Name the Virtual Machine(命名虚拟机),如图4:图4 虚拟机名称及目录设置“Virtual machine name”设置此虚拟机的名称。
“Location”设置此虚拟机的安装位置。
6.Processor Configuration(处理器设置)“Number of processor”设置虚拟机使用的处理器数“Number of cores per processor”设置每处理器核心数7.Memory for the Virtual Machine(虚拟机内存设置)建议最小设置为512M推荐为虚拟机分配1G以上内存8.Network Type(虚拟机网络设置)此项设置为:”Use network address translation(NA T)”(使用网络地址转换),虚拟机操作系统共享宿主主机的网络IP地址与外部网络连接。
SQLSERVER2008实用教程实验参考答案(实验7)
一、存储过程1. 创建存储过程,使用Employees表中的员工人数来初始化一个局部变量,并调用这个存储过程。
CREATE PROCEDURE TEST@NUMBER1INT OUTPUTASBEGINDECLARE@NUMBER2INTSET@NUMBER2=(SELECT COUNT(*)FROM Employees)SET@NUMBER1=@NUMBER2END执行该存储过程,查看结果。
DECLARE@num INTEXEC TEST@num OUTPUTSELECT@num2. 创建存储过程,比较两个员工的实际收入,若前者比后者高就输出1,否则就输出0。
CREATE PROCEDURE COMPA@ID1char(6),@ID2char(6),@BJ int OUTPUTASBEGINDECLARE@SR1float,@SR2floatSET@SR1=(SELECT InCome-OutCome FROM Salary WHERE EmployeeID=@ID1) SET@SR2=(SELECT InCome-OutCome FROM Salary WHERE EmployeeID=@ID2) IF@SR1>@SR2SET@BJ=1ELSESET@BJ=0END执行该存储过程,查看结果。
DECLARE@BJ intEXEC COMPA'504209','302566',@BJ OUTPUTSELECT@BJ3. 创建添加职员记录的存储过程EmployeeAdd。
CREATE PROCEDURE EmployeeADD(@employeeid char(6),@name char(10),@education char(4),@birthday datetime,@workyear tinyint,@sex bit,@address char(40),@phonenumber char(12), @departmentID char(3))ASBEGININSERT INTO EmployeesVALUES(@employeeid,@name,@education,@birthday,@workyear,@sex,@address,@phonenumber,@departmentID)ENDRETURNGO执行该存储过程。
SQL Server数据库应用辅导习题参考解答
SQL Server数据库应用辅导习题参考解答第一章数据库系统概论1. 人工管理、文件管理、数据库管理2. 依赖于3. 独立、联系4. 做什么、怎么做5. 文件、数据库6. 安全性、一致性、并发性、数据库恢复7. 兼容性强、可靠性高、地域范围广、数据量大、客户数多8. 主属性、非主属性9. 1对1、1对多、多对多10. 1、多11. 1、多12. 记录型、1对多13. 过程、集合14. 元组、属性15. 1、n16. 数据结构、集合运算、独立、数学17. 封装、继承、多态18. 操作系统、开发工具19. 全局模式、外模式、内模式20. 外模式和模式、模式和内模式21. 定义(描述)操纵22. 系统、用户第二章关系运算1. 关系数据结构、关系完整性规则、关系运算2. 域、列名(属性名)3. 1、多4. 候选、属性5. 学生号、非主6. 实体、参照、用户定义7. 空值、主码8. 并、交、差、笛卡尔积9. a1+b1、a2⨯b210. 选择、211. 4、312. ∏学生号、X、δ课程名=’程序设计’13. ∏课程号(X)、C第三章关系规范化基础1. X→Y、决定因素2. 非平凡、平凡3. 非平凡、完全4. X、Z5. X→(Y,Z)、合并性6. X、候选码7. (A,C)、28. A、19. (A,C,G)、310. 第三、无损连接、函数依赖11. 属性、元组、关系12. 数据冗余、操作异常(更新异常)13. 第一、314. 第一、215. 第二、216. 第二、17. BC第四章结构化查询语言--SQL一、填空题1. 视图、基本表2. 非过程化、集合3. KUCUN、LIU4. 列级、表级5. 主码、单值、外码、检查6. primary key、foreign key7. 建立、修改、删除8. 单行(单值)、多行(多值)9. 插入、修改、删除10. 表、建立11. 修改、查找12. 基本表、视图13. 没有影响、有影响14. create view、update、drop view15.投影、连接、选择16. group by、order by17. inner join、left join、right join二、根据主教材第四章所给的商品库和教学库,按照下列所给的每条SQL查询语句写出相应的功能。
数据库原理与应用教程课后习题答案
数据库原理与应用教程―SQL Server习题解答1.5 习题1.数据库的发展历史分哪几个阶段?各有什么特点?答:数据库技术经历了人工管理阶段、文件系统阶段和数据库系统三个阶段。
1)人工管理阶段这个时期数据管理的特点是:数据由计算或处理它的程序自行携带,数据和应用程序一一对应,应用程序依赖于数据的物理组织,因此数据的独立性差,数据不能被长期保存,数据的冗余度大等给数据的维护带来许多问题。
2)文件系统阶段在此阶段,数据以文件的形式进行组织,并能长期保留在外存储器上,用户能对数据文件进行查询、修改、插入和删除等操作。
程序与数据有了一定的独立性,程序和数据分开存储,然而依旧存在数据的冗余度大及数据的不一致性等缺点。
3)数据库系统阶段数据库系统的特点如下:(1)数据结构化(2)较高的数据共享性…(3)较高的数据独立性(4)数据由DBMS统一管理和控制2.简述数据、数据库、数据库管理系统、数据库应用系统的概念。
答:数据是描述事物的符号记录,是信息的载体,是信息的具体表现形式。
数据库就是存放数据的仓库,是将数据按一定的数据模型组织、描述和存储,能够自动进行查询和修改的数据集合。
数据库管理系统是数据库系统的核心,是为数据库的建立、使用和维护而配置的软件。
它建立在操作系统的基础上,位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的创建、查询、更新及各种数据控制等。
凡使用数据库技术管理其数据的系统都称为数据库应用系统。
3.简述数据库管理系统的功能。
答:数据库管理系统是数据库系统的核心软件,一般说来,其功能主要包括以下5个方面。
(1) 数据定义和操纵功能(2) 数据库运行控制功能(3) 数据库的组织、存储和管理(4) 建立和维护数据库(5) 数据通信接口4.简述数据库的三级模式和两级映像。
答:为了保障数据与程序之间的独立性,使用户能以简单的逻辑结构操作数据而无需考虑数据的物理结构,简化了应用程序的编制和程序员的负担,增强系统的可靠性。
数据库原理及应用(SQL Server 2008)第9章答案
9.6.1 选择题A C C B9.6.2 填空题1、Windows身份验证模式混合验证模式。
2、端点SQL Server登录名数据库3、IMPERSONATE9.6.2 简答题1、简述Windows身份验证模式和混合验证模式的区别。
在Windows身份验证模式中,用户通过Microsoft Windows用户帐户连接时,SQL Server 使用Windows操作系统中的信息验证帐户名和密码。
在混合模式中,当客户端连接到服务器时,既可能采取Windows身份验证,也可能采取SQL Server身份验证。
当设置为混合模式时,允许用户使用Windows身份验证和SQL Server身份验证进行连接。
Windows身份验证模式是默认的身份验证模式,它比混合模式安全。
Windows身份验证模式使用Kerberos安全协议,通过强密码的复杂性验证提供密码策略强制、帐户锁定支持、支持密码过期等。
通过Windows用户帐户连接的用户可以使用Windows验证的受信任连接。
如果必须选择"混合模式"并要求使用SQL Server帐户登录,则必须为所有的SQL Server帐户设置强密码。
2、在Microsoft SQL Server 2008 R2系统中,针对所有对象的权限有哪些?针对所有对象的权限有CONTROL、ALTER、ALTER ANY、TAKE OWNERSHIP、INPERSONATE、CREATE及VIEW DEFINITION等。
3、ALTER ANY权限与ALTER权限有哪些差别?ALTER权限为被授权者授予更改特定安全对象的属性的权限,实际上这些权限可以包括该对象除所有权之外的权限。
实际上,当授予对某个范围内的ALTER权限时,也授予了更改、删除或创建该范围内包含的任何安全对象的权限。
ALTER ANY权限与ALTER权限是不同的。
ALTER权限需要指定具体的安全对象,但是ALTER ANY权限则是与特定安全对象类型相关的权限,不针对某个具体的安全对象。
SQL Server从入门到精通 课后习题与答案
第一章1.数据库技术的发展经历了哪3个阶段?答:数据库技术的发展经历了人工管理、文件系统、数据库系统3个阶段。
2.数据模型通常由哪3个部分组成?答:数据模型通常是由数据结构、数据操作和完整性约束3部分组成3.下面哪些是关系数据库?(1)Access (2)SQL Server(3)Oracle (4)XML第二章1.SQL Server2008都有哪些版本?答:SQL Server 2008的版本有:SQL Server 2008分为SQL Server 2008企业版、标准版、工作组版、Web版、开发者版、Express版、Compact 3.5版。
2.SQL Server2008的主要特点有哪些?答:SQL Server 2008的主要特点为:可信任、高效、智能。
3.在安装SQL Server 2008时,可以选择哪些身份验证模式?答:在安装SQL Server 2008时,可以选择:Windows身份验证模式、混合模式(SQL Server 身份验证和Windows身份验证)第三章1.启动SQL Server 2008服务的两种方式分别是什么?如何操作?答:启动SQL Server 2008服务的两种方式分别是:后台启动SQL Server 2008服务和通过SQL Server配置管理器启动SQL Server2011。
后台启动SQL Server 2008服务步骤:选择“开始”/“控制面板”/“控制面板”/“系统和安全”/“管理工具”/“服务”命令,打开“服务”窗口。
在“服务”窗口中找到需要启动的SQL Server 2008服务,单击鼠标右键在弹出的快捷菜单中选择“启动”命令,等待Windows启动SQL Server 2008的服务。
通过SQL Server配置管理器启动SQL Server2011的步骤:首先打开“SQL Server Configuration Manager”管理工具。
SQLSERVER2008实用教程实验参考答案(实验2)
实验2 创建数据库和表1、在D盘根目录下新建文件夹,并命名为Data,用来存储实验环境新建的数据库。
2、使用T-SQL语句创建数据库:USE masterGO--YGGL数据库如果存在,则将其删除IF EXISTS(SELECT name FROM sys.databases WHERE name='YGGL') DROP DATABASE YGGLGOUSE masterGO--新建数据库CREATE DATABASE YGGLON(NAME='YGGL_Data',FILENAME='D:\Data\YGGL.mdf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5%)LOG ON(NAME='YGGL_Log',FILENAME='D:\Data\YGGL_log.ldf',SIZE=2MB,MAXSIZE=5MB,FILEGROWTH=1MB)3、在YGGL数据库下建三个表Employees、Departments、Salary。
--切换到数据库YGGL下USE YGGLGO--新建Employees表CREATE TABLE Employees(EmployeeID char(6)NOT NULL PRIMARY KEY,Name char(10)NOT NULL,Education char(4)NOT NULL,Birthday date NOT NULL,Sex bit NOT NULL DEFAULT 1,WorkYear tinyint NULL,Address varchar(40)NULL,PhoneNumber char(12)NULL,DepartmentID char(3)NOT NULL)--新建Departments表CREATE TABLE Departments(DepartmentID char(3)NOT NULL PRIMARY KEY,DepartmentName char(20)NOT NULL,Note varchar(100)NULL)--新建Salary表CREATE TABLE Salary(EmployeeID char(6)NOT NULL PRIMARY KEY,InCome float NOT NULL,OutCome float NOT NULL)--建立Employees表的外键ALTER TABLE Employees WITH CHECK ADD CONSTRAINTFK_Employees_Departments FOREIGN KEY(DepartmentID)REFERENCES Departments(DepartmentID)--启用外键约束ALTER TABLE Employees CHECK CONSTRAINT FK_Employees_Departments--建立Salary表的外键ALTER TABLE Salary WITH CHECK ADD CONSTRAINT FK_Salary_Employees FOREIGN KEY(EmployeeID)REFERENCES Employees(EmployeeID)--启用外键约束ALTER TABLE Salary CHECK CONSTRAINT FK_Salary_Employees。
SQLSERVER2008实用教程实验参考答案(实验4)word文本
SQLSERVER2008实用教程实验参考答案(实验4)word文本实验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元以上显示为高收入。
