SQL Server 2016数据库应用与开发习题解答与上机指导(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-21 15:27:06

点击下载

作者:姜桂洪

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

SQL Server 2016数据库应用与开发习题解答与上机指导

SQL Server 2016数据库应用与开发习题解答与上机指导试读:

前言

本书是《SQL Server 2016数据库应用与开发》(姜桂洪主编,2018年由清华大学出版社出版)的配套辅导教材。书中采用目前实际生产和教学领域内应用广泛的SQL Server数据库管理系统,利用内容丰富的习题及答案、涵盖SQL Server 2016所有重要组件的实验基本操作、典型的模拟试题等形式,从多视角为初学者提供了在Windows系列平台上学习和开发大型数据库的服务空间。

本书从基本操作着手,从教学实际需求出发,结合初学者的认知规律,由浅入深、精心选择SQL Server 2016数据库管理与开发过程中的知识点,以数据库及相关数据库对象为基础,以备份、还原、复制和监视等数据库系统管理组件为目标,以形式多样、内容丰富的习题和参考答案对基本操作进行示范,与主教材及微课视频一起打造出比较完整的立体化教材的课程体系。

本书在模块内容安排上体现循序渐进、重点突出的特点。习题解答部分主要帮助学生掌握数据库和Transact-SQL语句的基本规则和基本操作。实验部分主要帮助学生进一步强化基本单元操作,培养学生独立学习的能力。模拟题可以让学生在掌握好所学知识的基础上,进一步了解自己学习本课程的知识水平。通过本书提供的指导材料,学生可以在自由上机的环境下,完成相关数据库和Transact-SQL语句的常用操作和管理。

全书总共包括如下4部分内容:

第1部分包括第1~15章,内容为主教材的习题参考答案,所有编程代码均通过调试。

第2部分包括第16和第17章,内容为SQL Server 2016系统的安装、配置和常用实践环境操作的详细介绍。

第3部分为第18章,介绍学生上机实验时需要注意的问题,并根据教材内容提供16个配套实验。实验操作步骤清晰、可操作性强且具代表性。

第4部分提供6套模拟试题及参考答案,为读者学习SQL Server 2016数据库提供自我检查知识掌握水平的契机,旨在帮助读者了解和检验自己的学习情况。

本书由姜桂洪任主编,孙福振和张冬梅编著,全书由姜桂洪统稿。在本书的编写过程中,苏晶、王德亮、吕兵等教师也给予了很多帮助,在此一并致谢。

由于编者水平有限,对书中存在的不妥之处,恳请读者批评指正。编 者2018年9月目 录前言第1部分 SQL Ser ver 2016数据库应用于开发习题参考答案

第1章 数据库系统概述

第2章 SQL Server 2016的运行环境

第3章 创建与管理数据库

第4章 表和数据完整性

第5章 Transact-SQL语言基础

第6章 数据检索

第7章 Transact-SQL语句的高级应用

第8章 索引和视图

第9章 存储过程与触发器

第10章 事务和锁

第11章 SQL Server 2016的安全管理

第12章 备份和恢复

第13章 系统自动化任务管理

第14章 复制与性能监视

第15章 SQL Server数据库应用系统开发第2部分 SQL Server 2016的常用实践环境与上机指导

第16章 安装和配置SQL Server 201616.1 准备安装SQL Server 201616.1.1 安装前必须清楚的几个问题16.1.2 安装SQL Server 2016必须注意的若干事项16.1.3 安装过程中的常见问题16.2 安装过程16.2.1 默认实例的安装16.2.2 命名实例的安装16.3 配置服务器选项16.3.1 网络连接方式的选择与配置16.3.2 配置SQL Server 2016服务器的性能参数16.3.3 配置远程服务器

第17章 SQL Server 2016环境下的上机指导17.1 SQL Server 2016的管理平台的使用17.2 SQL Server 2016菜单的使用17.2.1 常用菜单功能17.2.2 自定义菜单栏17.3 SQL Server 2016工具栏的使用17.3.1 常用工具栏的显示17.3.2 创建新的工具栏17.3.3 修改工具栏17.4 在查询设计器中调试程序的基本操作17.4.1 查询设计器窗口的使用17.4.2 在编辑器中设置查询17.4.3 调试SQL程序的方法17.5 SQL Server 2016的常见错误与处理17.5.1 Transact-SQL脚本错误处理功能17.5.2 查看SQL Server 2016数据库服务器中的错误事件17.5.3 常见错误和错误级别第3部分 SQL Server 2016数据库实验

第18章 实验指导与实验内容18.1 SQL Server 2016的实验指导18.2 实验内容实验1 认识SQL Server 2016的运行环境实验2 数据库的创建与管理实验3 表的创建与管理实验4 数据完整性与数据传输实验5 Transact-SQL语句基础实验6 利用控制流语句编程实验7 数据检索实验8 Transact-SQL语句的高级应用实验9 索引和视图实验10 存储过程和触发器实验11 事务和锁实验12 SQL Server 2016的安全管理实验13 备份和恢复实验14 系统自动化任务管理实验15 复制与性能监视实验16 综合练习第4部分 模拟试题及参考答案

SQL Server数据库模拟试题1

SQL Server数据库模拟试题1参考答案

SQL Server数据库模拟试题2

SQL Server数据库模拟试题2参考答案

SQL Server数据库模拟试题3

SQL Server数据库模拟试题3参考答案

SQL Server数据库模拟试题4

SQL Server数据库模拟试题4参考答案

SQL Server数据库模拟试题5

SQL Server数据库模拟试题5参考答案

SQL Server数据库模拟试题6

SQL Server数据库模拟试题6参考答案第1部分SQL Ser ver 2016数据库应用于开发习题参考答案学习导读:

本部分包括《SQL Server 2016数据库应用与开发》第1~ 15章所有习题的参考答案,所有代码均在SQL Server 2016版本的环境下测试通过。

每章习题包括选择题、思考题和上机练习题三种类型:(1)选择填空题注重基本概念和基本操作的知识点掌握。(2)思考题侧重基本概念的理解。(3)上机练习题侧重的是基本操作的练习。

建议在学习过程中,通过习题熟悉SQL Server数据库的基本概念和基本操作。不要满足看懂程序或习题答案,要多动手做练习,并且要达到一定的做题速度和正确率。在此基础上,借助于网络或其他工具,举一反三,解决一些比教材习题更新颖、算法更复杂的问题。第1章 数据库系统概述

1.选择题(1)数据模型的三要素不包括________。A.数据结构B.数据操作C.数据类型D.完整性约束(2)关系运算不包括________。A.连接B.投影C.选择D.查询(3)主课本表1-1所示学生信息表中的主键为________。A.studentnoB.sexC.birthdateD.sname(4)下面的数据库产品中不是关系数据库的是________。A.OracleB.SQL ServerC.DBTGD.DB2(5)E-R概念模型中,信息的三种概念单元不包括________。A.实体型B.实体值C.实体属性D.实体间联系

答案:BDACB

2.简答题(1)什么是数据库、数据库系统和数据库管理系统?并且举出日常生活中一些数据库的实际范例。【答】数据库(Databas, DB)是长期存储在计算机内、有组织、可共享的大量数据的集合。

数据库管理系统(Database Management System, DBMS)位于用户和操作系统之间,是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性,是数据库系统的核心。

数据库系统(Database System, DBS)通常由硬件、软件、数据库和用户组成,管理的对象是数据。其中软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。

日常生活中,像学生成绩管理、网上购物、银行存取款、购买火车票等,其软件的后台都是由数据库作为支撑。(2)说明数据库管理系统的基本系统架构拥有哪4大模块。【答】数据库管理系统的基本系统包括如下4大模块。

①存储管理(Storage Manager)。数据库管理系统通常会自行配置磁盘空间,将数据存入存储装置的数据库。

②查询处理(Query Processor)。负责处理用户下达的查询语言命令语句,可以再细分成多个模块负责检查语法、优化查询命令的处理程序。

③事务管理(Transaction Manager)。事务管理主要分为:同名的事务管理子系统,负责处理数据库的事务,保障数据库商业事务的操作;锁定管理(Lock Manager),也称为并发控制管理(Concurrency-Control Manager)子系统,负责资源锁定。

④恢复管理(Recovery Manager)。恢复管理主要是日志管理(Log Manager)子系统,负责记录数据库的所有操作,包含事务日志,以便同名的恢复管理子系统能够执行恢复处理,恢复数据库系统存储的数据到指定的时间点。(3)简单说明数据库系统的组件。【答】数据库系统主要包括如下组件。

①用户(Users)。用户执行DDL语言定义数据库架构,使用DML语言新增、删除、更新和查询数据库的数据,通过操作系统访问数据库的数据。

②数据(Data)。数据库系统中的数据种类包括永久性数据(Persistent Data)、索引数据(Indexes)、数据字典(Data Dictionary)和事务日志(Transaction Log)等。

③软件(Software)。在数据库环境中使用的软件,包括数据库管理系统(DBMS)、应用程序(Application Program)和开发工具(Development Tools)。

④硬件(Hardware)。安装数据库相关软件的硬件设备,包含主机(CPU、内存和网卡等)、磁盘驱动器、磁盘阵列、光盘驱动器、磁带机和备份装置。(4)举例说明三种关系运算的特点。【答】①选择关系用于查找符合条件的行,从而形成新关系。新关系和原来关系结构一致,记录行变少。例如,在学生表中查询年龄18岁以上的学生记录。

②投影关系是从一个表中找出若干字段形成一个新关系的操作,新关系与原来关系的记录行应该一样多,但其数据列变少。例如,在学生表中输出学生的学号、姓名和出生日期。

③连接关系是从两个表中选择满足条件的记录,且新关系中包含原来多个关系的列,新关系结构中的列类型由原来关系中的列映射而来。例如,查询学生的学号、姓名和期末成绩。第2章 SQL Server 2016的运行环境

1.选择题(1)SQL Server 2016系统的示例数据库可以有________。A.1个B.3个C.多个D.无数个(2)下面系统数据库中,________数据库不允许进行备份操作。A.masterB.msdbC.modelD.tempdb(3)下列关于SQL Server 2016实例的说法中,正确的是________。A.不同版本的默认实例数可能不一样多B.不同版本的命名实例数一定一样多C.不同版本的默认实例只有一个,命名实例数不一样多D.不同版本的命名实例只有一个,默认实例数不一样多(4)下列________数据库是SQL Server 2016在创建数据库时可以使用的模板。A.masterB.msdbC.modelD.resourc(5)默认情况下,SQL Server 2016的系统数据库有个________。A.1B.5C.4D.6

答案:CDCCB

2.思考题(1)什么是SQL Server 2016实例?其主要功能有哪些?【答】SQL Server 2016的实例(Instance)实际上就是虚拟的SQL Server服务器。每个实例都包括一组私有的程序和数据文件,同时也可以和其他实例共用一组共享程序或文件。

在数据库实例中,可以创建数据库及其对象,实现安全性,复制服务器对象,管理SQL Server代理等。数据库引擎是服务器的核心部件,SQL Server Management Studio是SQL Server 2016最重要的管理工具,用于访问、配置和管理SQL Server 2016的组件。(2)简述SQL Server 2016的服务器与客户端的关系。【答】在使用SQL Server 2016软件过程中,客户端(Client)通常是指一些适合家庭、实验室、办公环境下使用的安装了一些享用网络服务的PC,这些PC上网的目的是享受各种网络服务。

服务器(Server)是指具有适应大容量的数据存储和频繁的客户端的访问操作的计算机,这类计算机一般配置大容量硬盘、24小时不间断的UPS电源、具备可热插拔功能、安装服务器操作系统下的IIS软件等,能够在计算机网络中提供各种网络服务。

客户端通过网络将要求传递给服务器,服务器按照客户端的要求返回结果。(3)SQL Server 2016 Management Studio集成环境有哪些主要功能?【答】在SQL Server 2016的系统中,SQL Server Management Studio是最重要的管理工具,也是SQL Server 2016的可视化集成环境,用于访问、配置和管理SQL Server 2016的组件。

通过SQL Server Management Studio图形界面,数据库管理员可以调用其他管理工具来完成日常管理操作。并与Visual Studio开发平台集成在一起,形成了一个集数据库的管理与应用开发风格一致的界面环境,用于完成SQL Server 2016的最基本操作。(4)简述SQL Server 2016的主要服务项目的功能。【答】SQL Server 2016的主要服务项目的功能简述如下。

①集成服务(Integration Services, IS)。集成服务几乎可以在任何类型的数据源之间移动数据,它是SQL Server的数据提取—转换—加载(ETL)工具。

②分析服务(Analysis Services)。分析服务的主要作用是通过服务器和客户端技术的组合提供联机分析处理(Online Analytical Processing, OLAP)和数据挖掘功能。

③报表服务(Reporting Services, RS)。SQL Server 2005报表服务的主要功能:最新而便捷的Dundas控件、最新的Tablix控件、重写的内存管理系统,以及直接通过HTTP.sys访问等。

④SQL Server代理(Agent)。SQL Server代理是一个可选进程,运行时执行SQL作业并处理其他自动任务。系统启动时可以配置为自动运行,或可以从SQL Server配置管理器或Management Studio的Object Explorer(对象资源管理器)中启动。

⑤复制服务。数据库复制可用于数据分发或移动数据处理应用程序、系统高可用性、企业报表解决方案的后备数据可伸缩并发性、与异构系统(包括已有的Oracle数据库)的集成等。

⑥全文搜索。SQL Server包含对数据表中基于纯字符的数据具有进行全文搜索的功能。全文搜索可以包括字词和短语,或者一个字词或短语的多种形式。

⑦主数据服务。主数据服务是建立在以SQL Server数据库技术作为后端处理之上,使用Windows通信基础技术,提供了面向服务架构终端的方案。这是一个包括复制服务、服务代理、通知服务和全文检索等功能组件共同构成完整的服务架构。

⑧服务中介。该功能可以帮助开发人员生成可伸缩的、安全的数据库应用程序,提供一个基于消息的通信平台,使独立的应用程序组件可以作为一个整体来运行。Service Broker提供了生成分布式应用程序所需的大部分基础结构,从而减少了应用程序的开发时间。

⑨开发工具。SQL Server为数据库引擎、数据抽取、转换和装载、数据挖掘、OLAP和报表提供了和Microsoft Visual Studio相集成的开发工具,以实现端到端的应用程序开发能力。SQL Server中每个主要的子系统都有自己的对象模型和应用程序接口(API),能够将数据系统扩展到任何独特的商业环境中。(5)简述系统数据库master、msdb、model及tempdb的功能。【答】SQL Server 2016的系统数据库主要功能介绍如下。

①master数据库是SQL Server系统最重要的数据库,它记录了SQL Server系统的所有系统信息。master数据库还记录了所有其他数据库的存在、数据库文件的位置以及SQL Server的初始化信息。

②model数据库用于在SQL Server实例上创建所有数据库的模板。

③msdb数据库是代理服务数据库,为其报警、任务调度和记录操作员的操作提供存储空间。

④tempdb数据库是一个为所有的临时表、临时存储过程及其他临时操作提供存储空间的临时数据库。SQL Server每次启动时,tempdb数据库被重新建立。当用户与SQL Server断开连接时,其临时表和存储过程自动被删除。

tempdb数据库由整个系统的所有数据库使用,不管用户使用哪个数据库,所建立的所有临时表和存储过程都存储在tempdb上。

3.上机练习题(1)练习启动、暂停和停止SQL Server 2016服务管理器的基本步骤。【答】启动、暂停和停止SQL Server 2016服务管理器的方式有三种:使用SQL Server配置管理器、使用SQL Server Management Studio配置服务器、使用SQL Server服务。下面重点介绍利用SQL Server Management Studio进行启动、暂停和停止SQL Server 2016服务管理器的基本步骤。具体步骤如下:

①启动SQL Server Management Studio,连接SQL Server服务器。

②选择菜单栏中的“视图”→“已注册服务器”命令,在弹出的“已注册服务器”窗口中右击一个SQL Server 2016服务管理器。

③在弹出的快捷菜单中分别选择“启动”“停止”“暂停”“重新启动”命令,即可实现上述操作。(2)练习注册服务器的主要步骤。【答】在安装SQL Server Management Studio之后首次启动它时,系统将自动注册SQL Server的本地实例,用户也可以使用SQL Server Management Studio自己注册服务器。用户自己注册服务器的主要参考步骤如下:

①在SQL Server Management Studio界面的工具栏中选择“已注册的服务器”命令按钮,在窗体左侧出现“已注册的服务器”窗口,右击“数据库引擎”。

②在弹出的快捷菜单中选择“新建”→“服务器注册”命令。

③在弹出的“新建服务器注册”对话框中指定下列选项:服务器的类型、服务器名称、登录到服务器的身份验证方式、用户名和密码等描述信息。

④为正在注册的服务器选择连接属性。即在“连接属性”选项卡中可以指定下列连接选项:默认情况下连接的数据库、使用的网络协议、默认网络数据包大小,以及连接超时、执行超时、加密连接信息等。

⑤单击“保存”按钮。(3)练习模板资源管理器的使用方法和脚本的使用方法。【答】模板资源管理器主要用于查看和调用模板等操作。模板的真正作用在于它能为必须频繁创建的复杂脚本创建自定义模板。这些模板是包含必要表达式的基本结构的文件,以便在数据库中新建对象。

①通过选择菜单栏中的“视图”→“模板资源管理器”命令,打开“模板资源管理器”窗口。

②若要查看不同类型服务的语法模板,可以通过“模板资源管理器”窗口最上方的工具行切换三种不同的语法模板:SQL Server模板、Analysis Services模板和SQL Mobile模板,如图2-1所示。若双击模板中的选项,可以在查询设计器中观察到该项模板的代码,如给表添加列。图2-1 利用模板资源管理器修改表

③如果不熟悉如何通过相关语言完成某项任务,可以查找预先提供的模板,通过修改部分内容来完成任务。

④利用模板创建数据库、数据表、视图、索引、存储过程、触发器、统计数据和函数等数据库对象。还有一些模板可创建连接服务器、登录、角色、用户等。第3章 创建与管理数据库

1.选择题(1)创建SQL Server 2016的用户数据库时,最多不能超过________个。A.100B.40 000C.20D.30 000(2)SQL Server 2016数据库文件有三类,其中主数据文件的扩展名为________。A.ndfB.ldfC.mdfD.idf(3)SQL Server 2016的每个数据文件的基本存储单位的大小是________。A.8KBB.8060BC.64KBD.512B(4)从逻辑角度看,数据库对象不包括________。A.表B.数据库C.视图D.日志文件(5)以下关于数据存储的描述,错误的是________。A.所有数据库都有一个主要数据库文件(.mdf)B.创建数据库时会将model数据库复制到新数据库C.同一行的数据可以随意存储在不同的页上D.一个数据库中每兆字节的空间能存储128页

说明:同一行的数据一般存储在一个页面上,特殊情况下可以存储在不同页面上,但不是随意的。

答案:BCADC

2.思考题(1)简述SQL Server 2016中文件组的作用和分类。【答】SQL Server 2016中文件组的作用主要包括如下几个方面。

①对于大型数据库,如果硬件设置上需要多个磁盘驱动器,就可以把特定的对象或文件分配到不同的磁盘上,将数据库文件组织成用户文件组。

②文件组可以帮助数据库管理人员执行相应的数据布局,以及某些管理任务,如将数据文件集合起来,以便于管理、数据分配和放置。

③利用文件组可以在特定的文件中定位特定的对象,从而将频繁查询和频繁修改的文件分离出来,以提高磁盘驱动器的效率,减少磁盘驱动器的争用。

④为便于分配和管理,可以将数据库对象和文件一起分成文件组。文件组的两种类型如下。● 主文件组。包含主数据文件和任何没有明确分配给其他文件组的其他文件。系统表的所有页均分配在主文件组中。● 用户定义文件组。通过在CREATE DATABASE或ALTER DATABASE语句中使用FILEGROUP关键字指定的任何文件组。(2)简述如何在SQL Server Management Studio中修改数据库的属性。【答】利用SQL Server Management Studio修改数据库的参考步骤如下。

①在对象资源管理器中,用户可以右击所选择的数据库,在弹出的快捷菜单中选择“属性”命令打开“数据库属性”窗口。在“常规”选项卡中显示的是数据库的基本信息,这些信息不能修改。

②选择“文件”选项卡,可以修改数据库的逻辑名称、初始大小、自动增长等属性,也可以根据需要添加数据文件和日志文件,还可以更改数据库的所有者。

单击“添加”按钮可以添加数据文件、日志文件,并分别设置其增长方式和大小。修改内容后,单击“确定”按钮即可。

③在“文件组”选项卡中可以修改现有的文件组,也可以指定数据库的默认文件组、添加新文件组。

④在“选项”选项卡中修改数据库的排序规则。

⑤“数据库属性”窗口还包含权限、镜像、事务日志传送等各种属性,只要需要,就可以选择相应的选项卡来修改。(3)简述如何在SQL Server Management Studio中分离和附加数据库。【答】在SQL Server 2016中,所有用户数据库都可以从服务器的管理中进行分离,以脱离服务器的管理,同时保持数据文件与日志文件的完整性和一致性。而分离出来的数据库可以附加到其他SQL Server服务器上,构成完整的数据库。

①分离用户数据库。在SQL Server Management Studio中右击选择的数据库,从弹出的快捷菜单中选择“任务”→“分离”命令。

在弹出的对话框中设置是否删除连接、是否更新统计信息、是否保留全文目录以及是否就绪等分离参数,单击“确定”按钮即可完成操作。

②附加数据库。在SQL Server Management Studio中右击“对象资源管理器”中的“数据库”,从弹出的快捷菜单中选择“附加”命令。

在弹出的“附加数据库”对话框中单击“添加”按钮,目的是将要附加数据库的主数据文件添加到实例。在弹出的“数据库定位文件”界面中选择要添加的数据库的主数据文件,单击“确定”按钮返回“附加数据库”对话框,再单击“确定”按钮,该数据库就附加到当前的实例中了。(4)简述收缩数据库的作用及在SQL Server Management Studio中收缩数据库的步骤。【答】当系统为数据库分配的磁盘空间过大时可以收缩数据库,以节省存储空间。数据文件和事务日志文件都可以进行收缩。数据库也可设置为按给定的时间间隔自动收缩。该活动在后台进行,不影响数据库内的用户活动。

在SQL Server Management Studio中收缩数据库的参考步骤如下。

①在SQL Server Management Studio中右击选择的数据库,从弹出的快捷菜单中选择“任务”→“收缩”→“数据库”命令。

②在弹出的对话框中设置数据库的当前分配空间,单击“确定”按钮即可完成操作。系统将根据数据库的具体情况对数据库进行收缩。

③若单击“脚本”按钮,系统还能够将收缩操作的脚本显示到查询设计器界面中,例如: DBCC SHRINKDATABASE(N'test01', 45) GO

④若在SQL Server Management Studio中右击相应的数据库,从弹出的快捷菜单中选择“任务”→“收缩”→“文件”命令,在弹出的对话框中设置收缩数据库文件的参数,单击“确定”按钮也可完成收缩数据库操作。(5)说明数据库中事务日志文件与数据文件分别存放的优点。【答】SQL Server 2016数据库中数据文件包含数据和对象,日志文件包含恢复数据库中所有事务所需的信息。

默认情况下,数据和事务日志被放在同一个驱动器上的同一个路径下。这是为处理单磁盘系统而采用的方法。但是,在生产环境中建议将数据和日志文件放在不同的磁盘上。一旦存储数据文件或日志文件的磁盘发生损坏,可以采取相应的措施保护数据。

3.上机练习题(1)使用SQL Server Management Studio创建名为test03的数据库,并设置数据库主文件名为test03_data,大小为10MB;日志文件名为test03_log,大小为2MB。【答】在SQL Server Management Studio中创建数据库test03的步骤如下。

①启动SQL Server Management Studio,在“对象资源管理器”中右击“数据库”选项,在弹出的快捷菜单中选择“新建数据库”命令,打开“新建数据库”窗口。

②在“常规”选项卡中的“数据库名称”文本框中输入数据库名称test03。

③在“文件”选项卡中修改数据库主文件名为test03_data,大小为10MB;日志文件名为test03_log,大小为2MB。

④在“选项”选项卡中设置“排序规则”“恢复模式”等选项。

⑤其他选项通过接受默认值来创建数据库。所有参数设置完毕后,单击“确定”按钮,新的数据库就创建成功了。展开“对象资源管理器”中的数据库项,就可以观察到test03数据库已经创建成功。(2)创建一个名称为student1的数据库,该数据库的主文件逻辑名称为student1_ data,物理文件名为student1.mdf,初始大小为6MB,最大尺寸为无限大,增长速度为15%;数据库的日志文件逻辑名称为student1_log,物理文件名为student1.ldf,初始大小为3MB,最大尺寸为30MB,增长速度为2MB;要求数据库文件和日志文件的物理文件都存放在D:\ DATA文件夹下。【答】创建数据库student1的参考步骤如下。

①在D盘创建一个新的文件夹,名称是DATA。

②在SQL Server Management Studio中新建一个查询设计器的页面。

③输入以下程序段并执行此查询: create database student1 on primary (NAME = student1_data, FILENAME = 'D:\DATA\student1.mdf', size = 6, MAXSIZE = unlimited, filegrowth = 15%) log on (NAME = student1_log, FILENAME = 'D:\DATA\student1.ldf', size = 3, maxsize = 30, filegrowth = 2)(3)创建一个指定多个数据文件和日志文件的数据库。该数据库名称为students,有一个5MB和一个10MB的数据文件和两个5MB的事务日志文件。数据文件逻辑名称为students1和students2,物理文件名为students1.mdf和students2.ndf。主文件是students1,由PRIMARY指定,两个数据文件的最大容量均为75MB,增长速度均为10%。事务日志文件的逻辑名为studentslog1和studentslog2,物理文件名为studentslog1.ldf和studentslog2.ldf,最大尺寸均为30MB,文件增长速度均为1MB。要求数据库文件和日志文件的物理文件都存放在D:\DATA文件夹下。【答】实现的步骤如下。

①在D盘创建一个新的文件夹,名称是DATA。

②在SQL Server Management Studio中新建一个查询设计器的页面。

③输入以下程序段并执行此查询: create database students on primary (name = students1, filename = 'D:\DATA\students1.mdf', size = 5, maxsize = 75, filegrowth = 10%), (name= students12, filename = 'D:\DATA\students2.ndf', size = 10, maxsize = 75, filegrowth = 10%) log on (name = studentslog1, filename = 'D:\DATA\studentslog1.ldf', size = 5, maxsize = 30, filegrowth = 1), (name = studentslog2, filename = 'D:\DATA\studentslog2.ldf', size = 5, maxsize = 30, filegrowth = 1)(4)删除已创建的数据库students。【答】实现的步骤如下。

①在SQL Server Management Studio中新建一个查询设计器的页面。

②输入以下程序段并执行此查询: drop database students

说明:当有别的用户正在使用此数据库时,则不能进行删除操作。(5)将已存在的数据库student1重命名为student_BACK。【答】实现的步骤如下。

①在SQL Server Management Studio中新建一个查询页面。

②输入以下程序段并执行此查询: sp_renamedb'student1','student_BACK'第4章 表和数据完整性

1.选择题(1)SQL Server 2016的约束机制中不包括________。A.checkB.not nullC.uniqueD.rule(2)下列________方法可以实现引用完整性。A.ruleB.foreign keyC.not nullD.default(3)在Transact-SQL语法中,用于插入和更新数据的命令是________。A.update, insertB.insert, updateC.delete, updateD.create, insert(4)下列________对象不可以在检查约束中使用。A.系统函数B.foreign keyC.not nullD.用户定义的函数(UDF)(5)实现域完整性的机制通常不包括________。A.存储过程B.checkC.foreign keyD.数据类型

答案:DBBBA

2.思考题(1)简述在创建表结构时常用数据类型的主要作用。【答】在创建表结构时,常用的6种标准数据类型的主要作用是:

①精确数字数据类型存储精确的整数值或十进制数。

②近似数字数据类型存储浮点数。

③货币数据类型存储精确到4个小数位的货币。

④datetime数据类型存储日期和时间,date数据类型存储日期,time数据类型存储时间。

⑤字符数据类型存储文本值。

⑥二进制数据类型存储二进制流,通常是文件。(2)简述各种约束对表中数据的作用。【答】各种约束对表中数据的作用如下。

①检查约束限制一列的允许值。

②规则实现与检查约束相同的功能,但被实现为不同于一个特定表的对象,因此规则只要创建一次而可以在很多地方使用。

③默认约束在用户没有指定一个值时在一个列中输入一个值。

④唯一约束确保一列或列的组合没有重复值。

⑤主键确保一个表中的每一行可以被指定列或指定列的组合唯一地标识。一个表只能有一个主键,但可以创建多个唯一约束。

⑥外键强制一个列只能取一个被引用的表中存在的值。(3)SQL Server 2016支持的数据完整性有哪几类?各有什么作用?【答】数据完整性可以根据其作用的数据库对象和范围不同分为4类。具体包括:

①域完整性。要求列的数值具有正确的类型、格式和有效值范围,并确定是否允许有空值。通常使用有效性检查强制域完整性,也可以通过限定列中允许的数据类型、格式或有效值范围来强制数据完整性。

②实体完整性。要求表中的每一行具有唯一的标识。在数据库中,如student表中的列studentno被设为主键,则会保证每个学生只有一个学号,而且是唯一的。

③引用完整性。指两个表的主键与外键之间定义的数据完整性,将确保主键和外键的关系。引用完整性可以保证两个引用表间数据的一致性。

④用户定义完整性。用户可以根据其应用环境的不同,对数据库设置一些特殊的约束条件,反映某一具体应用所涉及的数据必须满足的语句要求。用户定义完整性的实现机制有规则、触发器和存储过程及创建数据表时的所有约束。(4)简述在SQL Server Management Studio中创建含有主键的表的步骤。【答】在SQL Server Management Studio中创建含有主键的表的参考步骤如下。

①在“对象资源管理器”中展开要新建表的数据库。

②右击“表”节点,在弹出的快捷菜单中选择“新建表”命令。

③在弹出的“表设计器”窗口中依次输入列名、数据类型及允许空否等选项。以此类推,设置其他列的参数项。

④右击要创建主键列,在弹出的快捷菜单中选择“设置主键”命令,或者使用“设置主键”按钮来设置主键。

⑤设置完毕后单击“保存”按钮,在弹出的对话框中输入表名后单击“确定”按钮即可。(5)简述在SQL Server Management Studio中修改表数据的步骤。【答】在SQL Server Management Studio中修改表数据的参考步骤如下。

①在“对象资源管理器”中展开“数据库”→“表”,选择要修改数据的表。

②右击该表,在弹出的快捷菜单中选择“打开表”命令,然后在窗体中直接修改表的数据即可。

③还可以通过三种Transact-SQL语句insert、update和delete在查询设计器中进行数据的添加、更新和删除操作。

3.上机练习题(1)在test01数据库中使用Transact-SQL语句创建表book和表author,结构如下: book(book_id nchar(6),book_name nchar(30), price numeric(10,2)) author(author_name nchar(4), book_id nchar(6), address nchar(30))

设置book中的book_id为主键,author表中的book_id为外键,并设置两个表的关系。【答】①创建表book的Transact-SQL语句: USE test01 GO CREATE TABLE book ( book_id nchar(6)NOT NULL, book_name nchar(30)NULL, price numeric(10,2)NULL, CONSTRAINT PK_book PRIM ARY KEY CLUSTERED (book_id ASC ) )ON [PRIM ARY]

②创建表author的Transact-SQL语句: CREATE TABLE dbo.author( anthor_name nchar(4)NOT NULL, book_id nchar(6)NOT NULL, address nchar(30)NOT NULL )ON[PRIM ARY]

③设置book中的book_id为主键,author表中的book_id为外键: ALTER TABLE dbo.author WITH CHECK ADD CONSTRAINT FK_book_author FOREIGN KEY(book_id) REFERENCES dbo.book(book_id)

④创建两个表的外键关系的步骤如下:

在author表的设计器界面右击book_id列,在弹出的快捷菜单中选择“关系”命令,弹出如图4-1所示的“外键关系”对话框。图4-1 “外键关系”对话框

单击“表和列规范”右边的…按钮,弹出如图4-2所示的“表和列”对话框,设置主键表和外键表及book_id列,单击“确定”按钮。图4-2 “表和列”对话框

在返回的“外键关系”对话框中单击“关闭”按钮,两个表的关系设置完成。(2)在test01数据库中利用Transact-SQL语句创建一个图书销售表booksales,结构如下:booksales(book_id nchar(6),sellnum int, selldate datetime)。分别利用insert、delete、update语句添加、删除和更新数据。【答】

①利用Transact-SQL语句创建表booksales的代码: USE test01 GO CREATE TABLE booksales( book_id nchar(6) NOT NULL, sellnum int NOT NULL, selldate date NOT NULL ) ON [PRIM ARY]

②利用insert语句为表booksales添加数据: INSERT INTO booksales VALUES('m00011',7,7/8/2016) INSERT INTO booksales(book_id,sellnum,selldate)VALUES('m00017',3,10/8/2016)

③利用update语句为表booksales更新数据: UPDATE booksales SET sellnum=11 WHERE book_id='m00011'

④利用delete语句删除表booksales的数据: DELETE FROM booksales WHERE book_id='m00011'(3)利用Transact-SQL语句为表booksales中的销售数量列sellnum创建规则sellnum>=0,并绑定规则到列sellnum。【答】为表booksales创建和绑定规则sellnum_rule的代码如下。 USE test01 GO CREATE RULE sellnum_rule AS @sellnum < = 0 EXEC sp_bindrule'sellnum_rule','booksales.sellnum'(4)利用Transact-SQL语句先删除表booksales中销售时间在2015年以前的记录,再删除全部记录,然后删除该表。【答】利用Transact-SQL语句删除表booksales数据的代码如下。 DELETE FROM booksales WHERE selldate < 1/1/2015 --删除所有数据 Truncate Table booksales(5)练习如何利用导出向导将表book转换成Excel表。【答】首先向book表中输入若干行数据,如图4-3所示。然后利用导出向导将数据库表book转换成Excel表。图4-3 book表记录

具体参考步骤如下:

①启动导入向导。在资源管理器中右击数据库test01,在弹出的快捷菜单中选择“任务”→“导出数据”命令,如图4-4所示。然后弹出“SQL Server导入和导出向导”初始界面,如图4-5所示。

②选择数据源类型。单击“下一步”按钮,在“选择数据源”页面中的“数据源”下拉列表框中选择导出的数据源类型SQL Native Client,如图4-6所示。

③选择目标。单击“下一步”按钮,选择目标文件路径和文件名,如Excel表book.xls,如图4-7所示。

④指定复制或查询操作。单击“下一步”按钮,选择“复制一个或多个表或视图的数据”单选按钮,如图4-8所示。单击“下一步”按钮,选择数据库表book作为数据源文件,如图4-9所示。图4-4 选择“导出数据”命令图4-5 “SQL Server导入和导出向导”初始界面图4-6 选择数据源类型图4-7 选择目标图4-8 指定复制或查询图4-9 选择源文件

⑤编辑和预览文件。单击映射列下的“编辑映射”按钮,可以查看数据库表book的结果,如图4-10所示。如果单击“编辑SQL”按钮,还可以使用“Create Table SQL语句”对话框中的默认语句,或按要求进行修改。如果要修改此语句,还必须对表映射进行相关更改。单击“确定”按钮返回图4-9所示界面。图4-10 列映射

若单击“预览”按钮,可以查看Excel表book.xls的生成结果,如图4-11所示。图4-11 预览数据

⑥保存文件。单击“下一步”按钮,进入“保存”对话框,如图4-12所示。选中“立即运行”复选框,将立即运行包。若选中“保存SSIS包”复选框,则保存包以便日后运行(选择SQL Server单选按钮可以将包保存到Microsoft SQL Server msdb数据库,选择“文件系统”单选按钮可以将包保存为扩展名为dtsx的文件)。图4-12 保存并运行文件

⑦完成。单击“下一步”按钮,进入“完成该向导”页面,如图4-13所示。单击“完成”按钮,进入“执行成功”页面,如图4-14所示,表明数据库表book成功导入为一个Excel表book.xls,单击“关闭”按钮。图4-13 完成该向导

⑧查看数据。可以在前面指定的文件夹中查找Excel表book.xls,可以浏览转换的数据。图4-14 执行成功第5章 Transact-SQL语言基础

1.选择题(1)在Transact-SQL语句中,可以匹配0个到多个字符的通配符是________。A.*B.%C.?D.—(2)SQL Server 2016提供的单行注释语句是使用________开始的一行内容。A./*B.——C.{D./(3)在SQL Server 2016中,局部变量前面的字符为________。A.*B.#C.@@D.@(4)若要计算表中数据的平均值,可以使用的函数是________。A.SQRT()B.AVG()C.SQUARE()D.COUNT()(5)语句“SELECT DATENAME(MONTH, getdate())AS'Month Name'”的输出结果为________。A.Month NameB.当前日期C.当前月份D.当前时间

答案:ABDBC

2.思考题(1)Transact-SQL的语言要素有哪些?主要作用是什么?【答】Transact-SQL语言的要素及其主要用途如下。

①标识符。标识符是用于命名表、视图、存储过程等数据库对象以及常量、变量、自定义函数名称。

②常量。表示一个特定数据值的符号,其格式取决于它所表示的值的数据类型。

③变量。一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。用于存储某过程中可以变化的值。

④注释。程序代码中非可执行的文本字符串,增加程序的可读性。

⑤运算符。用来执行算术运算、字符串连接、赋值以及在字段、常量和变量之间进行比较的操作符。

⑥函数。能够返回一个值的程序段。

⑦表达式。指符号和运算符的组合,其计算结果为单个数据值。

⑧Transact-SQL语句的主要功能是创建和管理数据库对象、插入、检索、修改和删除数据,并实现服务器和客户端的操作和管理。(2)如何定义变量?如何给变量赋值?【答】定义变量需要使用DECLARE命令,局部变量定义时要在其名称前加上标志@,定义全局变量时必须以标记符@@开头。

为变量赋值需要使用SET和SELECT命令。SET命令一次只能为一个变量赋值,SELECT命令可以同时为多个变量赋值。(3)流程控制语句包括哪些类型?各自的作用是什么?【答】控制流语句主要包括IF…ELSE选择语句、BEGIN…END语句块、WHILE循环语句和CASE多分支语句。还有批处理的结束语句Go,向客户端返回用户定义消息的PRINT语句,使程序直接跳到指定的标有标识符的位置处继续执行的GOTO语句,用于暂时停止执行SQL语句、语句块或者存储过程等的WAITFOR语句,无条件地终止一个查询、存储过程或者批处理的RETURN语句,以及具有异常处理功能的TRY…CATCH语句等。

Transact-SQL提供的控制流语句主要用于控制程序的顺序、选择和循环流程。(4)简述聚合函数的特点和用途。【答】聚合函数用于对一组值进行计算并返回一个单一的值。除了COUNT函数之外,其他聚合函数忽略空值。聚合函数经常与SELECT语句的GROUP BY子句一同使用。聚合函数的作用是在结果集中通过对被选列值的收集处理,返回一个数值型的计算结果。(5)Transact-SQL语句共分为几类?各自的主要功能是什么?【答】Transact-SQL语言的4种类型及其主要作用如下。

①数据定义语言。数据库对象的创建、修改和删除等都可以通过使用数据定义语言中的CREATE、ALTER、DROP等语句来完成。

②数据操纵语言。用于检索和操作数据的SQL语句的子集。数据操纵语言是指用来查询、添加、修改和删除数据库中数据的语句,这些语句包括SELECT、INSERT、UPDATE、DELETE等命令。

③数据控制语言。用来设置或更改数据库用户或角色权限的语句,包括GRANT、DENY, REVOKE等命令。

④控制流语句。用于控制SQL语句、语句块或者存储过程的执行流程。流程控制语句包括BEGIN…END、IF…ELSE、WHILE、BREAK、GOTO、WAITFOR、RETURN等语句。

3.上机练习题(1)利用Transact-SQL语句声明一个长度为16的nchar型变量bookname,并赋初值为“SQL Server数据库编程”。【答】变量bookname的声明和赋值代码如下。 DECLAER @bookname nchar(16)

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载