




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL Server 练习题一、填空题1.数据库系统的特点分别是 数据的结构化 、 数据共享 、 数据独立性 和 可控冗余度 。2.在数据库的表中, 主键 是指表中的某一列或几列,它的值唯一标识一行。3.SQL Server 2005的文件包括: 数据文件(.mdf或.ndf)和 日志文件 。4.在SQL Server 2005中,要访问某个数据库,除了需要有一个登录帐号外,还必须有一个该数据库的 用户 帐号。5. 数据库管理系统 ,简称DBMS,它是指帮助用户建立、使用和管理数据库的软件系统。6.在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是 ALTER ;若要创建一个数据库,应该使用的语句是 CREATE DATABASE 。5.命令 Truncate Table的功能是 清空数据库 。6.数据完整性是指存储在数据库中的数据的一致性和准确性,根据完整性机制所作用的数据库对象和范围不同,可以分为: 实体完整性 、 域完整性 、 参照(或:引用)完整性 和 用户自定义完整性约束 等四种,其中主键可以实现 实体 完整性。7.模糊查询符号 % 代表 任意字符 ,查询条件 e%im 代表意思是 查询以 e 开头中间任意字符(串)且以im 结尾的字符串 。8.使用索引可以减少检索时间,根据索引的存储结构不同将其分为两类: 簇集索引 和 非簇集索引 。9.SQL Server中的变量分为两种,全局变量和局部变量。其中全局变量的名称以 字符开始,由系统定义和维护;局部变量以 字符开始,由用户自己定义和赋值。10.实现数据完整性的途径有 默认值 、 约束 、 规则 、 存储过程 、 触发器 等。11.访问SQL Server数据库对象时,需要经过身份验证和 权限 验证两个阶段,其中身份验证分为Windows验证模式和 混合 验证模式。12.SQL Server使用 日志 文件记载用户对数据库进行的所有操作。13.sp_help系统存储过程的功能是 显示数据对象的相关属性 。?14.SQL语言中行注释的符号为 - ;块注释的符号为 /* */ 。15.备份是为了在数据库遭到破坏时,能够修复,数据库备份的类型有四种分别为: 数据库备份 、 日志备份 、 差异备份 、 文件和文件组备份 。16.在SQL Server 2005中,其权限分为三类,即 对象 权限、 语句 权限和 隐含 权限。17.用户对数据进行添加、修改和删除时,自动执行的存储过程称为 触发器 。18.对数据进行统计时,求最大值的函数是 MAX() 。19.还原是指将数据库备份加载到服务器中的过程,在 SQL Server 中有三种数据库的还原模型,分别是 简单还原 、 完全还原 、 批日志还原 。20.DTS 是指 数据转换服务 。21.在给数据库改名之前,必须设置数据库处于 单用户 状态。22.在一个表中主键的个数为: 1 。23.在SQL Server 2005中,索引的顺序和数据表的物理顺序相同的索引是 聚集索引 。24.角色是一组用户所构成的组,可以分为 服务器角色 和 数据库 角色。25.触发器有3种类型,即INSERT类型、 UPDATE类型 和 DELETE类型 。26.如果要计算表中的行数,可以使用聚合函数 COUNT() 。27.在SQL Server 2005中修改表的结构应使用关键字 ALTER ,修改表中的数据应使用关键字 UPDATE 。28.SQL Server是作为Windows 系统的一个 服务 运行的,用户可以启动、暂停或停止它。29.在SQL Server 2005中,约束定义关于列中允许值的规则,是强制实施完整性的标准机制。使用约束 优先于 使用 DML 触发器、规则。约束有非空约束、缺省约束、 主键约束 、 外键约束 、检查约束和唯一约束等6种类型。30.对象权限是指用户基于数据库对象层次上的访问和操作权限,共有5种:SELECT、INSERT、DELETE、 UPDATE(或:更新)和EXECUTE(或:执行)。31 UNION 可以把两个或多个SELECT语句的查询结果组合成一个结果集,使用时要求所有SELECT语句的列数应 相同 ,对应列的数据类型相容。32 事务 是指一个操作序列,这些操作序列要么都被执行,要么都不被执行。33 差异 备份只记录自上次完整数据库备份后发生更改的数据。34.在SELECT语句的FROM子句中最多可以指定 256 个表或视图,相互之间要用 逗号 分隔;当所查询的表不在当前数据库时,可用 数据库.所有者名称.对象名称 格式来指出表或视图对象。35.删除表命令是: drop table 。36.计算字段的累加和的函数是: Sum() 。37.在SQL Server 2005中,一个批处理语句是以 GO 结束的。38.如果要计算表中数据的平均值,可以使用的聚合函数是 AVG() 。39.在SQL Server 2005中,每个数据表最多有 1024 个列;最多有 1 个簇式索引。40.在一个复合索引中最多可以有 16 个关键字。41.SQL Server使用各数据库的 事务日志 来恢复事务。42.在创建一个表的过程中,如果包含REFERENCES子句,则表示在表中建立 参照 性约束。43.可以通过 INSERT 语句,向表中添加新的纪录或在记录中插入部分字段的数据。44.可以在INSERT子句中指定列名,Values字句中的数据项与指定的列名相对应,没有列出的字段必须具有 允许NULL 、 Timestamp 、 IDENTITY 、 Default四种定义的条件之一。45.T-SQL语言中数据的检索是通过 SELECT 语句及与其他一系列子句配合来完成的。46.在SELECT命令中, GROUP BY 子句可依字段类别总计函数处理查询结果;而将查询结果以某字段或运算值数据排序条件的子句是 ORDER BY 。47.为了简便处理,我们可以为表名赋予别名,以减少代码量。使用别名时 不能 同时使用表名,字段名的格式。48.在UNION操作中,如果不指明 ALL 子句将删除重复行。49.UNION子句可以出现在INSERT、SELECT语句中。但是不能出现在CREATE VIEW 语句内或子查询内。50.当向数据表中插入数据时,如果没有明确的提供输入值时,SQL Server自动为该列输入指定值,则约束的类型为 DEFAULT 。51.通过逻辑表达式判断限制插入到列中的值的强制约束类型为 CHECK 。52.允许主键上有空值,但不允许主键上有重复值的强制类型约束为 UNIQUE。53.DEFAULT约束,只在执行 INSERT 语句时作用。54.在创建DEFAULT约束时,SQL Server将对表中现有的数据进行 完整 性验证。55.CHECK约束在执行 INSERT 语句或 UPDATE语句时起作用。56.在向表中添加强制性约束时,应当在ALTER TABLE 命令中使用 ADD CONSTRAINT子句。57.必须是表的 所有者 ,才能执行CREATE INDEX语句来创建索引。58.视图可以在不同数据库中的不同表上建立,一个视图最多可以引用 1024 个字段。59.视图隐蔽了数据库设计的 复杂 性,这使得开发者可以在不影响用户使用数据库的情况下改变数据库内容。60.建立视图之后,可以简化数据库管理,如可以通过 GRANT 命令为各种用户授予在视图上的操作权限。61.用户可以通过执行系统存储过程 sp_helptext 查看视图的定义信息。62.视图的修改和数据库中表的修改一样,视图的修改也是由 ALTER 语句来完成的;视图的删除也与表的删除类似,可以通过 DROP 语句来实现。63.存储过程在第一次执行时进行语法检查和 编译 。64.不能将CREATE PROCEDURE语句与其他SQL语句组合到单个批处理中,每一个批处理就是一个 GO 语句段。65.存储过程只能在 当前 数据库中创建。66.为了定义接受输入参数的存储过程,需要在CREATE PROCEDURE 语句中生命一个或多个 变量 作为参数。67.创建存储过程时,参数的默认值必须是 常量 或NULL 。68.在存储过程中,为了输出参数,需要在 CREATE PROCEDURE 语句中指定 OUTPUT 关键字。69.可以通过Create Trigger 语句来创建触发器。70.在触发器被执行的同时,取消触发器的 SQL 语句的操作,需要使用 INSTEAD OF 关键字实现。71.CHECK约束只能根据逻辑表达式或同一表中的另外一列来验证列值。如果应用程序要求根据另一个表中的列验证列值,则必须使用 触发器 。72.SQL Server用 DECLARE 语句声明变量。73.使用T-SQL语句创建 SQL Server账号,需要用到系统存储过程 sp_addlogin 。74.与权限管理相关的T-SQL语句有三个: GRANT 、 REVOKE 和 DENY 。75.使用 BACKUP DATABASE 命令可以对数据库进行完全拷贝的备份。76.使用 RESTORE DATABASE 命令可以对数据库进行还原。二、简答题1、简述视图的概念和优点?(1)概念:视图是从一个或多个表(或视图)导出的虚表,是根据用户观点所定义的数据库结构。视图与表不同,它所对应的数据不进行实际存储,在数据库中只存储视图的定义(一组符合用户需求的SQL SELECT 语句)。(2)优点:1)为用户集中数据,简化用户的数据查询和处理;2)屏蔽数据库的复杂性;3)简化用户权限的管理,增加了安全性;4)便于数据共享;5)为数据库重构提供一定的逻辑独立性。2、列出SQL Server 2005中常见的数据库对象。数据库对象主要包括表、视图、索引、存储过程、触发器和约束等。3、什么是索引?索引分为哪两种? (1)索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标志这些值的数据页的逻辑指针清单。索引是依赖于表建立的,它提供了数据库中编排表中数据的内部方法。一个表的存储是由两部分组成的,一部分是用来存放表的数据页面,另一部分存放索引页面。从某种程度上,可以把数据库看作一本书,把索引看作书的目录,通过目录查找书中的信息,显然较没有目录的书方便、快捷。(2)聚集索引和非聚集索引。4、创建索引有什么优点和缺点?(1)优点:索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。另一方面,通过创建唯一性索引,可以保证每一行数据的唯一性。(2)缺点:索引需要占用数据表以外的物理存储空间。创建索引和维护索引要花费一定的时间。当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。5、修改视图中的数据会受到哪些限制?(1)必须有权限;(2)单表视图可直接修改;(3)多表可在视图中定义 instead of 触发器;(4)对由多表连接成的视图修改数据时,不能同时影响一个以上的基表,也不能删除视图中的数据;(5)对视图上的某些列不能修改,这些列是:计算列、内置函数列和行集合函数列;(6)对具有NOT NULL的列进行修改时可能会出错;通过视图修改或者插入数据时,必须保证未显示的具有NOT NULL属性的列有值,可以是默认值、IDENTITY 等,否则不能向视图中插入数据行;(7)如果某些列因为规则或者约束的限制不能接受从视图插入的数据时,则插入数据可能会失败;(8)删除基表并不删除视图,建议采用与表明显不同的名字命名规则。6、什么是数据完整性?主要作用是什么?数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。主要作用是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息。7、数据完整性有哪几类? 数据完整性分为四类:实体完整性(Entity Integrity)、域完整性(Domain Integrity)、参照完整性(Referential Integrity)、用户定义的完整性(User-definedIntegrity)。8、什么是主键约束?什么是惟一约束?两者有什么区别?(1)主键约束:有一列或列的组合,其值能唯一的标识表中的每一行。(2)唯一约束:不允许数据库表在指定列上具有相同的值,但允许有空值。(3)区别:一个表可以定义多个唯一约束,只能定义一个主键约束;允许空值的列上可以定义唯一约束,不能定义主键约束。9、什么是存储过程?存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,它是数据库中的一个重要对象。用户通过指定存储过程的名字并给出参数(如果带有参数)来执行它。10、什么是触发器?触发器有什么作用?触发器是数据库服务器中发生事件时自动执行的特种存储过程。触发器经常用于加强数据的完整性约束和业务规则等,利用触发器可以方便地保持数据库中数据的完整性。11、简述INSERT触发器的工作原理当向表中插入数据时,INSERT触发器触发执行。当INSERT触发器触发时,新的记录增加到触发器表中和inserted表中。该inserted表是逻辑表,保存了所插入记录的拷贝,允许用户参考INSERT语句中的数据。触发器可以检查inserted表,来确定该触发器的操作是否应该执行和如何执行。在inserted表中的那些记录,总是触发表中一行或多行记录的冗余。12、用户权限的种类有哪些?各自的作用?对象权限、作用:决定用户对数据库对象所执行的操作,包括用户对数据库中的表、视图、列或存储过程等对象的操作权限语句权限、作用:决定用户能否操作数据库和创建数据库对象隐含权限、作用:控制那些只能由预定义系统角色的成员或数据库对象所有者执行的活动。三、程序阅读题1、阅读下面的程序段,然后简述该程序段所完成的功能。Begin Waitfor time 15:43Create View my_view As Select order_date,book_number,book_id From orderformWhere book_number ! 60) 方法2:Select student.Sno, Sname, Ssex From student Inner Join sc Inner Join course On course.Cno = sc.Cno On student.Sno = sc.SnoWhere (course.Ccredit = 5) And (sc.Grade 60)4、If Exists(Select name From sysobjects Where name = my_trig And Type = tr) Drop Trigger my_trigGoCreate Trigger my_trigOn CourseFor DeleteAs Delete From scWhere Sno In (Select Sno From deleted) Go (二)数据库中包括三个表student表(学生表)学号姓名性别年龄系别1李明男20计算机系2张然女19经管系3许晴女18电子系course表(课程表) 课程号课程名学分1SQL Server42VB33专业英语2sc表(选课表)学号课程号成绩11902185227633701、把course表中课程号为2的课程的学分修改为4。2、在student表中查询年龄大于18的学生的所有信息,并按学号降序排列。3、在以上三个表中查询选的课程的“学分”为4,并且成绩大于80的学生的学号、姓名和性别。4、创建一存储过程GetDetailByName,通过输入参数学生姓名(如“张然),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。 1、 Update course Set 学分 = 4 Where课程号 = 2 2、Select * From student Where 年龄 18 Order By 学号 Desc 3、方法1:Select Distinct student.学号, 姓名, 性别From student, course, scWhere (student.学号 = sc.学号) And (course.课程号 = sc.课程号) And (course.学分 = 4) And (sc.成绩 80) 方法2:Select Distinct student.学号, 姓名, 性别From student Inner Join sc Inner Join course On course.课程号 = sc.课程号 On student.学号 = sc.学号Where (course.学分 = 4) And (sc.成绩 80)4、Create Procedure GetDetailByName Name nvarchar(10) AS IF (SELECT Count(*) FROM student WHERE 姓名 = Name) 0 Select * From studentWhere 姓名 = Name ELSE Print 警示:不存在姓名为 + Name + 的学生资料 (三)、查询设计某个学籍数据库有如下表结构:学生(学号,姓名,性别,出生日期,班级)课程(课程号,课程名称,课程类别,课时)选课(学号,课程号,成绩)请完成下列查询要求。1查询出“软件041”班的所有男生的学号和姓名。2查询出课程名称中含有“语言”一词的课程的所有信息。3查询出“C语言”课程成绩前5名的学生的学号、姓名和班级。4查询出各班级学生人数。5查询出“计算机应用基础”课程成绩高于张三同学此门课程成绩的学生的学号和姓名。1SELECT 学号, 姓名FROM学生WHERE班级 = 软件041 AND性别 = 男2SELECT * FROM课程 WHERE课程名称 LIKE %语言%3SELECT TOP 5学生.学号, 姓名, 班级FROM学生 JOIN 选课 ON 学生.学号=选课.学号 JOIN 课程 ON课程.课程号=选课.课程号WHERE课程名称 = C语言 ORDER BY 成绩 DESC4SELECT 班级, COUNT(*) AS 人数 FROM 学生 GROUP BY班级5SELECT学生.学号, 姓名FROM 学生JOIN 选课 ON 学生.学号=选课.学号 JOIN 课程 ON课程.课程号=选课.课程号WHERE课程名称 = 计算机应用基础 AND 成绩 (SELECT成绩FROM 学生JOIN 选课 ON 学生.学号 = 选课.学号 JOIN 课程 ON课程.课程号 = 选课.课程号WHERE课程名称 = 计算机应用基础 AND姓名 = 张三)五、综合应用题(一)、学生选课系统,主要表有:学生表(学号、姓名、性别、专业、出生年月等),选课表(学号、课程号、分数),课程表(课程号、课程名、所属专业、学分)要求:1、写出SQL语句。1) 查询所有选“SQL课程”的学生学号,姓名和专业。2) 删除所有选择“数学”的同学的选课记录。3) 查询有哪些课程没有被任何同学报选。2、创建存储过程。1)、能够查询出选修任何课程的学生信息及相应的分数。2)、以表格的形式返回本课程的平均分数。3、 在课程表中增加“No_id”字段,数据类型char(12),不可空,并将其设定为UNIQUE约束,写出其命令语句。答:1、1) SELECT 学号,姓名,专业 FROM 学生表 A, 选课表 B, 课程表 CWHERE A.学号=B.学号 AND B.课程号=C.课程号 AND C.课程名 = SQL或SELECT 学号, 姓名,专业 FROM 学生表WHERE 学号 IN( SELECT 学号 FROM 选课表 WHERE 课程号 = (SELECT 课程号 FROM 课程表 WHERE 课程名=SQL课程)2) DELETE FROM 选课表WHERE 课程号 IN(SELECT 课程号 FROM 课程表 WHERE 课程名=数学)3) SELECT * FROM 课程表WHERE 课程号 NOT IN (SELECT DISTINCT课程号 FROM 选课表)2、(1)CREATE PROCEDURE xc_info kname char(16) AS SELECT a.*, b.分数 FROM 学生表 a INNER JOIN 选课表 bON a.学号 = b.学号WHERE b.课程号 = (SELECT 课程号 FROM 课程表WHERE 课程名=kname)(2)CREATE PROCEDURE xca_info kname char(16) AS SELECT Avg(分数) FROM选课表 WHERE课程号 = (SELECT 课程号 FROM 课程表 WHERE课程名=kname)GROUP BY课程号3、ALTER TABLE 课程表 ADD No_id CHAR(12) NOT NULL CONSTRAINT table_unique UNIQUE(二)、根据下面某教学管理数据库的表结构,完成下面的程序填空题。教师(职工号,姓名,学历,职称)课程(课程号,课程名称,课程类别)任课(职工号,课程号,周课时)1补填下面的存储过程的定义,使其被调用时,能根据调用程序提供的教师姓名使用输出参数返回该教师任课的课程数。CREATE PROCEDURE 按教师姓名查询任课课程数姓名 VARCHAR(10), 课程数 INT _ASSELECT _FROM 教师 JOIN 任课 ON 教师.职工号 = 任课.职工号WHERE _2完成下面的触发器的定义,当向任课表中插入记录时,触发器能判断若插入的记录使该教师的任课周课时总计超过20,则回滚插入操作。CREATE TRIGGER 添加教学任务ON 任课AFTER INSERTAS DECLARE 总课时 INT SELECT 总课时 = SUM(任课.周课时)FROM 任课 JOIN _IF 总
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年注册会计师招聘面试要点及模拟题解析
- 2025年采购管理专员求职攻略与模拟题集全解
- 电信网络安全知识培训课件
- 2025年热切割技术面试模拟题及答案
- 2025年医疗技术专家中级面试预测题及备考指南
- 2025年美妆行业:谷雨品牌拆解-解数咨询
- 某中小学二年级新学期家长会-动态
- 停顿和重音课件教学
- 田字演变课件
- 24孝图教学课件
- 化工操作工培训课件
- 血透室设备维护与操作规范
- 2025至2030高校后勤行业发展趋势分析与未来投资战略咨询研究报告
- 2025中国电信安全公司春季校园招聘笔试参考题库附带答案详解(10套)
- 通信技术未来发展趋势
- 整形美容外科进修汇报
- 立达RSBD并条机培训资料讲课文档
- 2025年幼儿园膳食工作计划
- 2025车位包销合同
- 心绞痛健康宣教课件
- 奥尔夫音乐教师培训课件
评论
0/150
提交评论