SQL Server 练习题
更新时间:2023-03-18 03:33:01 阅读量: 综合文库 文档下载
- sql server推荐度:
- 相关推荐
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:43? Create View my_view
As Select order_date,book_number,book_id From orderform Where book_number !< 25 End
该程序段的功能是: 。 答:系统在15:43为orderform表中订购数量book_number大于25本的订购信息的order_date、book_number和book_id三个字段创建一个名为my_view的视图。
2、下面程序段的功能是:在 数据库中判断是否存在名为my_proc的存储过程,若存在,则删除之,然后创建同名的存储过程,该存储过程的功能是向book表的book_id、book_name、price和publisher字段插入数据。阅读并回答以下问题:
Use bookdb Go
If Exists(Select name From ①
Where name = ?my_proc? And Type = ? ② ?) Drop Proc my_proc Go
Create Proc my_proc
@a int, @b char(50),@c float,@d publisher ③
Insert Into student(book_id,book_name,price,publisher)
Values(@a,@b,@c,@d)
Go 问题:(1)填写该程序段中空白处的内容:① Sysobjects ② P ③ As
(2)任写一条调用该存储过程的语句: 。 答:(1)① Sysobjects ② P ③ As
(2) Exec my_proc 7, ‘SQL Server 2000教程’,38,‘北京科海集团公司’ 或 Exec my_proc @a=7, @b=‘SQL Server 2000教程’,@c=38,@d=‘北京科海集团公司’
四、编程题
(一)、有一个“学生-课程”数据库,数据库中包括三个表: (1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。
(2) “课程”表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,可记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
(3) “学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为: SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。
完成下列操作: 1、请把其中建立 “学生”表Student的语句写下来,其中学号属性不能为空,并且其值是唯一的。 2、在student表中查询Sdept是?计算机?的学生的所有信息,并按Sno降序排列。
3、在以上三个表中查询Ccredit为5并且Grade大于60的学生的学号、姓名和性别。 4、为Course表创建一个名称为my_trig的触发器,当用户成功删除该表中的一条或多条记录时,触发器自动删除SC表中与之有关的记录。(注:在创建触发器之前要判断是否有同名的触发器存在,若存在则删除之。) 1、CREATE TABLE Student
(Sno CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20), Ssex CHAR(1), Sage INT, Sdept CHAR(15)); 2、Select * From student Where Sdept = ?计算机? Order By Sno Desc 3、方法1:
Select student.Sno, Sname, Ssex
From student, course, sc
Where (student.Sno = sc.Sno) And (course.Cno = sc.Cno)
And (course.Ccredit = 5) And (sc.Grade > 60) 方法2:
Select student.Sno, Sname, Ssex
From student Inner Join sc Inner Join course
On course.Cno = sc.Cno On student.Sno = sc.Sno Where (course.Ccredit = 5) And (sc.Grade > 60)
4、If Exists(Select name From sysobjects
Where name = ?my_trig? And Type = ?tr?)
Drop Trigger my_trig
Go
Create Trigger my_trig
On Course For Delete As
Delete From sc
Where Sno In (Select Sno From deleted)
Go
(二)数据库中包括三个表 student表(学生表) 学号 姓名 性别 年龄 系别 1 李明 男 20 计算机系
2 张然 女 19 经管系
3 许晴 女 18 电子系 course表(课程表) 课程号 1 2 课程名 SQL Server VB 学分 4 3 2 3 专业英语 sc表(选课表)
正在阅读:
SQL Server 练习题03-18
北斗溪乡学校防汛安全隐患排查报告09-02
暑期打工社会实践报告03-31
人教版小学数学四年级上册《画平行四边形和梯形的高》08-24
仙人球小学作文06-15
星河时代花园测量方案 - 图文03-17
外研社九年级英语上册必考词组重点内容04-23
人员定位管理系统07-17
人教版八年级物理上册教案:第二章声现象第4节 噪声的危害和控制05-08
植物大战僵尸生存模式无尽版攻略 - 图文03-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 练习题
- Server
- SQL
- 学前儿童绘画心理与教育指导
- 《安塞腰鼓》教案及学案(韩岱均2013010410)
- 模拟集成电路课程设计
- 武隆县人事局
- 磐安精神文明建设委员会办公室文件
- 2018.4.24酒店基层管理人员考试题
- 怎样说板书设计
- 病理学 大题附答案
- MATLAB作业5 作业本
- AVR单片机IIC读写范例IIC.C 或者IIC.H
- 2003年10月自学考试公安学基础理论试题
- 关于防汛准备工作的几点认识
- 湖南大学自测题集
- (删节)多元文化视野下边关要塞古村镇保护模式研究 - 以右玉县右卫镇为例
- 我国地质勘查钻探装备现状与发展
- 《荷叶圆圆》第一课时说课材料
- 考物理一轮复习第五章机械能微专题43“滑块 - 木板”模型中的能量转化问题备考精炼0402370
- 2016届毕业生评优发文
- 金融企业会计选择题
- 关于开展2013年运输会战