SQL Server 2000实用教程(第三版)习题参考答案
- 格式:doc
- 大小:45.50 KB
- 文档页数:8
身份认证模式可以在安装SQL Server 2000过程中指定,也可在安装后使用 SQL Server 企业管理器指定。
在安装SQL Server 2000或者第一次使用SQL Server连接其它服务器的时候,系统要求指定认证模式。
对于已经指定认证模式的SQL Server服务器,也可以进行修改。
设置或修改认证模式的用户必须使用系统管理员或安全管理员帐户。
1.设置服务器身份认证模式打开企业管理器,在服务器组下面的对应服务器上右击,从弹出的快捷菜单中选择“属性(R)”命令(如图6-2中椭圆圈所示),打开“SQL Server 属性(配置)”对话框。
图6-2 编辑SQL Server注册属性图6-3 “SQL Server属性”对话框在如图6-3所示的“SQL Server 属性(配置)”对话框中,单击“安全性”标签,打开该窗口,在这里设置服务器身份认证模式。
可以是“仅Windows”模式或“SQL Server和Windows”混合模式。
“身份验证”下面的“审核级别”用于跟踪和记录SQL Server实例活动的方法。
可以不跟踪,也可以在成功或失败时跟踪等。
另外,在图6-3所示的“安全性”标签中,还可以设置启动SQL Server的帐户。
修改认证模式后,必须停止SQL Server服务,重新启动后才能使设置生效。
提示:可以在SQL Server 2000的事件探查器中查看跟踪记录的信息。
2.设置注册SQL Server的身份认证属性设置了服务器的登录认证模式后,还要对用户注册SQL Server设置身份验证方法。
在企业管理器中,右击服务器组下面的对应服务器,从弹出的快捷菜单中选择“编辑SQLServer注册属性(E)”命令,如图6-2所示。
打开“已注册的SQL Server属性”对话框。
在图6-4所示的“已注册的SQL Server属性”对话框中选择认证模式。
如果选择“使用SQLServer身份验证”模式,还必须输入登录名和密码(或选择“总是提示输入登录名和密码”,在登录时经提示后再输入)。
各章习题及答案第一章关系数据库原理一、选择及填空题(1) 在下列四个选项中,不属于基本关系运算的是【1】A) 连接B) 投影C) 选择D) 排序(2) 如果一个班只能有一个班长,而且一班长不能同时担任其它班的班长,班级和班长两个实体之间的关系属于【2】A) 一对一联系B) 一对二联系C) 多对多联系D) 一对多联系(3) 扩展名为mdf的文件是【3】A) 主数据文件B) 次数据文件C) 日志文件D) 项目文件(4). SQL Server系统中的所有系统级信息存储于哪个数据库( )。
A. masterB.modelC. tempdbD.msdb1. SQL Server的物理存储主要包括3类文件: 、、。
2.若一个关系为R(学生号,姓名,性别,年龄),则_ 可以作为该关系的主码,姓名、性别和年龄为该关系的属性。
二、简答题1、什么是数据库?2、数据库系统有哪些特点?3、试给出三个实际情况的联系,要求实体之间具有一对一、一对多、多对多各种不同的联系。
4、学校中对教师教学进行评价,被评对象为教师,评价对象有同行教师,学生,专家。
请用E—R图画出教学评价的概念模型。
第一章关系数据库原理(答案)一、选择及填空题(1)~(4)daaa1、主数据文件,次数据文件,日志文件2、学生号,非主或非码二、简答题1、数据库:存储在一起的相关数据的集合(一个表内,表间直接关联,表间间接关联),无有害的或不必要的冗余(重复),可为多种应用服务,数据可以共享,对于拆、删、改、查等操作均可按照一种公共的可控制的方法进行。
数据被结构化。
2、答案:1.数据结构化2.数据的共享性高,冗余度低,易扩展3.数据的独立性高4.数据由DBMS统一管理和控制3、答案:一对一:观众和座位一对多:班级和学生多对多:学生与课程4、对于教学评价,对同一位被评教师而言,对其评价的学生、同行教师、专家都应该是多名,而且每一次成功评价后会得到一个评价数据,所以可得到对教师教学评价的E-R模型如下图所示。
第1章数据库基础练习题一一、单项选择题1.C 2.A 3.C 4.D 5.D6.B 7.A 8.B 9.B 10.D11.C 12.A 13.C 14.B 15.A16.B 17.A 18.D 19.B 20.B21.A; D 22.A 23.C 24.D 25.B26.B 27.B 28.D 29.B 30.B二、填空题1.概念;数据2.属性3.码4.一对一联系;一对多(或多对一)联系;多对多联系5.候选码6.候选码7.关系名(属性1,属性2,…,属性n)8.关系数据结构;关系操作集合;关系完整性约束9.实体;参照;用户定义的;实体;参照10.空值11.需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运行和维护阶段12.准确了解并分析用户对系统的要求,尤其是用户的信息要求、处理要求、安全性与完整性要求,确定所要开发的应用系统的目标,产生用户和设计者都能接受的需求说明书,做为下一步数据库概念结构设计的依据。
13.将需求分析得到的用户需求抽象为信息结构即概念模型。
14.将概念结构进一步转化为某一DBMS支持的数据模型,并对其进行优化。
15.为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据库在物理设备上的存储结构和存取方法。
3、指出以下各缩写的英文意思和中文意思1.DB:Database2.DBMS:Database Management System3.RDBMS:Relational Database Management System4.DBS:Database System5.DBA:Database Administrator6.NF:Normal Form7.DDL:Data Definition Language 四、按题目要求回答问题1.答:2.答:3.答:(1)关系R是2NF。
因为R的候选码为课程名,而课程名→教师名,教师名→教师地址,所以课程名→教师地址,即存在非主属性教师地址对候选码课程名的传递函数依赖,因此R不是3NF。
SQLServer课后习题参考答案(详解)第一章:1、订单管理系统的功能有哪些?答:订单管理系统的功能主要有客户查询商品信息、客户预订商品并提交订单、销售人员处理客户的订单信息、销售人员管理商品信息、客户信息等。
2、说明ER模型的作用?答:ER模型(实体关系模型)是描述概念世界,建立概念世界的工具,ER方法把管理系统所要描述的问题划分为单个的实体,通过实体间的联系实现有效、自然地模拟现实世界。
3、什么是关系模型?关系的完整性包括哪些内容?答:关系模型就是用二维表格结构来表示实体及实体之间联系的模型,关系模型包括四类完整性:域完整性、实体完整性、参照完整性和用户定义的完整性。
4、按照功能,SQL语言分为哪4部分?答:按照功能,SQL语言分为数据定义语言、查询语言、数据操纵语言、数据控制语言。
5、规范化范式是依据什么来划分的?它与一事一地的原则有什么联系?答:规范化范式根据一个关系满足数据依赖的程度不同,可规范化为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。
规范化范式遵循一事一地的原则,将描述一个独立事物的属性组成一个关系。
第二章:1、SQL Server 2005有哪些新增特性?答:SQL Server 2005的新特性主要体现在企业数据管理、开发人员生产力、商务智能三个方面。
企业数据管理体现在高可用性、管理工具、安全性和可伸缩性;开发人员生产力体现在CommonLanguage Runtime集成、集成XML、Transact-SQL增强和SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务和数据挖掘。
2、SQL Server 2005安装的软件和硬件环境是什么?答:SQL Server 2005安装的软件和硬件环境参见教材表2-3、2-4、2-5、2-6。
3、SQL Server 2005有哪些版本?有哪些服务组件?答:SQL Server 2005包括企业版、标准版、工作组版、开发版和简易版五个版本,服务组件主要有SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services等。
习题参考答案第一章1、SQL Server 2000有七种不同的可用版本:企业版、企业评估版、标准版、开发版、个人版、Windows CE版和桌面引擎版。
2、Microsoft Windows NT Server 4.0、Microsoft Windows NT Server 4.0 企业版、Windows 2000 Server、Windows 2000 Advanced Server 和Windows 2000 Data Center Server第二章1、C2、A3、Exec sp_addtype New_str,'Varchar(12)', 'Not Null '第三章1.数据文件、事务日志、mdf、ldf。
2.CREATE DATABASE。
3.SP_HELPDB.4.ALTER DATABASE.。
5.DBCC SHRINKFILE、DBCC SHRINKDATABASE。
6.SP_DBOPTION。
7.DROP DATABASE。
8.SP_DETACH。
9.带FOR ATTACH子句的CREATE DATABASE语句。
10.CREATE TABLE。
11.ALTER TABLE。
12.DROP TABLE。
13.INSERT。
14.UPDATE。
15.DELETE。
16.约束定义了关于允许什么数据进入数据库的规则。
约束有五种类型,分别是PRIMARY KEY约束、FOREIGN KEY约束、UNION约束、CHECK约束、DEFAULT约束。
约束的作用是防止列出现非法数据,以保证数据库中数据的一致性和完整性。
17.(1) DELETE E2 FROM E2, E1WHERE E2.编号 IN (SELECT 编号 FROM E1)(2) INSERT INTO E1 SELECT * FROM E218. UPDATE G1 SET G1.数量= G1.数量+ G2.数量FROM G1, G2WHERE G1.编号= G2.编号GOINSERT INTO G1SELECT * FROM G2 WHERE NOT (G2.编号IN (SELECT 编号FROM G1))第四章1. A、B、D2.B、C、D3.(1)程序为:SELECT top 6 * FROM goods(2)程序为:SELECT 商品名称,进货价FROM goods ORDER BY 进货价DESC (3)程序为:SELECT 商品名称,零售价,进货价,剩余数量FROM goods INNER JOIN sell ON goods.商品编号=sell.商品编号(4)程序为:SELECT 商品编号,数量,零售价FROM goodsCOMPUTE A VG(零售价)(5)程序为:SELECT 商品名称,goods.数量,售出时间FROM goods,sellWHERE 售出时间between '2004.1.1'AND '2005.1.1'and goods.商品编号=sell.商品编号(6)程序为:SELECT * FROM employeesWHERE 编号=ANY (SELECT 售货员工编号FROM sell)SELECT 售货员工编号,商品编号,数量FROM sell order by 售货员工编号COMPUTE SUM(数量) BY 售货员工编号(7)程序为:SELECT 商品名称,goods.数量,剩余数量FROM goods,sellWHERE goods.商品编号=sell.商品编号and 商品名称LIKE '%显示器%'(8)程序为:SELECT SUM(sell.数量) as 打印机销售数量FROM sell,goodsWHERE sell.商品编号=goods.商品编号and 商品名称='打印机'第五章1. C2. D3.答:索引是一个单独的,物理的数据库结构。
use jiaoxuedbgo--page154实验--1利用学生姓名查询该生选修的课程名,成绩,以及任课教师姓名if object_id('pro_1')is not nulldrop procedure pro_1gocreate procedure pro_1(@sn char(8))asbeginselect cn,score,tn from student,sc,course,tc,teacher wherestudent.sno=sc.sno and o=o and tc.tno=teacher.tno and o=o and sn=@snend--查询declare @sn char(8)exec pro_1 '张建国'--2查询某系的学生的最大年龄和最小年龄--select dept ,max(age) maxage,min(age) minage from student group by dept if object_id('pro_2')is not nulldrop procedure pro_2gocreate procedure pro_2(@dept char(10),@maxage tinyint output,@minage tinyint output)asbeginselect @maxage=max(age),@minage=min(age)from student where dept=@dept end--查询declare @dept char(10),@maxage tinyint,@minage tinyintexec pro_2 '计算机',@maxage output,@minage outputprint @maxageprint @minage--3利用学生姓名和课程名检索该生该课程的成绩if object_id('pro_3')is not nulldrop procedure pro_3gocreate procedure pro_3(@sn char(8),@cn char(10),@score tinyint output)asbeginselect @score=score from student,sc,course where sn=@sn and cn=@cn end--查询declare @sn char(8),@cn char(10),@score tinyintexec pro_3 '张建国','数据库',@score outputprint @score--4根据职称查询人数,并给出“副教授”的人数if object_id('pro_4')is not nulldrop procedure pro_4gocreate procedure pro_4(@prof char(10),@count smallint output)asbeginselect @count=count(*)from teacher where prof=@profend--查询declare @prof char(10),@count smallintexec pro_4 '副教授',@count outputprint @count--5统计某系某职称的人数,平均年龄,平均工资,最高工资if object_id('pro_5')is not nulldrop procedure pro_5gocreate procedure pro_5(@dept char(10),@prof char(10),@count smallint output,@avgage tinyint output,@avgsal smallint output,@maxsal smallint output)asbeginselect@count=count(*),@avgage=avg(age),@avgsal=avg(sal),@maxsal=max(sal) from teacher where dept=@dept and prof=@profend--查询declare @dept char(10),@prof char(10),@count smallint,@avgage tinyint,@avgsal smallint,@maxsal smallintexec pro_5 '计算机','讲师',@count output,@avgage output,@avgsal output,@maxsal outputprint @countprint @avgageprint @avgsalprint @maxsal--6查询某系的教师人数,平均年龄和学生人数--select teacher.dept,count(distinct tno) t,avg(teacher.age) avgage,count(distinct sno) s from teacher,student whereteacher.dept=student.dept group by teacher.dept having teacher.dept='计算机'if object_id('pro_6')is not nulldrop procedure pro_6gocreate procedure pro_6(@dept char(10),@tcount smallint output,@avgage tinyint output,@scount smallint output)asbeginselect @tcount=count(distincttno),@avgage=avg(teacher.age),@scount=count(distinct sno)from teacher,student where teacher.dept=student.dept group by teacher.dept having teacher.dept=@deptend--查询declare @dept char(10),@tcount smallint,@avgage tinyint,@scount smallintexec pro_6 '计算机',@tcount output,@avgage output,@scount outputprint @tcountprint @avgageprint @scount--7利用课程名查询选修该课程的学生姓名,系别,成绩,并给出“程序设计”该课程的查询信息if object_id('pro_7')is not nulldrop procedure pro_7gocreate procedure pro_7(@cn char(10))asbeginselect sn,dept,score from student,sc,course where student.sno=sc.sno and o=o and cn=@cnend--查询declare @cn char(10)exec pro_7 '程序设计'--8利用教师姓名和课程名检索该教师该任课的课程名,课时数,选课人数,平均成绩,最高成绩,并查询教师"张雪"的"微机原理"课程的情况记录select tn,o,cn,ct,count(sno)as选课人数from sc,course,tc,teacher where o=o and teacher.tno=tc.tno ando=o group by o,cn,ct,tnif object_id('pro_8')is not nulldrop procedure pro_8gocreate procedure pro_8(@tn char(8),@cn char(10))asbeginselect cn,ct,count(sno)as选课人数,avg(score)as平均成绩,max(score)as最高成绩from sc,course,tc,teacher where o=o andteacher.tno=tc.tno and o=o and tn=@tngroup by o,cn,ct having cn=@cnend--查询declare @tn char(8),@cn char(10)exec pro_8 '张雪','微机原理'--9删除实验题创建的存储过程。
最新资料,word文档,可以自由编辑!!精品文档下载【本页是封面,下载后可以删除!】一、选择题1、下面的描述错误的是(B)A、每个数据文件中有且只有一个数据文件。
B、日志文件可以存在任何文件组中。
C、主数据文件默认为Primary文件组。
D、文件组是为了更好的实现数据库文件组织。
2、SQL server数据库文件有三类,其中主数据文件的后缀是(C)A、ndfB、ldfC、mdfD、idf3、下面标志符不合法的是(C)A、#mybaseB、-mybaseC、$mybaseD、mybase4、下面对索引的相关描述正确的是(C)A、经常被查询的列不适合建索引。
B、列值唯一的列适合建索引。
C、有很多重复值的列适合建索引。
D、是外键成主键的列不适合建索引。
5、下列SQL语句中,修改表结构的是(A)A、ALTERB、CREATEC、UPDATED、INSERT6、用于数据库恢复的重要文件是(C)A、数据库文件B、索引文件C、日志文件D、数据文件7、扩展存储过程是(B)才有的存储过程A、modec数据库B、master数据库C、msdb数据库D、tempelb数据库8、用于进行安全管理的Transalt-SQL语言是(C)A、DDL语言B、DML语言C、DCL语言D、DQL语言9、SQL Server 2000中事务的类型有(A)A、系统,用户定义的事务B、分布式事务C、数据库事务D、其它事务10、下列说法正确的是(D)A、SQL中局部变量可以不声明就使用B、SQL中全局变量必须先声明在使用C、SQL中所有变量必须先声明在使用D、SQL中只有局部变量先声明再使用,全局变量是由系统提供的,用户不能自己分立11、下面字符串能与通配符表达式[abc]%a进行匹配的是(D)A、bedefB、a_bedC、abc-eD、a%a12、下列说法正确的是(B)A、视图是观察数据的一种方法,只能基本表建立。
B、视图是虚表,观察到的数据是实际基本表中的数据。
实验四数据库的查询和视图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子句将结果中各列的标题分别指定为地址、电话。
二、题目1、显示年龄不在18到20岁之间的所有学生名单答:select 学号,姓名,年龄from 学生表where 年龄< 18 or 年龄>202、列出计算机系和国际贸易系学生的学号、姓名、性别和所在院系答:select 学号,姓名,性别,所在院系from 学生表where 所在院系='计算机'or 所在院系='国际贸易'3、列出名字中第2 个字为“成”字的学生的所在院系、学号和姓名答:select 所在院系,学号,姓名from 学生表where 姓名like'%成%'4、显示学生的清单,要求查询结果的入学年龄按照降序排列,若入学年份相同,则按照学号升序排列答:Select * from 学生表order by 入学年份desc,学号asc5、列出2002年元旦前入学的学生名单。
要求查询结果的入学年份,按照降序显示答:select * from 学生表where 入学年份<='2002-01-01' order by 入学年份desc6、列出选修“C801”课程的学生的学号和成绩,要求查询结果按照学号的降序排列答:select 学号,成绩from 成绩表where 课程号='c801' order by 学号desc7、列出课程表的清单,要求查询结果按照先修课的升序排列Select * from 课程表order by 先修课asc8、列出授课表中共有多少位教师Select count(distinct 教师名) from 授课表9、统计学生表中一共有多少位19岁以上的女同学Select count (*) from 学生表where 年龄>19 and性别='女'10、列出选修了课程的学生人数Select count(distinct 学号) from 成绩表11、查询选修“C801”课程的学生最高分数Select max(成绩) from 成绩表where 课程号='C801'12、统计每一届学生的人数答:Select 入学年份,count(学号) '人数' from 学生表group by 入学年份13、统计男、女学生各自的人数和平均年龄答:select 性别学号,avg(all 年龄)'平均年龄',count(学号)'人数' from 学生表group by 性别14、列出各个课程号以及相应的选修人数答:select 课程号,count(学号) '选修人数' from 成绩表group by 课程号15、列出选修了一门以上课程的学生名单及其选修门数答:select 学号,count(课程号) from 成绩表group by 学号having count(*)>116、列出每个学生及其选修课程的详细清单答:select 学生表.*,成绩表.* from 学生表,成绩表where 学生表.学号=成绩表.学号17、列出每一门课程的间接先修课(即先修课的先修课)答;select A.课程号,A.课程名,B.先修课from 课程表18、列出所有学生的学习成绩。
(1)通过建立的ODBC数据源(DSN)与SQL Server数据库连接如前面介绍的VB应用程序一样,在ASP中,也可以直接利用事先已建立的系统数据源DSN建立与SQL Server数据库的连接。
例如,以下代码就是利用【例8.1】创建的数据源jxgl建立ASP页面与教学数据库teachdb 的连接:set cn=server.createobject("ADODB.Connection")cn.provider="sqloledb"cn.open "DSN=jxgl;database=teachdb;uid=sa;pwd=sa"代码说明:首先用ASP内置对象Server的createobject方法建立一个连接对象实例cn,设置cn的OLE DB提供程序为“sqloledb”,然后使用【例8.1】创建的数据源jxgl与cn建立连接,并同时指出登录用户名和密码,以及连接后的默认数据库。
(2)直接用代码建立与SQL Server数据库的连接如果没有事先建立DSN,可以在ASP中直接使用代码指定数据库驱动程序,建立与数据库的连接。
此时要以driver={驱动程序名称}的格式来指定ODBC驱动程序。
SQL Server的驱动程序是“SQL Server”,Access数据库的驱动程序为“Microsoft Access driver(*.mdb)”。
下面两行代码演示了直接使用SQL Server数据库驱动程序,通过Connection对象的Open方法与指定的数据库建立连接。
set cn1=server.createobject("ADODB.Connection")cn1.open "driver=sql server; server= dbserver ;database=teachdb;uid=sa;pwd=sa"提示:如果想取得计算机上ODBC驱动程序名称,可以启动“控制面板/管理工具/数据源(ODBC)”,打开ODBC数据源管理器,或在C:\winnt\odbc.ini中找到有关的信息。
一、选择题1. SQL Server2000是一个(B)关系型数据库管理系统。
A、B/SB、C/SC、D/SD、E/S2.下面关于实例名称的说法错误的是(A)。
A、实例名称区分大小写B、实例名称不能是Default或MSSQLServerC、实例名称必须遵从SQL Server标识符规则切不能为保留关键字D、必须将实例名限制为16个字符3.SQL Server2000的核心管理工具是(企业管理器)1.下面关于SQL Server服务器组的说明错误的是(不能为SQL Server组创建子服务组)2.在注册SQL Server服务器时,以下选项中不是必须指定的是(登录名和密码)3.下列(服务器网络实用工具)方式不能启动和停止SQL Server服务。
4.在“SQL Server属性(配置)”对话框中,可以看到SQL Server的(产品)信息。
5.在Windows服务中,SQL Server的服务名为(MSSQLSERVER)6.可以用于启动SQL Server服务器的命令为(net start MSSQLSERVER)7.SQL Server的默认监听端口为(1433)1.下面不是SQL Server系统数据库的是(MSSQL)2.下面关于视图的描述不正确的是(视图是保存基本数据的逻辑单位)3.SQL Server主要数据文件的扩展名是(.mdf)4.从物理结构上讲,SQL Server数据存储的基本单位是(页)5.下面不是SQL Server表约束的是(聚集约束)6.下面不是SQL Server标准数据类型的是(double)1.在SQL Server 2000中,系统管理员登陆账户为(sa)2.创建windows身份验证模式登陆账户存储过程是(sp_grantlogin)3.拒绝账户登陆到SQL Server 2000的存储过程是(sp_denylogin)4.在固定服务器角色中,(sysadmin)角色的权限最大。
SQ复习资料一、选择题1、必须运行在NT或2000 服务器版的SQL SERVER 2000的版本是(A)A、标准版B、开发者版C、个人版D、三者都不是2、SELECT语句属于SQL语言中的(D)A、DDL语言B、DML语言C、DCL语言D、DQL语言3、下列系统表中会出现在每个数据库中的主系统表是(B)A、sysdatabasesB、sysobjectsC、sysusersD、master4、对一个重要的只读数据库,我们经常采用(A)方法备份数据。
A、完全数据库备份B、差异备份C、数据库文件和文件组备份D、事务日志备份5、下面能够备份数据库的角色是(A)A、服务器管理员B、安全管理员C、磁盘管理员D、进程管理员6、下列数据库中,包含所用用户数据库和模板数据库的数据库是(B)A、masterB、modelC、msdbD、pubs7、用户自定义存储过程文件存储在(A)文件中。
A、sysobjectsB、sysusersC、sysdatabasesD、sysindexes8、在SQL SERVER中用于单行注释的是(C)A、/* */B、&&C、--D、@9、事务日志文件的扩展名为(A)A、LDFB、NDFC、DBFD、MDF10、下同哪种备份包含自上次备份以来一行修改几次的所有修改(D)A、完全数据库备份B、差异备份C、数据库文件和文件组备份D、事务日志备份11 、下面数据类型,在定义时需要给出数据长度的是(B)A、intB、varcharC、textD、money12、在建立约束时即自动建立索引的是(D)A、建立检查约束时B、建立外部键约束时C、建立默认约束时D、建立惟一性约束时13、下面哪种文件类型不能导入SQL SERVER中?(A)A、WORDB、EXECLC、FoxProD、TXT文档14、SQL Server 2000是一个基于(B)的关系数据库管理系统。
A B/S模式B C/S模式C SQL模式D 以上都不是15、在SQL Server 2000中,一个数据库可最多创建(B)个表。
《SQLServer实用教程》(第三版)试题及答案D、DQL语言一、选择题 9、SQL Server 2000中事务的类型有(A) 1、下面的描述错误的是(B) A、系统,用户定义的事务 A、每个数据文件中有且只有一个数据文件。
B、分布式事务B、日志文件可以存在任何文件组中。
C、数据库事务C、主数据文件默认为Primary文件组。
D、其它事务D、文件组是为了更好的实现数据库文件组10、下列说法正确的是(D) 织。
A、SQL中局部变量可以不声明就使用 2、SQL server数据库文件有三类,其中主B、SQL中全局变量必须先声明在使用数据文件的后缀是(C)C、SQL中所有变量必须先声明在使用 A、ndfD、SQL中只有局部变量先声明再使用,全B、ldf 局变量是由系统提供的,用户不能自己分立 C、mdf 11、下面字符串能与通配符表达式[abc]%aD、idf 进行匹配的是(D)3、下面标志符不合法的是(C) A、bedefA、#mybaseB、a_bedB、-mybaseC、abc-eC、$mybaseD、a%aD、mybase 12、下列说法正确的是(B) 4、下面对索引的相关描述正确的是(C) A、视图是观察数据的一种方法,只能基本A、经常被查询的列不适合建索引。
表建立。
B、列值唯一的列适合建索引。
B、视图是虚表,观察到的数据是实际基本C、有很多重复值的列适合建索引。
表中的数据。
D、是外键成主键的列不适合建索引。
C、索引查找法一定比表扫描法查询速度快。
5、下列SQL语句中,修改表结构的是(A) D、索引的创建只和数据库的存储有关系。
A、ALTER 13、下面仅存在于服务器端的组件是(A) B、CREATE A、服务管理器C、UPDATE B、企业管理器D、INSERT C、查询分析器6、用于数据库恢复的重要文件是(C) D、导入导出组件A、数据库文件 14、SQL语言中删除一个表的命令是(B)B、索引文件 A、DELETEC、日志文件 B、DROPD、数据文件 C、CLEAR7、扩展存储过程是(B)才有的存储过程 D、REMOREA、modec数据库 15、在SQL语言中,条件“BETWEEN 20B、master数据库AND 30”表示年龄在20到30岁之间,且C、msdb数据库 (A)D、tempelb数据库 A、包括20岁和30岁8、用于进行安全管理的Transalt-SQL语言B、不包括20岁和30岁是(C)C、包括20岁不包括30岁 A、DDL语言D、不包括20岁包括30岁 B、DML语言16、为了使索引键的值在基本表中唯一,在C、DCL语言建立索引语句中应使用保留字(A)A、UNIQUE唯一的 D、数据控制语言B、COUNT 24、数据库中只存放视图的是(C)C、DISDINCT A、操作D、UNION B、对应的数据17、下面有关主键的叙述正确的是(B) C、定义A、不同的记录可以有重复主键值或空值 D、限制B、一个表中的主键可以是一个或多个字段 25、数据库中的封锁机制(LOCKS)是(C)C、在一个表中主键只可以是一个字段的主要手段D、表中的主键的数据类型必须定义为自动A、完整性编号或文本 B、安全性18、下列哪一个数据库不是SQL Server 2000C、并发控制的系统数据库( C ) D、恢复A、Master数据库 26、以下(B)语句从表TABLE_NAME中B、MSdb数据库提取前10条记录C、Xscj数据库//汗。
【例8.5】显示northwind数据库中orders表的所有记录。
现在我们将【例8.4】中的数据库连接语句改为如下代码,而其他代码不动,即可实现。
运行结果如图8-29所示:…...
set cn=server.createobject("adodb.connection")
cn.provider="sqloledb"
provstr="dsn=teachdbdsn;database=northwind;uid=sa;pwd=sa;"
cn.open provstr
set rs=cn.execute("select * from orders")
……
图8-29 显示northwind数据库中的所有信息
如果没有事先建立DSN,可以直接指定ODBC的名称来达到与数据库连接的目的。
但要注意:如果直接用ODBC驱动程序名称,那么必须以driver={驱动程序名称}的格式。
如果想取得计算机上ODBC驱动程序名称,可以启动ODBC data source administrator 或在C:\winnt\odbc.ini中找到有关的信息,如Microsoft SQL server的驱动程序为“SQL server”,Microsoft Access的驱动程序为“Microsoft Access driver(*.mdb)”等等。
[例5.25] 使用带有通配符参数的存储过程。
创建存储过程student_info2,用于从三个表的连接中返回指定学生的学号、姓名、所选课程名称、学分及该课程的成绩。
该存储过程在参数中使用了模式匹配。
程序清单:USE teachdbIF EXISTS(SELECT name FROM sysobjectsWHERE name=′student_info2′AND type=′P′)DROP PROCEDURE student_info2GOCREATE PROCEDURE student_info2@name varchar(30)ASSELECT student.s_no as学号,student.s_name AS 姓名,course.c_name AS课程名,course.c_score AS 学分,choice.score AS 成绩FROM student,course,choiceWHERE student.s_name LIKE @name and student.s_no=choice.s_no and course.c_ no=choice.c_noGO本例Student_info2存储过程也可以有多种执行形式,下面列出了一部分:EXECUTE student_info2 ′王%′/*传递给@name的实参为′王%′*/通过查询分析器运行,结果如图5-39所示。
图5-39 [例5.30]运行结果(1)EXECUTE student info2 ′[王张]%′通过查询分析器运行,结果如图5-40所示。
图5-40 [例5.30]运行结果(2)EXECUTE student info2 ′%′通过查询分析器运行,结果如图5-41所示。
图5-41 [例5.30]运行结果(3)EXECUTE student info2通过查询分析器运行,由于未提供实参,运行出错。
结果如图5-42所示。
图5-42 [例5.30]运行结果(4)。
【例5.19】使用WHILE语句对teachdb数据库中课程表(course)内的学分作如下修改:如果总学分少于80,则通过WHILE循环将每门课的学分加1,如此反复循环直到修改后的总学分大于或等于80,或某门课程的学分大于18为止。
程序清单:USE teachdbWHILE (SELECT SUM(c_score) FROM course1)<80BEGINUPDATE course1 SET c_score=c_score+1IF (SELECT MAX(c_score) FROM course1)>18BREAKELSECONTINUEEND本例用一条查询学分(c_score)总和语句并判断是否小于80作为循环语句的条件表达式。
如果总学分少于80,执行WHILE语句的循环体:将各门课程的学分加1。
然后判断有没有课程的学分已超过18,如果没有则该循环继续进行,否则终止循环。
在查询分析器中输入程序,运行结果如下图所示。
使用WHILE(BREAK / CONTINUE)语句图5-18显示了在执行本例程序前后course表中数据的变化情况。
由表中数据可知,当循环到总学分83分时退出循环,结束程序。
图5-18 执行WHILE语句前后数据表数据对照(一)如果我们将执行本例程序前course表中的英语课学分改为16,则执行本例程序前后course表中数据的变化情况见图5-19所示。
由表中数据可知,当循环到英语学分增大到19分时满足BREAK条件,退出循环,结束程序。
图5-19 执行WHILE语句前后数据表数据对照(二)提示:本例循环体中IF语句的ELSE部分也可以不要,即不需要CONTINUE,程序功能不变。
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.主键约束或唯一性约束,检查约束或规则,指定默认值或不允许字段为空等。
2.规则与CHECK约束的区别主要有以下几点:(1)CHECK约束是用CREATE TABLE语句在建立表时指定或用ALTER TABLE语句在修改表时添加的,而规则是以单独的数据库对象形式创建,然后将它绑定到数据表中的列上;(2)在一个列上只能使用一个规则,但可以使用多个CHECK约束;(3)一个规则可以应用于多个列,而一个CHECK约束只能应用于它所定义的列上;(4)规则还可以应用于用户自定义的数据类型上。
4.DELETE语句用于删除表中的一条或多条记录;而DROP TABLE语句用于删除整个表。
第4章数据库查询一、单项选择题1.B 2. D 3. D 4. B 5. D 6.D 7.C 8.C 9. C 10.D二、填空题1. Distinct all2.聚合函数聚合函数ORDER BY3.FROM WHERE4.自联接对同一个表分别设定不同的别名5. 左外联接右外联接全外联接6. % _ [ ]7. UNION 第一个8. EXISTS NOT EXISTS9. 所引用的数据表允许10. 1024 只受所引用的表中记录数的限制三、操作题1.USE teachdbSELECT c_name AS 课程名称,c_score AS 学分FROM course WHERE c_name LIKE '%数%'2.USE teachdbSELECT s_name AS 姓名,s_department AS 专业,'现在年龄' AS ' ',YEAR(GETDATE())-YEAR(s_birthday) AS 年龄FROM student WHERE s_birthday>='1982-10-01' ORDER BY s_birthday(注:教材中本题目有打印错误。
第二列应为s_depart.ment,漏了字母t)3.USE teachdbSELECT t_name,c_no INTO inquireFROM teacher JOIN teaching ON teacher.t_no=teaching.t_no4.USE teachdbSELECT c_name AS 课程名,s_no AS 选修同学FROM choice RIGHT JOIN course ON choice.c_no=course.c_no(注:教材中本题目有打印错误。
选修该课学生的学号字段应为s_no)5.USE teachdbGOCREATE VIEW V_EM1ASSELECT c_name AS 课程名,s_no AS 选修同学FROM choice RIGHT JOIN course ON choice.c_no=course.c_no 6.USE teachdbSELECT 课程名称=c_name,学生姓名=s_name,成绩=scoreFROM course,choice,studentWHERE course.c_no=choice.c_no AND student.s_no=choice.s_noAND course.c_name='数据结构'AND choice.score>(select A VG(score) FROM choice,courseWHERE choice.c_no=course.c_no AND course.c_name='数据结构') 7.USE test1SELECT 员工姓名AS 职工姓名,项目名称AS 所负责项目FROM project RIGHT JOIN employees ON project.项目负责人=employees.员工姓名USE test1SELECT 员工姓名AS 职工姓名,项目名称AS 所负责项目FROM project,employees WHERE project.项目负责人=*employees.员工姓名(注:教材中对本题至第10题所依据的test1数据库及相关表的说明有误,应参考第2.章和第3.章的课后练习题)8.USE test1SELECT 员工姓名,工资FROM employees WHERE 工资IS NOT NULLORDER BY 工资DESC COMPUTE A VG(工资)9.USE test1SELECT TOP 1 项目名称,项目负责人,工资FROM project,employees WHERE project.项目负责人=employees.员工姓名ORDER BY 工资DESC10.USE test1GOCREATE VIEW V_EM2 WITH ENCRYPTIONASSELECT TOP 100 PERCENT 员工姓名,工资FROM employees WHERE 工资IS NOT NULLORDER BY 工资DESC说明:本题SELECT语句中的TOP 100 PERCENT表示取结果集中的100%记录。
因为题目中要求按工资排序,但在SQL Server 2000中,除非同时指定了TOP,否则ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。
第5章Transact-SQL 程序设计一、单项选择题1.A 2. C 3. C 4.C、D 5.D 6.B、C 7.D 8.D 9.D、C 10.B二、多项选择题1.2)3)4)5)2.1)2)3)4)5)7)三、填空题1.DECLARE @X MONEY SET @X=500 SELECT @X=5002.3.1423.219.004.交大5.master sp_ 系统存储过程6.输入输出返回7.在CREATE PROCEDURE语句创建存储过程时使用WITH RECOMPILE选项在用EXECUTE命令执行存储过程时使用WITH RECOMPILE选项8.AFTER INSTEAD OF9.inserted deleted 修改前的记录插入deleted表,修改后的记录插入inserted表10.ALTER TABLE Orders DISABLE TRIGGER OrderInsert四、简答题1.@@x不是一个全局变量。
因为全局变量是SQL Server系统内部使用的变量,它是一组由SQL Server事先定义好的变量。
尽管@@x的命名符合SQL Server全局变量的命名规定,但SQL Server系统不认识它。
2.不完全相同。
因为先删除原存储过程,然后再创建同名的存储过程后,在原来存储过程上设置的权限将全部丢失。
3.使用游标基本步骤:声明游标→打开游标→读取数据→关闭游标→删除游标。
五、操作题1.USE teachdbDECLARE @sex CHAR(2)SET @sex='女'SELECT s_no,s_name FROM student WHERE s_sex=@sex 2.DECLARE @avg REALUSE teachdbSELECT @avg=A VG(score) FROM choice JOIN courseON choice.c_no=course.c_no WHERE course.c_name='数据结构'IF @avg>80 PRINT '数据结构平均分高于80分'3.USE teachdbGOIF EXISTS(SELECT name FROM sysobjects WHERE name='proc1' AND type='P')DROP PROCEDURE proc1GOCREATE PROCEDURE proc1@student_no CHAR(4)ASSELECT student.s_no,s_name,c_name FROM student,choice,course WHERE student.s_no=choice.s_no AND course.c_no=choice.c_noAND student.s_no=@student_noGOEXEC proc1 101EXEC proc1 1024.USE teachdbIF EXISTS(SELECT name FROM sysobjectsWHERE name='trig1' AND type='TR')DROP TRIGGER trig1GOCREATE TRIGGER trig1 ON teachingAFTER INSERTASIF EXISTS(SELECT * FROM teachingWHERE teaching.t_no NOT IN(SELECT teacher.t_no FROM teacher) OR teaching.c_no NOT IN(SELECT course.c_no FROM course))BEGINRAISERROR('违背数据的一致性,不允许插入',16,1)ROLLBACK TRANSACTIONEND5.USE teachdbGOCREATE FUNCTION sum_m(@m AS int)RETURNS intBEGINDECLARE @s int,@i intSET @s=0SET @i=1WHILE @i<=@mBEGINSET @s=@s+@iSET @i=@i+1ENDRETURN @sEND说明:函数创建后,可用以下语句测试函数的功能:SELECT dbo.sum_m(4) AS '1+2+3+4'SELECT dbo.sum_m(100) AS 'SUM(1~100)'SELECT dbo.sum_m(-5)第6章数据库安全性管理一、单项选择题1.B、D 2. B 3. B 4.D 5.D、B 6.A 7.D 8.A 9.A、D 10.B二、填空题1.Windows认证SQL Server认证2.对象权限语句权限隐含权限3.BUILTIN \Administrators sa4.dbo guest5.master sysxlogins 用户sysprotects6.服务器应用程序固定数据库角色自定义数据库角色7.Public 无任何8.msdb9.本地或网络硬盘文件磁带10.差异备份日志备份完全数据库备份三、简答题1.sp_revokelogin 可禁止指定的Windows NT/2000 用户通过其 Windows 用户帐号进行连接。