项目一创建图书管理数据库

上传人:人*** 文档编号:571259261 上传时间:2024-08-09 格式:PPT 页数:248 大小:3.41MB
返回 下载 相关 举报
项目一创建图书管理数据库_第1页
第1页 / 共248页
项目一创建图书管理数据库_第2页
第2页 / 共248页
项目一创建图书管理数据库_第3页
第3页 / 共248页
项目一创建图书管理数据库_第4页
第4页 / 共248页
项目一创建图书管理数据库_第5页
第5页 / 共248页
点击查看更多>>
资源描述

《项目一创建图书管理数据库》由会员分享,可在线阅读,更多相关《项目一创建图书管理数据库(248页珍藏版)》请在金锄头文库上搜索。

1、SQL_Server数据库项目化教程数据库项目化教程项目目录项目目录创建图书管理数据库一一使用图书管理数据库二二管理图书管理数据库三三开发图书管理数据库四四2项目一项目一创建图书管理数据库创建图书管理数据库任务目录任务目录安装和使用SQL Server20051创建图书管理数据库2创建和维护图书管理数据库表3维护数据完整性4创建和管理索引54安装和使用安装和使用SQL SERVER 2005任务一任务一5能力目标和知识目标能力目标和知识目标能力目标能力目标1能够进行能够进行SQLServer2005的安装;的安装;2能够熟练启动、停止能够熟练启动、停止SQLServer服务;服务;3能够注册服

2、务器;能够注册服务器;4能够初步掌握能够初步掌握SQLServerManagementStudio的使用。的使用。知识目标知识目标1熟悉数据库的基本概念;熟悉数据库的基本概念;2熟悉熟悉SQLServer2005的的系统需求和版本信息;系统需求和版本信息;3熟悉熟悉SQLServer2005的的常用工具。常用工具。6任务导入任务导入v每个图书馆都有许多藏书,如何对这些图书进行有效管理?人工管理方式数据库管理方式美国微软公司的SQL Server 2005是一种性价比较好的数据库管理系统,目前在中小型企业中应用较为广泛。7任务导入任务导入1.安装SQL Server 2005;2.熟悉SQL S

3、erver Management Studio的功能和使用方法;3.在SQL Server 2005中注册服务器;4.启动、停止SQL Server服务8相关知识相关知识一、 Server 2005简介1. SQL Server 2005概述SQL Server 2005是美国微软公司在2005年推出的关系数据库管理系统。SQL Server 2000SQL Server6.5/7.0SQL Server 4.2SQL ServerSQL Server 20059客户机客户机/服务器(服务器(C/S)服务器存储数据库,可以被多台客户机访问数据库应用的处理过程分布在客户机和服务器上使用Trans

4、act-SQL语言在服务器和客户机间传送请求和应答浏览器浏览器/服务器(服务器(B/S)数据库和应用程序均存放在服务器端客户端主要通过浏览器和网络,连接到Web服务器浏览网页,查询和操作数据库SQLServer2005的两种工作的两种工作模式模式一、一、 Server 2005简介简介10一、一、 Server 2005简介简介BusinessIntelligenceDevelopmentStudio办公公Office企企业协同解决方案同解决方案SharePointPortalServer2003第三方第三方应用用ThirdPartyApps数据数据库引擎(引擎(SQLServer)Manag

5、ementTools集成服集成服务(IntegrationServices)分析服分析服务(AnalysisserversOLAPandDataMining)报表服表服务ReportingServices通知服通知服务(NotificationServices)复制服复制服务(ReplicationServices)关系型数据关系型数据库(RelationalDatabase)表表1-1SQLServer2005数据平台的布局数据平台的布局2. SQL Server 2005的组成11一、一、 Server 2005简介简介 数据库引擎(Database Engine) 数据库引擎是用于存储、

6、处理和保护数据的核心服务。SQL Server服务就是SQL Server 2005的数据库引擎,主要完成以下工作:设计并创建数据库以保存系统所需的关系表或XML文档。提供访问和更改数据库中存储数据的途径。包括可实现网站或处理数据的应用程序,实用工具。为单位或客户部署实现的系统。提供日常管理支持以优化数据库的性能。12一、一、 Server 2005简介简介 复制服务(Replication Services)复制是在多个数据库之间和多个数据库对象之间进行数据的复制和分发,并且在复制和分发的过程中保持数据同步和一致性的技术。分析服务(Analysis Services) 分析服务是一种核心服务

7、,可支持对业务数据的快速分析,以及为商业智能应用程序提供联机分析处理(OLAP)和数据挖掘功能。13一、一、 Server 2005简介简介 集成服务(Integration Services) 集成服务是用于生成企业级数据集成和数据转换解决方案的平台,可以支持数据仓库和企业范围内数据集成的抽取、转换和加载功能。使用集成服务可解决复杂的业务问题。 报表服务(Reporting Services) 报表服务是基于服务器的报表平台,提供来自关系和多维数据源的综合数据报表,可创建、管理和发布传统的、可打印的报表和交互的、基于Web的报表。14 通知服务(Notification Services)

8、通知服务是用于开发、生成和发送通知的应用程序的平台,也是运行这些应用程序的引擎。 全文检索 SQL Server 包含对SQL Server数据表中基于纯字符的数据进行全文查询所需的功能。使用全文检索可以快速、灵活地为存储在SQL Server数据库中的文本数据的基于关键字的查询创建索引。一、一、 Server 2005简介简介15 管理工具(Management Tools) SQL Server 包含的集成管理工具可用于高级数据库管理和优化,同时又与其他工具,如Microsoft 操作管理器(MOM)和系统管理服务器(SMS)紧密集成在一起。 开发工具(Business Intellige

9、nce Development Studio) SQL Server 为数据库引擎、数据抽取、转换和装载(ETL)、数据挖掘、OLAP和报表提供了和Microsoft Visual Studio 相集成的开发工具,以实现端到端的应用程序开发能力。一、一、 Server 2005简介简介16二、二、SQL Server 2005的版本和安装要求的版本和安装要求二、SQL Server 2005的版本和安装要求1. SQL Server 2005的版本和组件SQLServer2005共有共有6个版本,个版本,SQLServer2005的不同的不同版本用于满足企业版本用于满足企业和个人的不同需求。和

10、个人的不同需求。17二、二、SQL Server 2005的版本和安装要求的版本和安装要求2. SQL Server 2005的系统需求 硬件要求SQLServer版本版本企业版企业版/开发版开发版/标准版标准版工作组版工作组版简易版简易版处理器类型处理器类型PentiumIII或或更更高高速速兼兼容处理器容处理器Pentium III或或更更高高速速兼容处理器兼容处理器PentiumIII或或更更高高速速兼容处理器兼容处理器处理器速度处理器速度最最低低600MHz建建议议1GHz或更高或更高最最 低低 600MHz建建 议议1GHz或更高或更高最最 低低 600MHz建建 议议1GHz或更高

11、或更高内内存存(RAM)最最小小512MB建建议议1GB或或更大更大最最小小512MB建建议议1GB或更大或更大最最 小小 192MB建建 议议512MB或更大或更大18二、二、SQL Server 2005的版本和安装要求的版本和安装要求 操作系统要求操作系统操作系统企业版企业版开发版开发版标准版标准版工作组版工作组版简易版简易版Windows2000不支持不支持不支持不支持不支持不支持不支持不支持不支持不支持Windows2000ProfessionalEditionSP4不支持不支持支持支持支持支持支持支持支持支持Windows2000ServerSP4支持支持支持支持支持支持支持支持支

12、持支持Windows 2000 AdvancedServerSP4支持支持支持支持支持支持支持支持支持支持Windows 2000 DatacenterEditionSP4支持支持支持支持支持支持支持支持支持支持Windows XP Home EditionSP2不支持不支持支持支持不支持不支持不支持不支持支持支持Windows XP ProfessionalEditionSP2不支持不支持支持支持支持支持支持支持支持支持Windows2003ServerSP1支持支持支持支持支持支持支持支持支持支持Windows2003EditionSP1支持支持支持支持支持支持支持支持支持支持19二、二、

13、SQL Server 2005的版本和安装要求的版本和安装要求 Internet要求组件要求Internet 软件安装SQL Server 2005需要Microsoft Internet Explorer 6.0 SP1或更高版本;只安装客户端组件需要Explorer 4.01 SP2或更高版本Internet信息服务(IIS)安装SQL Server 2005 Reporting Services(SSRS)需要IIS 5.0 或更高版本ASP.NET 2.0安装和运行Reporting Services 还需要ASP.NET 2.020三、三、SQL Server 2005的常用工具的常

14、用工具三、SQL Server 2005的常用工具1SQL Server 2005的配置工具图图1-1SQLServer2005提供的配置工具提供的配置工具SQLServer配置管理器,用配置管理器,用于配置于配置SQLServer服务和网服务和网络连接。络连接。用于将错误通过网络发布给用于将错误通过网络发布给Microsoft。建立在建立在SQLServer数据库引数据库引擎之外的其他服务。擎之外的其他服务。用于创建、删除和管理用于创建、删除和管理NotificationServices实例。实例。用于配置用于配置SQLServer2005的报表服务。的报表服务。21三、三、SQL Serv

15、er 2005的常用工具的常用工具2SQL Server 2005的性能工具图图1-2SQLServer2005提供的性能具提供的性能具用来捕获数据库服务器在运用来捕获数据库服务器在运行过程中产生的事件的工具。行过程中产生的事件的工具。探查的事件可以是连接服务探查的事件可以是连接服务器、登录系统、执行器、登录系统、执行Transact-SQL语句等操作。语句等操作。可以完成帮助用户分析工作可以完成帮助用户分析工作负荷、提出创建高效率索引负荷、提出创建高效率索引的建议等功能。的建议等功能。22三、三、SQL Server 2005的常用工具的常用工具3SQL Server Management

16、StudioSQL Server Management Studio是用来访问、配置和管理SQL Server数据库的最重要的集成化工具,通过它可以访问SQL Server数据库服务器提供的所有服务。服务器控制台管理服务器控制台管理查询分析(查询分析(SQL和和MDX)来自关系引擎和来自关系引擎和Analysisservices的的分析事件分析事件“分型记录仪分型记录仪”和和“捕获重放捕获重放”功能功能23三、三、SQL Server 2005的常用工具的常用工具4命令提示实用工具图图1-3SQLCMD命令使用方法命令使用方法SQLServer2005提供非常多的提供非常多的命令行工具程序命令

17、行工具程序。如:。如:bcp.exedta.exedtexec.exe、dtutil.exersconfig.exe、keymgmt.exeSqlCmd.exe24三、三、SQL Server 2005的常用工具的常用工具5SQL Server联机丛书图图1-4SQLServer2005联机丛书联机丛书SQLServerBooksOnLine,简称,简称BOL,向向SQLServer用户提供了完整的用户提供了完整的SQLServer参考文档,便于参考文档,便于SQLServer数据库的使用者根据数据库的使用者根据自己的需要进行查询和检索自己的需要进行查询和检索。25四、四、SQL Server

18、2005的配置的配置四、SQL Server2005的配置1配置服务配置服务配置服务主要是用来管理配置服务主要是用来管理SQLServer2005服务的启动状态以及服务的启动状态以及使用何种帐户启动。使用何种帐户启动。SQLServer2005提供了服务配置工具提供了服务配置工具SQLServerConfigurationManager,打开后可以看到与打开后可以看到与SQLServer2005相关的服务,通过属性窗口即相关的服务,通过属性窗口即可进行配置可进行配置配置服务器是为了充分利用配置服务器是为了充分利用SQLServer2005的系统资源、的系统资源、设置设置SQLServer200

19、5服务器默服务器默认行为的过程。配置服务器包括认行为的过程。配置服务器包括注册服务器、启动、停止、暂停注册服务器、启动、停止、暂停服务器,以及服务器属性配置等服务器,以及服务器属性配置等工作工作2配置服务配置服务器器26任务实施任务实施一、安装一、安装SQLSQL Server 2005Server 2005二、使用二、使用 SQL Server Management Studio SQL Server Management Studio 三、注册服务器三、注册服务器任务实施任务实施27一、安装一、安装SQL Server 2005 在CD-ROM中插入Microsoft SQL Server

20、 2005所选择版本的光盘(或者使用硬盘程序),启动安装程序。 根据自己计算机的配置选择32位或64位版本安装。 在出现如图1-8所示的“最终用户许可协议”对话框。28一、安装一、安装SQL Server 2005图图1-8“最终用户许可协议最终用户许可协议”对话框对话框选择选择“我我接受许可接受许可条款和条条款和条件件”单击单击“下一步下一步”按钮。按钮。29一、安装一、安装SQL Server 2005 出现的“安装必备组件”对话框,开始安装必要的组件。(等待)(等待) 安装完毕后,单击【下一步】按钮,会出现“欢迎使用SQL Server 2005安装向导”的界面。 单击【下一步】,打开“

21、系统配置检查”对话框,如图1-10所示。 30一、安装一、安装SQL Server 2005v“系统配置检查”界面将扫描用于安装该软件的计算机是否满足硬件和软件要求,检测是否存在可能阻止安装程序运行的情况。只有显示“成功”或者“警告”才可以继续安装,任何一项显示“失败”都将无法继续安装。图图1-10“系统配置检查系统配置检查”对话框对话框31一、安装一、安装SQL Server 2005单击【下一步】按钮,出现“注册信息”对话框。 输入注册信息后,单击【下一步】按钮,出现“要安装的组件”对话框 在“要安装的组件”对话框中,选择要安装的组件。若要显示更详细的安装项目,可单击【高级】按钮,有选择性

22、地安装需要的组件部分。32一、安装一、安装SQL Server 2005灰色表示当前系统灰色表示当前系统不能安装这个组件。不能安装这个组件。选中相应选中相应的复选框,的复选框,表示需要表示需要安装组件安装组件进一步选进一步选择组件。择组件。图图1-12“要安装的组件要安装的组件”对话框对话框33一、安装一、安装SQL Server 2005单击【下一步】按钮,出现“实例名”对话框。 在“实例名”对话框中,为安装的软件选择默认实例或命名实例。实例实例就是虚拟的SQL Server 2005 服务器。SQL Server 2005 允许在同一台计算机上安装多个实例,每一个实例必须有一个属于它的唯一

23、的名字。SQL Server 2005的默认实例是MSSQLSERVER。要安装新的实例,则单击“命令实例”单选项,然后在文本框中输入唯一的实例名。34一、安装一、安装SQL Server 2005安装新的安装新的实例,可实例,可以选择以选择“命名实例命名实例”默认实例名是默认实例名是“MSSQLSERVER”图图1-13“实例名实例名”对话框对话框35一、安装一、安装SQL Server 2005单击【下一步】按钮,出现“服务帐户”对话框 “服务账户”对话框用于设置登录时使用的帐户。默认“使用内置系统帐户”。这里选择“使用内置系统账户/本地系统”,表示每一项服务都是使用登录本机的用户。如果是

24、域用户,可以选择“使用域用户帐户”单选项。如果选用“使用域用户帐户”,则还需要在对应位置输入域用户名称、密码和域信息。36一、安装一、安装SQL Server 2005定义服务定义服务帐户和服帐户和服务的对应务的对应关系关系选择选择“内内置系统用置系统用户户”或者或者是是“域帐域帐户户”自动启自动启动的服动的服务选项务选项图图1-15“服务帐户服务帐户”对话框对话框37一、安装一、安装SQL Server 2005单击【下一步】按钮,出现“身份验证模式”对话框。 在“身份验证模式”对话框中,选择要用于SQL Server安装的身份验证模式。两种身份验证模式:Windows身份验证模式和混合模式

25、。Windows身份验证模式表明将使用Windows的安全机制维护SQL Server的登录。混合模式则或者使用Windows的安全机制,或者使用SQL Server定义的登录ID和密码。选择“混合模式”,则必须输入并确认SQL Server系统管理员(sa)的密码。38一、安装一、安装SQL Server 2005使用操使用操作系统作系统的用户的用户登录登录使用操作系使用操作系统或者统或者SQLServer定定义的用户登义的用户登录,录,必须输入必须输入sa密码密码图图1-16“身份验证模式身份验证模式”对话框对话框39一、安装一、安装SQL Server 2005单击【下一步】按钮,出现

26、“排序规则设置”对话框。 “排序规则设置”对话框用于指定SQL Server实例的排序规则。单击【下一步】按钮,的“错误和使用情况报告设置”对话框。 “错误和使用情况报告设置”对话框,用于设置是否将运行过程中产生的错误和使用情况发送给微软公司。单击【下一步】按钮,出现 “准备安装”对话框。40一、安装一、安装SQL Server 2005 “准备安装”对话框显示要安装的所有组件。单击【安装】按钮,就开始安装进程了。(等待) 安装完毕后会出现“完成Microsoft SQL Server 2005安装” 对话框,单击【完成】按钮退出安装。至此,Microsoft SQL Server 2005安

27、装完毕。41任务实施任务实施一、安装一、安装SQLSQL Server 2005Server 2005二、使用二、使用 SQL Server Management Studio SQL Server Management Studio 三、注册服务器三、注册服务器任务实施任务实施42二、使用二、使用 SQL Server Management Studio1.启用SQL Server Management Studio在使用Microsoft SQL Server 2005客户端的时候,必须与Microsoft SQL Server 2005服务器连接连接到服务器有两种情况:一种是连接到本地服

28、务器,另一种是通过网络连接到其它服务器。启动启动SQLServerManagementStudio的过程首先是连接到的过程首先是连接到服务器的过程。服务器的过程。43二、使用二、使用 SQL Server Management依次选择【开始】【程序】【Microsoft SQL Server 2005】【SQL Server Management Studio】,打开“连接到服务器”对话框,如图1-21所示。图图1-21“连接到服务器连接到服务器”对话框对话框保持数据保持数据库引擎库引擎两种身份两种身份验证方式验证方式本机本机/网网络服务器络服务器“连接连接”按钮按钮44二、使用二、使用 SQ

29、L Server Management2SQL Server Management Studio的组成Web浏览器浏览器解决方案解决方案资源管理器资源管理器模板资源模板资源管理器管理器对象资源对象资源管理器管理器摘要窗格摘要窗格45二、使用二、使用 SQL Server Management对象资源管理器对象资源管理器以树形目录形式详细列出了数据库实例中的所有对象、所有的安全条目以及关于SQL Server的许多其它方面,使用频繁。模板资源管理器模板资源管理器数据库管理和开发人员创建各个数据库对象节点提供了相应的模板,使得创建各类数据库对象变得更加简洁和方便。 解决方案资源管理器解决方案资源管

30、理器为用户提供了解决方案资源管理器。主要用于管理与一个脚本工程相关的所有项目,即将那些在逻辑上同属于一种应用处理的各种类型的脚本组织在一起。46二、使用二、使用 SQL Server Management Web浏览器浏览器Web浏览器主要用于方便数据库用户浏览Microsoft SQL Server官方网站。摘要窗格摘要窗格SQL Server Management Studio摘要页所在的区域称为文档窗口(document area)。47二、使用二、使用 SQL Server Management3查询编辑器的使用【查询编辑器】是SQL Server Management Studio提

31、供的另一个主要工具,通过查询编辑器,可以实现对SQL Server数据库中数据的检索和更新操作。查询编辑器(Query Editor)可用于编写和执行程序代码。查询编辑器通过编程方式创建动作,达到与拖放或使用向导一样的效果。48通过单击标准工具栏中的【新建查询】按钮,或者通过选择【文件】【新建】【数据库引擎查询】菜单命令,即可打开一个空白的查询编辑器。如图1-24所示。二、使用二、使用 SQL Server Management图图1-24查询编辑器窗口查询编辑器窗口49在查询编辑器中输入要执行的Transact-SQL查询脚本,然后单击菜单栏中的【执行】按钮,窗口中显示出执行的结果。二、使用

32、二、使用 SQL Server Management图图1-25查询编辑器执行结果查询编辑器执行结果1、【执执行行】按钮按钮1、输入输入Transact-SQL语句语句3、查询结果、查询结果50任务实施任务实施一、安装一、安装SQLSQL Server 2005Server 2005二、使用二、使用 SQL Server Management Studio SQL Server Management Studio 三、注册服务器三、注册服务器任务实施任务实施51三、注册服务器三、注册服务器1注册服务器组图图1-26新建服务器组新建服务器组快捷菜单快捷菜单【新建新建】【服务器组服务器组】52三、

33、注册服务器三、注册服务器图图1-27新建服务器组窗口新建服务器组窗口2、【保存保存】按钮按钮1、输入服、输入服务器组名务器组名53三、注册服务器三、注册服务器2注册服务器在SQL Server Management Studio中登记服务器,然后把服务器加入到一个指定的服务器组中。 打开打开SQL Server Management Studio。选择选择【已注册的服务器已注册的服务器】按钮,按钮,系统弹出系统弹出“已注册的服务器已注册的服务器”窗口。窗口。在在“已注册的服务器已注册的服务器”窗口内窗口内右击,在弹出快捷菜单中选择右击,在弹出快捷菜单中选择【新建新建】【服务器注册服务器注册】命

34、命令,系统弹出令,系统弹出“新建服务器注新建服务器注册册”对话框。如图对话框。如图1-28所示。所示。图图1-28“新建服务器注册新建服务器注册”窗口窗口54三、注册服务器三、注册服务器1、【常规常规】选项卡选项卡2、输入新、输入新注册服务器注册服务器名称名称3、登录服、登录服务器的验证务器的验证方式方式【测试测试】按钮按钮图图1-28新建服务器注册新建服务器注册中的中的“常规常规”窗口窗口55三、注册服务器三、注册服务器连接的时间连接的时间控制控制注册服务器默注册服务器默认连接的数据认连接的数据库库选择选择连接连接应应用的网络协用的网络协议议及传输数及传输数据包大小据包大小图图1-29新建服

35、务器注册中的新建服务器注册中的“连接属性连接属性”窗口窗口56三、注册服务器三、注册服务器服务器的日常管理工作包括服务器的注册、启动、暂停、关闭和配置等。只有SQL Server 中的服务器正常启动后,用户才能执行相应的操作,例如系统登录、任务调度等。对服务器的管理可以有多种方式,包括在Windows操作系统中进行管理,利用SQL Server配置管理器进行管理,以及在SQL Server管理平台(SQL Server Management Studio)中进行管理。这里主要介绍在SQL Server管理平台中启动和关闭服务器。在SQL Server Management Studio中选中相

36、应的服务器,右击服务器名,在弹出的快捷菜单中选择【启动】、【停止】、【暂停】或【重新启动】选项。如图1-30所示,即可以对该服务器执行启动、停止和暂停操作。57SQLServer2005服务器服务器三、注册服务器三、注册服务器3服务器启动、暂停和停止SQL Server 2005服务器是提供数据存储和数据管理服务的重要设施,它主要由数据库引擎和数据库两部分组成。服务器的日常管理工作包服务器的日常管理工作包括服务器的注册、启动、括服务器的注册、启动、暂停、关闭和配置暂停、关闭和配置等。等。对服务器的管理方式对服务器的管理方式:SQLServer配置管理器配置管理器SQLServer管理平台管理平

37、台(SQLServerManagementStudio)58三、注册服务器三、注册服务器图图1-30在在SQLServerManagementStudio窗窗口启动、停止服务器口启动、停止服务器右击服务器名,在弹出的快捷右击服务器名,在弹出的快捷菜单中选择【启动】、【停止菜单中选择【启动】、【停止】、【暂停】或【重新启动】、【暂停】或【重新启动】选项选项59能力拓展能力拓展60能力拓展能力拓展1配置服务器服务是一种在后台运行的服务是一种在后台运行的应用程序应用程序SQLServer2005服服务器端组件是务器端组件是“服务服务”的形式在计算机系的形式在计算机系统中运行统中运行运行的服务在后台完

38、运行的服务在后台完成需要的操作成需要的操作服务占用服务器的资源服务占用服务器的资源默认启动的服务默认启动的服务自始至终都在运自始至终都在运行行服务可以设置为服务可以设置为“禁用禁用”、“手动启手动启动动”、“自动启动自动启动”服务服务61能力拓展能力拓展【开始】【开始】【程序】【程序】【MicrosoftSQLServer2005】【配置工具】【配置工具】【SQLServerConfigurationManager】命令,打开命令,打开SQLServerConfigurationManager对对话框。话框。图图1-31SQLServerConfigurationManager窗口窗口在SQL

39、 Server 2005的中使用服务器配置管理器(SQL Server Configuration Manager)对服务的启动模式进行设置。62能力拓展能力拓展图图1-32SQLServerConfigurationManager窗口窗口暂停与停止的区别是:暂停与停止的区别是:暂停服务器是在关闭数据暂停服务器是在关闭数据库之前进行,暂停服务器库之前进行,暂停服务器后,连接客户已经提交的后,连接客户已经提交的任务会继续执行,而新的任务会继续执行,而新的用户连接请求被拒绝。用户连接请求被拒绝。快捷菜单中的快捷菜单中的【停止停止】与与【暂停暂停】服务选服务选项项【属性属性】选项选项属性用于配置启动

40、服务属性用于配置启动服务的各种默认值的各种默认值63能力拓展能力拓展图图1-33“登录登录”选项卡窗口选项卡窗口“登录登录”选项卡选项卡“内置账户内置账户”更改更改服务的登录身份,服务的登录身份,内置账户的类型:内置账户的类型:本地系统本地系统本地服务本地服务网络服务:网络服务:“本账户本账户”直接输入登直接输入登录的账户名录的账户名称和密码或称和密码或选择已经定选择已经定义的用户账义的用户账户。户。64能力拓展能力拓展图图1-34“服务服务”选项卡窗口选项卡窗口启动模式有:启动模式有:“自动自动”、“手动手动”、“已禁止已禁止”“服务服务”选项卡选项卡【应用应用】按钮按钮65能力拓展能力拓展

41、服务器属性服务器属性服务器属性的配置功能服务器属性的配置功能有助于有助于SQLServer2005的高效使用。的高效使用。常规常规安全安全安全安全处理处理处理处理器器器器连接连接连接连接权限权限权限权限数据数据数据数据库设库设库设库设置置置置内存内存2配置服务器常用属性安全安全安全安全性性性性66能力拓展能力拓展图图1-35服务器属性窗口服务器属性窗口打开打开SQLServerManagementStudio,在,在“对象资源管理器对象资源管理器”窗口窗口中右击要配置的服务器名,中右击要配置的服务器名,在快捷菜单中选择在快捷菜单中选择“属性属性”选项,打开服务器属性选项,打开服务器属性窗口。如

42、图窗口。如图1-35所示。所示。8种属性种属性选项选项67能力拓展能力拓展 内存设置SQLServer2005的内存的内存设置对其运行性能有着显设置对其运行性能有着显著的影响。著的影响。SQLServer2005的内存的内存设置主要有两个方面:一设置主要有两个方面:一方面是设置可用的最大内方面是设置可用的最大内存值和最小内存值;一方存值和最小内存值;一方面是是否强制操作系统保面是是否强制操作系统保留物理内存空间。留物理内存空间。图图1-36服务器属性(内存)窗口服务器属性(内存)窗口最小内存最小内存最大内存最大内存创建索引创建索引占用内存占用内存查询占用查询占用内存内存68能力拓展能力拓展 更

43、改服务器认证方式服务器属性窗口的服务器属性窗口的“安全安全性性”用于查看、修改服务用于查看、修改服务器身份验证方式。器身份验证方式。更改后通常需要重新启动更改后通常需要重新启动服务,如果从服务,如果从Windows验验证模式改到混合验证模式,证模式改到混合验证模式,不会自动启用不会自动启用SA账户,如账户,如果要使用果要使用SA账户,则需要账户,则需要执行带有执行带有enable选项的选项的AlterLogin命令。命令。图图1-37服务器属性(安全性)窗口服务器属性(安全性)窗口69能力拓展能力拓展 服务器连接设置图图1-38服务器属性(连接)窗口服务器属性(连接)窗口用户可以配置与服务器用

44、户可以配置与服务器连接期间可能发生的事连接期间可能发生的事情有关的各个选项。情有关的各个选项。“最大并发连接最大并发连接数数”默认值为默认值为070创建图书管理数据库创建图书管理数据库任务二任务二71能力目标和知识目标能力目标和知识目标能力目标能力目标1能够使用SQL Server Management Studio创建数据库;2能够使用Transact-SQL语言创建数据库;3能够对数据库查看属性以及进行修改、收缩、删除、分离与附加等操作。知识目标知识目标1掌握SQL Server数据库的逻辑结构和物理结构;2熟悉Transact-SQL语言的基本知识;3熟悉SQL Server Manag

45、ement Studio的使用。72任务导入任务导入v某学校图书馆有许多藏书,为了有效地进行管理,需要建立一个图书管理系统。而创建图书管理系统的一项重要工作就是建立图书管理数据库。按照需要建立一个名字叫做Library的图书管理数据库。731.创建一个名为Library的图书管理数据库,并为它创建了一个主数据文件Library_Data和一个日志文件Library_log。存放在D盘指定文件夹(该文件夹应事先创建)下,主数据文件初始大小是5M,扩展文件时按10%的幅度增长,没有限制大小。2.向图书管理数据库增加一个数据文件,文件名Library_Data2, 初始大小5MB,最大为50MB,每

46、次自动增长5 MB,该文件也存放在D盘指定文件夹下,并将Library_Data的初始大小修改为10MB。744.删除图书管理数据库中数据文件Library_Data25.创建一个数据库,各项参数设置采用系统默认值,然后再将其删除6.查看Library数据库的属性,注意观察该数据库的所有者及所包含的数据库文件和事务日志文件的设置。7.分离Library数据库,将其保存在自己的作业文件夹中。75相关知识相关知识一、数据库概述1数据库和数据库管理系统的概念(1)数据库数据库是存储在计算机系统内的一个通用化的、综合性的、有结构的、可共享的数据集合。独立于开发平台,处于应用系统的后台,能共享提供给各种

47、应用或用户使用,并能提供数据完整性控制、安全性控制和并发控制功能。通常是由专门的系统进行管理,管理数据库的系统称为数据库数据库管理系统管理系统。76相关知识相关知识数据库用户通常可以分为两类:一类是批处理用户,另一类是联机用户,或称为终端用户。(2)数据库管理系统数据库管理系统是一个管理数据库的软件,简称DBMS(Data Base Management System)。它是数据库系统的核心。数据库的创建、运行和维护都是在数据库管理系统的控制下实现的。SQL Server 2005就是一个数据库管理系统。77相关知识相关知识2数据库系统的概念数据库系统数据库系统是在数据库管理系统支持下运行的一

48、类计算机应用(软件)系统,简称DBS(Database System)。通常由四部分组成,即:数据库、应用程序、数据库管理系统、用户数据库、应用程序、数据库管理系统、用户一般的数据库系统中,使用通用的数据库管理系统,而数据库和应用程序需要由用户(开发人员)开发。78相关知识相关知识3数据库系统的模型数据库系统的模型数据库系统的模型是描述数据库中的数据结构形式。现有的数据库系统模型主要有三种,即层次模型层次模型、网网状模型状模型和关系模型关系模型。79相关知识相关知识(1)层次以记录为结点构成的树,它把客观事物抽象为一个严格的自上而下的层次关系。有且仅有一个根结点无双亲;其它结点有且仅有一个双亲

49、。有且仅有一个根结点无双亲;其它结点有且仅有一个双亲。图图2-1层次数据模型实例层次数据模型实例80相关知识相关知识(2)网状一种去掉层次模型中的两个限制的数据模型。允许多个结点没有双亲结点,允许结点有多个双亲结点允许多个结点没有双亲结点,允许结点有多个双亲结点图图2-2网状数据模型实例网状数据模型实例81相关知识相关知识(3)关系以集合论中的关系(Relation)概念为基础发展起来的数据模型。列为字段,列为字段,称为属性称为属性用二维表格结构用二维表格结构表示的数据模型表示的数据模型图图2-3关系模型实例关系模型实例标题行标题行表体表体字段名字段名字段值字段值一行为一个记录,记录称为元组,

50、元一行为一个记录,记录称为元组,元组的集合称为关系或实例组的集合称为关系或实例82相关知识相关知识不同的数据通过不同的二维表格存储,各表之间通过关键字段相关联,构成一定的关系。关系模型既能反映属性之间的一对一关系,也能反映属性之间的一对多和多对多关系。由关系模型组成的数据库称作关系型数据库,关系型数据库是目前最为流行的数据库,关系型数据库管理系统很多,例如SQL Server、Oracle、Sybase、Informix、Dbase、DB2等。83相关知识相关知识4数据库的组成(1)数据库对象对象名称对象名称含义含义关系图关系图关系图显示包含的表和表之间的关联关系图显示包含的表和表之间的关联。

51、表表数据库存放数据的地方数据库存放数据的地方,SQLServer中的表可分为用户中的表可分为用户表和系统表表和系统表。视图视图是一个是一个“虚拟虚拟”的数据表的数据表,本身不保存数据,只记录了数本身不保存数据,只记录了数据由哪些数据表的哪些字段组成据由哪些数据表的哪些字段组成。存储过程存储过程存储在服务器上的一组预编译的存储在服务器上的一组预编译的SQL语句语句。系统提供的存系统提供的存储过程称为系统存储过程,用户自己定义的存储过程称为储过程称为系统存储过程,用户自己定义的存储过程称为用户存储过程。用户存储过程。84相关知识相关知识数据库对象数据库对象含义含义用户用户对数据库有存取权限的使用者

52、对数据库有存取权限的使用者。角色角色一个或多个具有相同权限的用户组成的数据库对象一个或多个具有相同权限的用户组成的数据库对象。规则规则用于检验字段数据有效性用于检验字段数据有效性。默认默认用于设置字段的默认值用于设置字段的默认值。用户自定义数据类型用户自定义数据类型用户根据需要自己定义的数据类型用户根据需要自己定义的数据类型。用户自定义函数用户自定义函数用户根据需要自己定义的函数用户根据需要自己定义的函数。全文目录全文目录指为实现字符串数据查询而保存的关键词指为实现字符串数据查询而保存的关键词。85相关知识相关知识(2)数据库文件数据库文件数据库文件存储存储(存储结构)(存储结构)逻辑存储结构

53、逻辑存储结构物理存储结构物理存储结构逻辑存储结构指的逻辑存储结构指的是数据库是由哪些是数据库是由哪些性质的信息所组成性质的信息所组成。物理存储结构是讨物理存储结构是讨论数据库文件是如论数据库文件是如何在磁盘上存储何在磁盘上存储。nSQLServer的数据库是由诸如表、视图、索引等各种不同的数据库的数据库是由诸如表、视图、索引等各种不同的数据库对象所组成。对象所组成。SQLServer2005将数据库映射为一组操作系统文件,将数据库映射为一组操作系统文件,每个数据库文件至少要包含一个数据文件和一个日志文件每个数据库文件至少要包含一个数据文件和一个日志文件,又可分又可分为主数据文件和次要数据文件。

54、为主数据文件和次要数据文件。86相关知识相关知识1)主数据文件(Primary Database File)。主数据文件用来存放数据,它是所有数据库文件的起点(包含指向其它数据库文件的指针)。每个数据库都必须包含也只能包含一个主数据文件。主数据文件的默认扩展名为.mdf。2)次要数据文件(Secondary Database File)。次要数据文件也用来存放数据。一个数据库中,可以没有次要数据文件,也可以拥有多个次要数据文件。次要数据文件的默认扩展名为.ndf。设置次要数据文件的好处一是采用主、辅数据文件来存储数据可以无限制的扩充而不受操作系统文件的大小的限制;二是可以将文件保存在不同的硬盘

55、上,提高了数据处理的效率。87相关知识相关知识3)日志文件(Transaction Log)。日志文件用来存放事务日志,每个数据库都有一个相关的事务日志,事务日志记录了SQL Server所有的事务和由这些事务引起的数据库的变化。每个数据库至少有一个日志文件,也可以拥有多个日志文件。日志文件的默认扩展名为.ldf,日志文件的大小至少是512KB。88相关知识相关知识(3)文件组 各个数据文件组成一个组,对它们整体进行管理。通过设置文件组,可以有效地提高数据库的读写速度。主文件组主文件组(Primary)包含主数据文件和所有没有被包含在其他文件包含主数据文件和所有没有被包含在其他文件组里的次要数

56、据文件。组里的次要数据文件。用户定义文件组用户定义文件组(user_defined)由用户创建的文件组,用户在创建和修改数据由用户创建的文件组,用户在创建和修改数据库时可以用指定数据文件的文件组。库时可以用指定数据文件的文件组。包含所有包含所有在使用在使用CREATEDATABASE或或ALTERDATABASE时使用关键字来进行约束的文件。时使用关键字来进行约束的文件。默认文件组默认文件组(default)容纳所有在创建时没有指定文件组的表、索引容纳所有在创建时没有指定文件组的表、索引以及以及text、ntext、image数据类型的数据。任数据类型的数据。任何时候都只能有一个文件组被指定为

57、默认文件何时候都只能有一个文件组被指定为默认文件组。组。89相关知识相关知识二、Transact-SQL语言简介综合综合统一统一高度非高度非过程化过程化面向集面向集合的操合的操作方式作方式支持支持C/S和和B/S结结构构简洁简洁直观直观SQL结构化查询语言结构化查询语言(StructuredQueryLanguage)1SQL语言的特点语言的特点90相关知识相关知识2Transact-SQL语言Transact-SQL(简称T-SQL)是微软对SQL语言的具体实现和扩展,具有SQL的主要特点,同时增加了变量、运算符、函数、流程控制语句、事务控制语句和注释等语言要素,使得其功能更加强大。可以在S

58、QL Server中直接执行,也可以嵌入到其它高级程序设计语言中使用。91相关知识相关知识T-SQL语言主要由以下四部分组成:数据定义语数据定义语句(句(DDL)数据操纵语数据操纵语句(句(DML)数据控制语数据控制语句(句(DCL)附加的语附加的语言要素言要素用于创建和修改数据用于创建和修改数据库结构的语句库结构的语句用于数据查询、插入、用于数据查询、插入、修改和删除等操作语修改和删除等操作语句句用于控制数据库的用于控制数据库的访问权限和控制游访问权限和控制游标标附加的语言要素是为附加的语言要素是为了编写脚本而增设的了编写脚本而增设的语言要素,包括变量、语言要素,包括变量、运算符、函数等运算

59、符、函数等92相关知识相关知识三、有关数据库管理的T-SQL语句1建立数据库的命令语句CREATE DATABASECREATEDATABASEdatabase_nameONPRIMARY(NAME=logical_,os_,SIZE=size,MAXSIZE=max_size|UNLIMITED,),n,LOGON(NAME=logical_,os_,SIZE=size,MAXSIZE=max_size|UNLIMITED,),ndatabase_name:数据库的名称,最长为:数据库的名称,最长为128个个字符。字符。ON:指定存放数据库的数据文件信息:指定存放数据库的数据文件信息PRIM

60、ARY:该选项是一个关键字,指定主文件组中的文件。:该选项是一个关键字,指定主文件组中的文件。LOGON:指定生成事务日志文件的地址和文件长:指定生成事务日志文件的地址和文件长度。度。NAME:指定数据库的逻辑名称,这是在:指定数据库的逻辑名称,这是在SQLServer系统中使用的名称,是数据库在系统中使用的名称,是数据库在SQLServer中的标识符。中的标识符。:指定数据文件的物理文件名,包括路径和文件:指定数据文件的物理文件名,包括路径和文件名称。名称。SIZE:指定数据库的初始容量大小默认为:指定数据库的初始容量大小默认为1MB。MAXSIZE:指定操作系统文件可以增长到的最大:指定操

61、作系统文件可以增长到的最大尺寸,如果没有指定,则文件可以不断增长直到尺寸,如果没有指定,则文件可以不断增长直到充满硬盘。充满硬盘。:指定文件每次增加容量的大小,当指定数据为:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。时,表示文件不增长。UNLIMITED:指名指名中定义的文件的增长无容量限中定义的文件的增长无容量限制。制。93相关知识相关知识2修改数据库的命令语句ALTER DATABASEALTERDATABASEdatabasenameADD,nto|ADDLOGFILE,n|REMOVEwithdelete|MODIFYFILE|MODIFYNAME=new_data

62、basename|ADD|REMOVE|MODIFYnew_ADDFILE:指定要添加新的数据文件。指定要添加新的数据文件。ADDLOGFILE:指定添加新的日志文件。指定添加新的日志文件。REMOVEFILE:从数据库系统表中删除文件描述并从数据库系统表中删除文件描述并删除物理文件。只有在文件为空时才能删除。删除物理文件。只有在文件为空时才能删除。ADD:指定要添加文件组。指定要添加文件组。REMOVE:从数据库中删除文件组并删除该文件组中从数据库中删除文件组并删除该文件组中的所有文件。只有在文件组为空时才能删除。的所有文件。只有在文件组为空时才能删除。MODIFYFILE:指定要更改给定的

63、文件,更改选项包指定要更改给定的文件,更改选项包括括、SIZE、和和MAXSIZE。一次只能更改这些属性中。一次只能更改这些属性中的一种。必须在的一种。必须在中指定中指定NAME,以标识要更改的,以标识要更改的文件。如果指定了文件。如果指定了SIZE,那么新大小必须比文件当前,那么新大小必须比文件当前大小要大。只能为大小要大。只能为tempdb数据库中的文件指定数据库中的文件指定,而,而且新名称只有在且新名称只有在MicrosoftSQLServer重新启动后才重新启动后才能生效。能生效。MODIFYNAME:重命名数据库。重命名数据库。MODIFY:修改指定文件组的属性。:修改指定文件组的属

64、性。94相关知识相关知识3打开数据库的命令语句USE4删除数据库的命令语句DROP DATABASEUSE数据库名数据库名DROPDATABASE数据库名数据库名,n95相关知识相关知识5收缩指定数据库命令语句DBCC SHRINKDATABASEdatabase_name:是要收缩的数据库名称。:是要收缩的数据库名称。数据库名称必须符合标识符的规则。数据库名称必须符合标识符的规则。target_percent:是数据库收缩后的数据库:是数据库收缩后的数据库文件中所要的剩余可用空间百分比。文件中所要的剩余可用空间百分比。NOTRUNCATE:导致在数据库文件中保留:导致在数据库文件中保留所释放

65、的文件空间。如果未指定,将所释放的所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。文件空间释放给操作系统。TRUNCATEONLY:导致将数据文件中的任:导致将数据文件中的任何未使用的空间释放给操作系统,并将文件收何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据。不试图重新定位未分配页而不移动任何数据。不试图重新定位未分配页的行。使用的行。使用TRUNCATEONLY时,忽略时,忽略target_percentis。DBCCSHRINKDATABASE(database_name,tar

66、get_percent,NOTRUNCATE|TRUNCATEONLY)96相关知识相关知识6收缩文件命令语句DBCC SHRINKFILE:是:是要要收缩文件的逻辑名称。收缩文件的逻辑名称。:是要收缩的文件的标识:是要收缩的文件的标识(ID)号。若要获得文件号。若要获得文件ID,请使用,请使用函数或在当前数据库中搜索函数或在当前数据库中搜索sysfiles。target_size:是用兆字节表示的所要:是用兆字节表示的所要收缩收缩的文件的文件大小(用整数表示)。如果没有指定,大小(用整数表示)。如果没有指定,DBCCSHRINKFILE将文件大小减少到默认文件大小。将文件大小减少到默认文件大

67、小。EMPTYFILE:将所有数据从指定文件中迁移到:将所有数据从指定文件中迁移到同一文件组中的其他文件。同一文件组中的其他文件。MicrosoftSQLServer不再允许将数据放在用于不再允许将数据放在用于EMPTYFILE选选项的文件上。该选项允许使用项的文件上。该选项允许使用ALTERDATABASE语句除去文件。语句除去文件。NOTRUNCATE:导致将释放的文件空间保留在:导致将释放的文件空间保留在文件中。文件中。TRUNCATEONLY:导致文件中的任何未使用的:导致文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次分配空间释放给操作系统,并将文件收缩到上一次分配的大小

68、,从而减少文件大小,而不移动任何数据。的大小,从而减少文件大小,而不移动任何数据。DBCCSHRINKFILE(|,target_size|,EMPTYFILE|NOTRUNCATE|TRUNCATEONLY)97任务实施任务实施一、一、创建图书管理数据库创建图书管理数据库LibraryLibrary二、二、 管理数据库管理数据库任务实施任务实施98一、一、创建图书管理数据库创建图书管理数据库Libraryv创建数据库通常有两种方式:一种是使用SQL Server Management Studio创建另一种是使用Transact-SQL语句创建。99一、一、创建图书管理数据库创建图书管理数据

69、库Library1.使用SQL Server Management Studio创建数据库图书管理数据库图书管理数据库Library数据库拥有者数据库拥有者数据库的名称数据库的名称数据库的大小数据库的大小SQLServerManagementStudio数据库存放的位置数据库存放的位置100一、一、创建图书管理数据库创建图书管理数据库Library【训练2-1】在SQL Server Management Studio中创建Library数据库。(1)依次选择【开始】)依次选择【开始】【程序】【程序】【MicrosoftSQLServer2005】【SQLServerManagementStu

70、dio】,打开】,打开SQLServerManagementStudio窗口。窗口。(2)在连接到服务器对话)在连接到服务器对话框中,设置好服务器类型、框中,设置好服务器类型、服务器名称和身份验证方式,服务器名称和身份验证方式,并单击【连接】按钮,连接并单击【连接】按钮,连接到到SQLServer2005数据库数据库实例。如图实例。如图2-4所示。所示。图图2-4“连接到服务器连接到服务器”对话框对话框选择选择“Windows”身份验证身份验证101一、一、创建图书管理数据库创建图书管理数据库Library图图2-5在在SQLServerManagementStudio中创建数据库中创建数据库

71、【新建新建数据库数据库】命令命令(3)将对象资源管理器窗格的树形结构展开,选择【数据库】节点并右击,在打开的快捷菜单中选择【新建数据库】命令。如图2-5所示。102一、一、创建图书管理数据库创建图书管理数据库Library图图2-6新建数据库属性对话框新建数据库属性对话框(4)新建数据库窗口设置属性,系统自动生成数据文件Library.mdf和日志文件Library_log.ldf,并设定了文件类型、文件组名称、初始大小、自动增长方式和存储路径,如图2-6所示。【常规】、【常规】、【选项】、【选项】、【文件组【文件组】三个选】三个选项卡项卡【数据库名称【数据库名称】文本框】文本框,输,输入入“

72、Library”系统自动生系统自动生成数据文件成数据文件数据库数据库所有者所有者103一、一、创建图书管理数据库创建图书管理数据库Library所有的数据文件都会拥有两个文件名:逻辑文件名和物理文件名。图图2-6新建数据库属性对话框新建数据库属性对话框逻辑文件名逻辑文件名是在是在Transact-SQL语句中引用语句中引用数据库文件时所使用的名数据库文件时所使用的名称。系统生成的数据文件称。系统生成的数据文件即是逻辑文件名,在数据即是逻辑文件名,在数据库中逻辑文件名必须是唯库中逻辑文件名必须是唯一的。一的。物理文件名物理文件名是包括路径是包括路径在内的数据库文件名(在在内的数据库文件名(在Wi

73、ndows操作系统中使用)操作系统中使用)。数据文件和日志文件的数据文件和日志文件的初始大小、自动增长方式初始大小、自动增长方式和存储路径都是可以改变和存储路径都是可以改变的。的。逻辑逻辑文件名文件名物理物理文件名文件名104一、一、创建图书管理数据库创建图书管理数据库Library(5)在【所有者】下拉列表框中可以选择数据库的所有者,数据库的所有者是对数据库有完全操作权限的用户。默认值表示当前登录Windows系统的是管理员账户。可以更改所有者。图图2-7选择数据库所有者对话框选择数据库所有者对话框单击可以选择单击可以选择不同的用户成不同的用户成为数据库的使为数据库的使用者用者105一、一、

74、创建图书管理数据库创建图书管理数据库Library(7)单击【确定】按钮,在“数据库”的树形结构中可以看到新建的数据库Library。图图2-8创建了一个新的数据库创建了一个新的数据库Library新建的数新建的数据库据库Library106一、一、创建图书管理数据库创建图书管理数据库Library2. 使用CREATE DATABASE创建数据库CREATE DATABASE语句是Transact-SQL创建数据库的方法图图2-9用命令方式创建数据库用命令方式创建数据库SQLServerManagementStudio窗口窗口新建查询新建查询SQL编辑编辑窗口,输窗口,输入创建数入创建数据库

75、的据库的SQL语句语句【执行执行】按钮按钮消息窗口,消息窗口,SQL语句语句分析和执分析和执行结果在行结果在窗口显示窗口显示107v【训练2-2】在查询编辑器窗口中创建Library2数据库。CREATE DATABASE Library2CREATE DATABASE Library2OnOn(Name= Library2_Data,(Name= Library2_Data,E:sql_dataLibrary2_Data.mdf,E:sql_dataLibrary2_Data.mdf,Size=10,Size=10,) )Log onLog on(Name= Library2_Log,(Na

76、me= Library2_Log,E:sql_dataLibrary2_Log.ldf,E:sql_dataLibrary2_Log.ldf,Size=5,Size=5,) )执行这个例子,将在执行这个例子,将在E盘盘sql_data文件夹下(该文件文件夹下(该文件夹应事先建立)创建主数据文件夹应事先建立)创建主数据文件Library2_Data.mdf和日志文件和日志文件Library2_Log.ldf,主数据文件的初始大,主数据文件的初始大小为小为10M,按百分比方式增长,每次增长,按百分比方式增长,每次增长10%。一、一、创建图书管理数据库创建图书管理数据库Library108任务实施任

77、务实施一、一、创建图书管理数据库创建图书管理数据库LibraryLibrary二、二、 管理数据库管理数据库任务实施任务实施109二、二、 管理数据库管理数据库1.查看与修改数据库属性(1)使用SQL Server Management Studio查看和修改数据库属性图图2-10数据库属性对话框数据库属性对话框【常规】选项卡中列示【常规】选项卡中列示的数据库基本信息是不能的数据库基本信息是不能修改的修改的。【文件】和【文件组】【文件】和【文件组】选项卡中修改和增加数据选项卡中修改和增加数据库的数据文件和日志文件库的数据文件和日志文件等等。【选项】选项卡中设置【选项】选项卡中设置和修改数据库的

78、排序规则和修改数据库的排序规则和故障恢复模式。和故障恢复模式。【权限】选项卡中查看【权限】选项卡中查看和设置数据库安全对象的和设置数据库安全对象的权限。权限。选项卡选项卡110v【训练2-3】 在Library数据库中添加一个辅助数据文件。在在“数据库属性数据库属性”对话框中对话框中单击单击【文件文件】选项卡,然后选项卡,然后单击单击【添加添加】按钮,此时就按钮,此时就增加了一个辅助数据文件,增加了一个辅助数据文件,如图如图2-11所示。输入该文件所示。输入该文件的名称,确定该文件的大小、的名称,确定该文件的大小、增长方式以及存储路径。单增长方式以及存储路径。单击击【确定确定】按钮,完成辅助按

79、钮,完成辅助数据文件的添加工作。数据文件的添加工作。图图2-11添加辅助数据文件添加辅助数据文件111(2)使用Transact-SQL语句查看和修改数据库属性 启动SQL Server Management Studio,打开SQL编辑器窗口。 在SQL编辑器窗口中使用T-SQL语句查看和修改的数据库。v【训练2-4】 使用ALTER DATABASE命令修改数据库名称xsgl为xsmanageALTERDATABASExsglMODIFYNAME=xsmanage112v在查询编辑器中输入以上语句,执行效果如图2-12所示图图2-12使用使用ALTERDATABASE命令修改数据库名称命令

80、修改数据库名称113v【训练2-5】使用系统存储过程sp_helpdb查看Library数据库的信息。在查询编辑器中执行系统存储过程sp_helpdb,sp_helpdb Library图图2-13利用存储过程查看数据库利用存储过程查看数据库Library的信息的信息如果如果sp_helpdb后不给出后不给出数据库名,则查看服务器数据库名,则查看服务器上所有数据库的信息。上所有数据库的信息。114二、二、 管理数据库管理数据库2. 收缩数据库SQL Server 允许压缩数据库中的每个文件,以删除未使用的页。注意:注意:数据库压缩并不能把一个数据库压缩到比它创建时还小,即使数据库中的数据都删除

81、了也不行。v可以设置为按给定时间自动压缩,也可以手工压缩。手工压缩有两种方式:使用SQL Server Management Studio压缩数据库使用DBCC SHINKDATABASE语言压缩数据115二、二、 管理数据库管理数据库(1)使用SQL Server Management Studio压缩数据库 展开服务器组,然后展开指定的服务器。 右击要收缩的数据库,指向【所有任务】,然后单击【收缩数据库】命令。 要指定数据库的收缩量。 如果要收缩个别的数据库文件,请单击【收缩文件】。(2)使用DBCC 语句压缩数据库和数据文件USE USE xsmanageGoGoDBCC SHRINKF

82、ILE (DBCC SHRINKFILE (xsmanage,1),1)数据库名数据库名参数,压缩参数,压缩后的大小后的大小116二、二、 管理数据库管理数据库3. 分离与附加数据库(1)分离数据库SQLServerManagementStudio窗口窗口选中需要分离选中需要分离的数据库,并的数据库,并右击右击快捷菜单中选快捷菜单中选择【任务】择【任务】【分离】命令【分离】命令图图2-14分离数据库分离数据库117 默认情况下,分离操作将在分离数据库时保留过期的优化统计信息;如果要更新现有的优化统计信息,可启用【更新统计信息】复选框。 在【状态】列中如果是“未就绪”,则【消息】列将显示有关数据

83、库的超链接信息。在可以分离数据库之前,必须启用【删除连接】复选框来断开与所有活动链接的连接。若强行分离,则会出现错误提示。 如果“状态”栏显示“就绪”,表示可以正常分离。设置完毕后,单击【确定】按钮。分离成功后,在【对象资源管理器】中将不会出现被分离的数据库。图图2-15在数据库连接状态下分离数据库的错误提示在数据库连接状态下分离数据库的错误提示118二、二、 管理数据库管理数据库(2)附加数据库图图2-16附加数据库对话框附加数据库对话框【添加添加】按钮按钮打开打开SQLServerManagementStudio并并连接到数据库实例。连接到数据库实例。在【对象资源管理器在【对象资源管理器】

84、窗口中选中数据库实例】窗口中选中数据库实例下的数据库项,并右击。下的数据库项,并右击。在弹出的快捷菜单中在弹出的快捷菜单中选择【附加数据库】命令,选择【附加数据库】命令,打开【附加数据库】对话打开【附加数据库】对话框,如图框,如图2-16所示。所示。在【附加数据库】对在【附加数据库】对话框中,单击【添加】按话框中,单击【添加】按钮,打开【定位数据库文钮,打开【定位数据库文件】对话框。件】对话框。119二、二、 管理数据库管理数据库4. 删除与更名用户数据库(1)在SQL Server Management Studio中删除数据库已有数已有数据库据库在在SQLServerManagementS

85、tudio中中删除数据库只需展开【数删除数据库只需展开【数据库】目录,用鼠标右键据库】目录,用鼠标右键单击要删除的数据库,在单击要删除的数据库,在弹出的快捷菜单中选择【弹出的快捷菜单中选择【删除】命令,打开删除对删除】命令,打开删除对象对话框,如图象对话框,如图2-18所示。所示。再单击【确定】按钮,执再单击【确定】按钮,执行删除操作。行删除操作。图图2-18删除对象对话框删除对象对话框120二、二、 管理数据库管理数据库(2)使用Transact-SQL语句删除数据库【训练2-8】使用SQL语句删除一个示例数据库xsmanage:DROPDATABASExsmanage要删除的要删除的数据库

86、名数据库名删除数据库删除数据库的的SQL命令命令当数据库处于以下三种情况之一,不能当数据库处于以下三种情况之一,不能被删除:被删除:当用户正在使用此数据库时;当用户正在使用此数据库时;当数据库正在被恢复还原时;当数据库正在被恢复还原时;当数据库正在参与复制时。当数据库正在参与复制时。注意:系统数据库不能被删除。注意:系统数据库不能被删除。121二、二、 管理数据库管理数据库(3)数据库更名在重命名数据库之前,应该确保没有用户使用该数据库,而且数据库应该设置为 【单用户】模式。利用系统存储过程sp_renamedb可以修改数据库的名字,语法结构如下: sp_renamedb old_name ,

87、 newname 【训练2-9】将Library2数据库更名为Library_tempEXEC sp_renamedb Library2, Library_temp122能力拓展能力拓展123能力拓展能力拓展v查看SQL Server 2005系统数据库系统数据库是指随安装程序一起安装、用于协助SQL Server 2005系统共同完成管理操作的数据库,它们是SQL Server 2005运行的基础。数据库名称数据库名称作用作用Master记录SQL Server实例的所有系统级信息。Model用作SQL Server实例上创建的所有数据库的模板。Msdb用于SQL Server代理计划警报和

88、作业。Tempdb是一个工作空间,用于保存临时对象或中间结果集。Resource是一个只读数据库,包含SQL Server 2005 中所有系统对象。124创建和维护图书管理数据表创建和维护图书管理数据表任务三任务三125能力目标能力目标能力目标能力目标1能够使用能够使用SQLServerManagementStudio创建数据表;创建数据表;2能够使用能够使用CREATETABLE、ALTERTABLE和和DROPTABLE等等SQL语句进行数据表的创建、修语句进行数据表的创建、修改和删除操作;改和删除操作;3能够使用能够使用SQLServerManagementStudio进行数据表进行数

89、据表维护。维护。知识目标知识目标1熟悉表、关系模型、数据类型熟悉表、关系模型、数据类型等基本概念;等基本概念;2进一步熟悉进一步熟悉SQLServerManagementStudio的使用;的使用;3熟悉熟悉CREATETABLE、ALTERTABLE和和DROPTABLE等数据表维护语句。等数据表维护语句。126任务导入任务导入一个数据库一个数据库若干数据库表若干数据库表结构结构数据数据通常一个数据库是由若干通常一个数据库是由若干个相互关联的数据表组成的,个相互关联的数据表组成的,这些表分别存储不同的数据。这些表分别存储不同的数据。因此,为了完成整个数据库因此,为了完成整个数据库的建立工作,

90、我们还需要在的建立工作,我们还需要在建立数据库的基础上,进一建立数据库的基础上,进一步建立数据表。步建立数据表。建立数据表实际上需要做建立数据表实际上需要做两件事:一是创建表结构,两件事:一是创建表结构,包括确定表的数据项(字段)包括确定表的数据项(字段)、字段的类型、数据宽度、字段的类型、数据宽度、小数位数等等;二是向表添小数位数等等;二是向表添加数据。加数据。表建立后需要进行维护表建立后需要进行维护:表结构的维护,包括表结构的修改,表表结构的维护,包括表结构的修改,表的删除等等的删除等等表数据的维护,包括数据的增加、删除表数据的维护,包括数据的增加、删除和修改。和修改。127任务导入任务导

91、入1创建Library图书管理数据库中的5个表,表结构如下所示: 创建读者部门信息表department,将部门编号设置为主键,表结构如表3-1所示。 创建读者借阅卡信息表readers,将借阅卡编号设置为主键,表结构如表3-2所示。128任务导入任务导入129任务导入任务导入 创建书刊类型信息表type,设置类型编号为主键,表结构如表3-3所示。 创建书刊信息表books, 书刊编号为主键,表的结构如表3-4所示。130任务导入任务导入 创建书刊借阅信息表borrow,表的结构如表3-5所示。2对数据表进行简单的维护,包括查看表的属性、修改表的结构以及删除数据表。3以手工方式向数据表中添加数

92、据。131相关知识相关知识一、SQL Server的数据类型v数据类型就是以数据的表现事实和存储方式来划分数据库中的各类数据。v精心选择表列的数据类型是建立性能良好的表的前提。vSQL Server 2005提供的数据类型按照处理对象的不同,可以分为如表3-6所示的几大类。132任务导入任务导入分类分类数据类型数据类型整数数据类型int、smallint、tinyint、bigint浮点数据类型decimal、numeic、real、float字符数据类型char、nchar、varchar、nvarchar日期时间数据类型datetime、smalldatetime文本和图形数据类型 tex

93、t、ntext、image货币数据类型money、smallmoney位数据类型Bit二进制数据类型binary、varbinary特殊数据类型Cursor、 timestamp、 XML、 uniquedentifier、sql_variant、table用户自定义数据类型 sysname表表3-6SQLServer2005提供的数据类型提供的数据类型133相关知识相关知识1整数数据类型整数数据类型整数数据类型提供存储整数数值的方法,可以在整数上直接进行算术运算。(1)intint也可以写成integer,可以存储-231231-1范围内的任意整数。每个int 类型的数据占据4个字节的空间,

94、共32位,其中用后31位存储数字的绝对值,用最高位来表示正负号。(2)smallint134相关知识相关知识smallint存储215215-1之间的整数。每个smallint类型的数据占据2个字节,共16位,其中后15位存储绝对值,第1位存储正负号。(3)tinyinttinyint只能存储0255之间的整数。每个数据占1个字节的存储空间。(4)bigintbigint是整数数据类型中存储容量最大的一种,可以存储-263263-1之间的任意整数。每个bigint类型的数据占有8个字节的存储空间。135相关知识相关知识2浮点数据类型浮点数据类型浮点数据类型用于存储十进制的小数。分为精确数类型,

95、包括decimal和numeric;近似数类型,包括real和float。(1)decimal和numericdecimal和numeric数据类型的表示方式为decimal(p,s)或numeric(p,s)。使用decimal和numeric可以精确指定小数点两边的总位数(即精度,用p表示)和小数点右边的位数(即刻度,用s表示)。136相关知识相关知识(2)realreal类型的数据占用4个字节的存储空间,其数值范围在-3.4E+38到3.4E+38之间,并且精度可以达到7位。(3)float利用float来声明表列或变量时,可以指定用来存储按科学记数法记录的数据尾数的位数,如float(

96、n)(1n53)。当1n24时,float型数据用4个字节存储,精度可以达到7位。当25n53时或者n缺省,float型数据用8个字节存储,精度可以达到15位。表示的数的范围为-1.7E+3081.7E+308。137相关知识相关知识v近似数类型近似数类型的数据在SQL Server 2005中采用“上舍入”的方式进行存储,即只入不舍。例如:对3.149保留2位小数时,结果为3.15。近似数的数据要受到舍入误差的限制,因此由近似数据计算所返回的结果也可能不精确。由于近似数的这种特性,一般在货币运算上不使用它,但是科学计算或统计计算等不要求绝对精确的运算场合使用近似数据类型比较方便。138相关知

97、识相关知识3字符数据类型字符数据类型字符数据类型是使用最多的数据类型,它可以存储字母、数字和特殊符号。(1)char利用char数据类型存储数据时,每个字符占用一个字节的存储空间。char使用固定长度来存储字符,利用char来定义表列或变量时需要给定数据的最大长度,但是最多不能超过8000个字符。如果实际数据的长度小于给定的最大长度,则多余的部分用空格填充;如果实际数据的长度大于给定的最大长度,则超过的部分被截断。使用char类型的最大好处在于可以精确计算数据占有的空间,达到节省数据空间的目的。139相关知识相关知识(2)varcharvarchar数据类型的使用方式与char数据类型相似,与

98、char数据类型不同的是,varchar数据类型的存储空间可以随着数据字符数的不同而发生变化。例如,在定义学生姓名数据列时,将其定义成varchar(20),那么存储在姓名列上的数据最多可以达到20个字符,而在数据没有达到20个字符时,并不会在多余的字节上填充空格。Varchar可以表示为Varchar(n),其中n的取值为18000。当存储字节大于8000时应表示为Varchar(max),max指示最大存储大小是231-1个字节。存储大小是输入数据的实际长度加2个字节。140相关知识相关知识(3)ncharnchar与char相似,不同的是,nchar数据类型最多不能超过4000个字符,因

99、为它采用的是unicode标准字符集。unicode标准规定每个字符占用两个字节的存储空间。使用nchar的好处是因为其使用两个字节作为存储单位,则一个存储单位的容量就大大增加了,可以将全世界的语言文字都保存在内,而不会出现编码冲突。(4)nvarcharnvarchar与varchar相似,不同的是,nvarchar采用的也是unicode标准字符集。与varchar一样,它也可以表示为nvarchar(n)或nvarchar(max),其中n在14000之间,max指示最大存储大小是231-1个字节。存储空间大小是所输入字符的两倍加2个字节。141相关知识相关知识4日期时间数据类型日期时间

100、数据类型SQL Server提供的日期/时间数据类型可以存储日期和时间的组合信息。SQL Server 2005可以自动将其格式化,而且还可以使用特殊的日期和时间函数操作存储在这些类型中的数据。(1)datetimedatetime数据类型可以存储从1/1/1753到12/31/9999的日期和时间,并精确到1/300秒。datetime数据类型占用8个字节。(2)smalldatetimesmalldatetime数据类型与datetime数据类型相似,但其表示范围较小,存储从1/1/1900到6/6/2079,精确只能到分。smalldatetime数据类型占用4个字节。142相关知识相关

101、知识SQL Server在用户没有指定时间部分时,会自动设置smalldatetime和datetime数据的时间为00:00:00。在SQL Server 2005中,日期和时间有特定的输入格式,如下所示:英文英文+数字:数字:此格式中可用英文全名或缩写,而且不分大小写,年和月、日之间可不用逗号,年份可是4位或2位,为2位时,若值小于50则视为20xx年;若大于或等于50则视为19xx年;若日期部分省略,则视为当月的1号。例:June 21 2005 Oct 12 1988 January 2005 2005 July2005 May 1 2005 1 Sep 99 June July 00

102、143相关知识相关知识数字数字+分隔符:分隔符:允许在不同时间单位间使用斜线、下划线和小数点来分隔时间单位。例:YMD:2005/6/24 2005-6-24 2005.6.24 MDY:6/24/2005 6-24-2005 6.24.2005 DMY:24/6/2005 24-6-2005 24.6.2005纯数字格式:纯数字格式:纯数字格式以连续的4位、6位或8位数字来表示日期。若输入的是6位或8位,系统将按YMD格式来识别,并且月和日期都是用2位数字来表示;若输入的数字是4位数,则系统认为它代表年份,其月份和日期默认为此年度的1月1日。例: 2005年6月24日 9912121999年

103、12月12日144相关知识相关知识时间输入格式:时间输入格式:输入时间必须按照小时分钟秒毫秒的顺序输入,在其间用冒号隔开,可将毫秒部分用小数点隔开。145相关知识相关知识5文本和图形数据类型文本和图形数据类型为了方便存储文本、图像等大型数据,SQL Server还提供了三种专门的文本和图形数据类型。在SQL Server 2005中文本和图形数据类型允许存储的数据的最大长度可达2GB。事实上,存储在表格中的数据只是一个16个字节的指针。这些指针指向数据实际存储的数据页面,通过指针可以检索到相应的数据。(1)texttext数据类型用来存储大量的文本信息,其理论容量可以达到231-1个字节,但在

104、实际应用中要根据硬盘的存储容量而确定。在定义Text数据类型时,不需要指定数据长度,SQL Server会根据数据的长度自动为其分配空间。146相关知识相关知识(2)ntextntext数据类型采用unicode标准字符集,用于存储大容量文本数据。其理论上的容量为230-1个字节。(3)Image用于存储照片、目录图片或者图画,其理论容量为231-1个字节。 使用存储在文本或图形列中的数据时,由于它们存储的数据量太大,所以在进行SQL语句的编写过程中可能要受到限制。此外,在文本或图形数据类型定义的列上不能创建索引、主键或外键。147相关知识相关知识6货币数据类型货币数据类型货币数据类型专门用来

105、货币数据处理。(1)money类型money数据类型分别存储在两个4字节的整型值中。前面的一个4字节表示货币的整数部分,后面4个字节表示货币的小数部分。(2)smallmoney类型smallmoney数据类型分别存储在两个2字节的整型值中。前面的一个2字节表示货币的整数部分,后面2个字节表示货币的小数部分。当为money或smallmoney的表输入数据时,必须在有效位置前面加一个货币单位符号。148相关知识相关知识7位数据类型位数据类型Bit称为位数据类型,有两种取值:0和1。如果一个表中有8个或更少的bit列时,用1个字节存放。如果有916个bit列时,用2个字节存放。在输入0以外的其它

106、值时,系统均把它们当1看待。149相关知识相关知识8二进制数据类型二进制数据类型所谓二进制数据是一些用十六进制表示的数据。(1)binarybinary数据类型的定义形式为binary(n),数据的存储长度是固定的,即n+4个字节。二进制数据类型的最大长度为8KB,常用于存储图像等数据。(2)varbinary varbinary 数据类型的定义形式为varbinary(n)或varbinary(max),数据的存储长度与上面所说的varchar数据类型一样是变化的。在输入二进制常量时,需在该常量前面加一个前缀0x。 150相关知识相关知识9特殊数据类型特殊数据类型类型类型含义含义Cursor

107、用于为变量或OUTPUT参数指定的数据类型,这些参数包含对游标的引用timestamptimestamp类型也称作时间戳数据类型,是一种自动记录时间的数据类型,主要用于在数据表中记录其数据的修改时间XML存储XML实例uniqueidentifieruniqueidentifier类型也称作唯一标识符数据类型sql_variantsql_variant数据类型可以用于存储除文本、图形数据和timestamp类型数据外的其它任何合法的SQL Server数据tabletable数据类型用于存储对表或者视图处理后的结果集,就象一个临时的表格,它一般只应用在编程环境中151相关知识相关知识二、建立和

108、维护数据表的T-SQL语句1创建表的T-SQL语句CREATE TABLEdatabase_name:指明新建的表属于哪个数据:指明新建的表属于哪个数据库。库。owner:指明数据库所有者的名字。:指明数据库所有者的名字。table_name:指明新建的表的名字。:指明新建的表的名字。column_name:指定列(字段)的名称。:指定列(字段)的名称。computed_column_expression:指定计算列:指定计算列的列值表达式。计算列是物理上并不存储在表中的的列值表达式。计算列是物理上并不存储在表中的虚拟列。计算列由同一表中的其它列通过表达式计虚拟列。计算列由同一表中的其它列通过

109、表达式计算得到。表达式可以是非计算列的列名、常量、函算得到。表达式可以是非计算列的列名、常量、函数、变量,也可以是用一个或多个运算符连接的上数、变量,也可以是用一个或多个运算符连接的上述元素的任意组合。述元素的任意组合。Table_constraint:指定表的约束。:指定表的约束。ON|DEFAULT:指定存储表的文件组。如:指定存储表的文件组。如果省略了该句或选择果省略了该句或选择DEFAULT选项,则新建的表选项,则新建的表将存储在默认的文件组中。将存储在默认的文件组中。TEXTIMAGE_ON|DEFAULT:指定文本和:指定文本和图形数据类型定义的数据存储的文件组。如果省略图形数据类

110、型定义的数据存储的文件组。如果省略了该句,则这些数据将和表一起存储在相同的文件了该句,则这些数据将和表一起存储在相同的文件组中。组中。CREATETABLEdatabase_name.owner.|owner.table_name(|column_nameAScomputed_column_expression|:=CONSTRAINTconstraint_name|PRIMARYKEY|UNIQUE,.nON|DEFAULTTEXTIMAGE_ON|DEFAULT152相关知识相关知识2修改表结构的T-SQL语句ALTER TABLE(1)修改列属性v【例3-1】将学生基本情况表xsjbqk

111、中的学生姓名列改成最大长度为20的varchar型数据,且不能为空。表中的每一列都有其属性,这些属性包括列名、表中的每一列都有其属性,这些属性包括列名、数据类型、数据长度以及是否允许为空值,修改列数据类型、数据长度以及是否允许为空值,修改列属性使用属性使用ALTERTABLE语句的语句的ALTERCOLUMN子句。子句。ALTERTABLE表名表名ALTERCOLUMNUSE StudentsysALTER TABLE xsjbqk ALTER COLUMN Stud_name varchar(20) NOT NULL153相关知识相关知识(2)添加列v【例3-2】向学生基本情况表中添加电子邮

112、件地址(Stud_Email)列,数据类型为可变长字符型,长度50,允许为空(NULL)。表中的每一列都有其属性,这些属性包括列名、表中的每一列都有其属性,这些属性包括列名、数据类型、数据长度以及是否允许为空值,修改列数据类型、数据长度以及是否允许为空值,修改列属性使用属性使用ALTERTABLE语句的语句的ALTERCOLUMN子句。子句。ALTERTABLE表名表名ADDCOLUMNUseStudentsysALTERTABLExsjbqkADDStud_Emailvarchar(50)NULL154(2)添加列向表中增加一列时,应使新增加的列有默认值或向表中增加一列时,应使新增加的列有默

113、认值或允许为空值,允许为空值,SQLServer将向表中已存在的行填将向表中已存在的行填充新增列的默认值或空值。充新增列的默认值或空值。ALTERTABLE表名表名ADDCOLUMN155相关知识相关知识(3)删除列v【例3-3】删除Studentsys数据库学生表xsjbqk刚刚建立的Stud_Email字段。USEStudentsysALTERTABLExsjbqkDROPCOLUMNStud_Email可以使用可以使用ALTERTABLE语句的语句的DROPCOLUMN子句删除表中的列。子句删除表中的列。ALTERTABLE表名表名DROPCOLUMN,156相关知识相关知识3删除表的T

114、-SQL语句DROP TABLE可以用一条DROP TABLE语句删除多个表,表名之间要用逗号隔开。但是用这种方法不能删除系统表。当一个表被删除后,它的数据、结构定义、约束、索引都将被永久地被删除。如果一个表被其他表通过外键约束使用,则必须先删除定义外键约束的表或删除其外键约束,否则删除将会失败。v【例3-4】删除Studentsys数据库中的cjb表DROPTABLE表名表名USEStudentsysDROPTABLEcjb157v注意:CREATE TABLE语句、ALTER TABLE语句和DROP TABLE语句都是表结构的创建和维护语句,而对表数据的维护包括添加、修改、删除数据则需要

115、使用另外的T-SQL语句。158任务实施任务实施一、一、创建图书管理数据表创建图书管理数据表二、二、修改图书管理数据表修改图书管理数据表三三 添加表数据添加表数据任务实施任务实施159一、一、创建图书管理数据表创建图书管理数据表创建表的过程是创建表的过程是数据库物理实施数据库物理实施中最关键的一步中最关键的一步160一、一、创建图书管理数据表创建图书管理数据表1.使用SQL Server Management Studio创建数据表【训练3-1】用管理工具SQL Server Management Studio在Library数据库中创建读者部门信息表department。图图3-1新建表新建

116、表(1)选择要创建表的数选择要创建表的数据库,这里选择据库,这里选择Library。(2)在数据库在数据库Library的的展开列表中选择【表】,展开列表中选择【表】,并用鼠标右击,从打开的并用鼠标右击,从打开的快捷菜单中选择【新建表快捷菜单中选择【新建表】命令,如图】命令,如图3-1所示。所示。161一、一、创建图书管理数据表创建图书管理数据表 在出现的表设计器窗格中设置表,如图3-2所示图图3-2创建表创建表列名列名“deptid”数据类数据类型型“char”允许空允许空值值“”【属性窗属性窗口口】长度长度“4”重复设置重复设置“Identity”等其他字段等其他字段162一、一、创建图书

117、管理数据表创建图书管理数据表保存表。右击表设计器选项卡,在弹出的快捷菜单中选择【保存(S)Table_1】,系统弹出保存对话框。 在如图3-4所示的对话框中输入表名“department”,单击【确定】按钮,则该表就被保存到数据库Library中了。图图3-3保存数据表保存数据表图图3-4选择名称对话框选择名称对话框163一、一、创建图书管理数据表创建图书管理数据表2使用T-SQL语句创建数据表USELibraryGOCREATETABLEtype(typeidchar(4)PRIMARYKEY,Typenamevarchar(20)NOTNULL)GO说明:在创建书刊类别信息表的T-SQL语

118、句中使用了PRIMARY KEY关键字,表示“typeid”为主键。 164任务实施任务实施一、一、创建图书管理数据表创建图书管理数据表二、二、修改图书管理数据表修改图书管理数据表三三 添加表数据添加表数据任务实施任务实施165二、二、修改图书管理数据表修改图书管理数据表1.查看表属性表表3-5表属性窗口表属性窗口【常规常规】选项选项属性窗口属性窗口1662.修改表结构(1)利用SQL Server Management Studio与创建表的方法一样。(2)使用T-SQL语句 【训练3-3】将读者借阅卡信息表中的tel(电话)列改成最大长度为20的varchar型数据,且不能为空。USE l

119、ibraryUSE libraryGOGOALTER TABLE readers ALTER COLUMN tel varchar(20) NOT NULLALTER TABLE readers ALTER COLUMN tel varchar(20) NOT NULLGOGO167【训练3-4】向书刊数据表中添加出版日期(bookdate)列,要求为日期型数据。USE libraryUSE libraryGO GO ALTER TABLE ALTER TABLE books ADD ADD bookdate smalldatetime Null smalldatetime NullGOGO【

120、训练3-5】如果创建书刊表books时没有定义主键约束,可以使用下列语句定义bookID列为主键。USE libraryUSE libraryGO GO ALTER TABLE ALTER TABLE books ADD CONSTRAINT PK_bookID PRIMARY KEY( ADD CONSTRAINT PK_bookID PRIMARY KEY(bookID) )GOGO1683.删除数据表(1)使用SQL Server Management Studio删除表图图3-7删除表删除表选中要删除的表右击,选选中要删除的表右击,选择【删除】选项,打开择【删除】选项,打开“删删除对象

121、除对象”窗口,窗口,查看该表删除后对数据库查看该表删除后对数据库的哪些对象产生影响,【显的哪些对象产生影响,【显示依赖关系】查看与该表有示依赖关系】查看与该表有依赖关系的数据库对象。依赖关系的数据库对象。确定要删除该表,则单击确定要删除该表,则单击【确定】按钮来完成对表的【确定】按钮来完成对表的删除,如图删除,如图3-7所示。所示。169二、修改图书管理数据表二、修改图书管理数据表(2)使用T-SQL 语句删除表DROP TABLE departmentDROP TABLE departmentGOGO可以用一条DROP TABLE语句删除多个表,表名之间要用逗号隔开。但是用这种方法不能删除系

122、统表。170任务实施任务实施一、一、创建图书管理数据表创建图书管理数据表二、二、修改图书管理数据表修改图书管理数据表三三 添加表数据添加表数据任务实施任务实施171三三 添加表数据添加表数据1.手工添加表数据【训练3-7】使用对象资源管理器向读者借阅卡信息表中输入数据。在对象资源管理器中,在对象资源管理器中,右键单击需要添加数据右键单击需要添加数据的表,在弹出的快捷菜的表,在弹出的快捷菜单中选择【打开表】命单中选择【打开表】命令,打开对应的表,此令,打开对应的表,此时就可以依次向表中输时就可以依次向表中输入数据。入数据。图图3-8向读者借阅卡信息表输入数据向读者借阅卡信息表输入数据172三三

123、添加表数据添加表数据2.查看表(1)查看表结构 使用对象资源管理器查看。在对象资源管理器中,右键单击需要查看结构的表,在弹出的快捷菜单中选择【修改】命令,打开数据表窗口,即可查看数据表结构的信息。 使用系统存储过程sp_help查看。语法格式如下:【训练3-8】查看已创建的读者借阅卡信息表readers的结构。EXECSp_helptable_name EXEC sp_help readers173三三 添加表数据添加表数据(2)查看表中的数据 使用对象资源管理器查看表中的数据。在对象资源管理器中,右键单击需要查看数据的表,在弹出的快捷菜单中选择【打开表】命令,打开数据表窗口,即可查看数据表中

124、的数据信息。 使用T-SQL语句查看表中的数据。【训练3-9】使用SELECT语句查看已创建的读者借阅卡信息表readers中的数据。SELECT * FROM readersGO174能力拓展能力拓展175能力拓展能力拓展1标识字段IDENTITY的应用v在创建表结构时,每一个表都可以建立一个标识列,该字段包含由系统自动生成的能够标识表中每一行数据的唯一序列值,可以避免人工添加序号带来的序号冲突问题。v将一个列作为表中的标识列,可以利用列属性窗口进行设置。此时,需要将该列的“标识规范”设置为“是”,同时设置“标识增量”和“标识种子”。v也可以使用T-SQL语句定义该列的IDENTITY属性其

125、中其中SEED是标识种子,即表中的第一行数据的是标识种子,即表中的第一行数据的标识列的取值,默认值为标识列的取值,默认值为1;INCREMENT是标识是标识增量,即每一个新标识比上一个增长多少,默认值增量,即每一个新标识比上一个增长多少,默认值为为1。IDENTITY(SEED,INCREMENT)其中其中SEED是标识种子,即表中的第一行数据是标识种子,即表中的第一行数据的标识列的取值,默认值为的标识列的取值,默认值为1;INCREMENT是是标识增量,即每一个新标识比上一个增长多少,标识增量,即每一个新标识比上一个增长多少,默认值为默认值为1。IDENTITY(SEED,INCREMENT

126、)176能力拓展能力拓展【训练3-10】创建一个带有标识字段的教师基本情况表teacher,该表的结构如表3-7所示:表表3-7教师基本情况表教师基本情况表teacher177能力拓展能力拓展选择要创建选择要创建表的数据库表的数据库表设计器表设计器窗格窗格标识规范、标识规范、标识增量、标识增量、标识种子标识种子图图3-9创建标识字段创建标识字段178能力拓展能力拓展v使用IDENTITY列时,应该注意以下几点:每张表只允许一个IDENTITY列; 该列必须使用下列数据类型之一:decimal、int、numeric、smallint 和tinyint; 该列必须设置成不允许为空值,且不能有默认

127、值。IDENTITY列的数据类型,在一定程度上决定了表格中能容纳的数据行的最大数目。例如,由于tinyint列只能存储256个不同的值,范围从0255。所以,如果用tinyint作IDENTITY列的数据类型,也就限制了该表的数据行的数据最多不超过255行。当表中的数据行超过了IDENTITY列规定的范围,就不能向表中插入新的数据。服务器不会自动去寻找因为删除或其他原因跳过而没有使用IDENTITY列的值(如目前IDENTITY列的数据为1、2、3,如果将IDENTITY列为3的记录删除,则再添加数据时IDENTITY列将从4开始)。即使删除了表中的所有行,使表成为一张空表,SQL Serve

128、r也不会从头开始使用那些曾经被用过的IDENTITY数值。179能力拓展能力拓展2使用系统存储过程sp_rename修改数据表名和表列可使用系统存储过程sp_rename修改数据表和字段名称。sp_rename语法如下old_name为要修改的对象名称,为要修改的对象名称,new_name为对象的新名称,为对象的新名称,object_type用于指定要修改的对象的类型,可以为下列值用于指定要修改的对象的类型,可以为下列值:COLUMN:指定修改字段名称。:指定修改字段名称。DATABASE:指定修改数据库名称。:指定修改数据库名称。INDEX:指定修改索引名称。:指定修改索引名称。OBJECT

129、:指定修改约束(:指定修改约束(CHECK、FOREIGNKEY、PRIMARYKEY、UNIQUE)、用户表、视图、存储过程、触发器和规则等对象。)、用户表、视图、存储过程、触发器和规则等对象。USERDATATYPE:指定修改用户自定义数据类型名称。:指定修改用户自定义数据类型名称。在修改表名称时可以不指定对象类型。在修改表名称时可以不指定对象类型。EXECsp_renameold_name,new_name,object_type180能力拓展能力拓展【训练3-11】使用系统存储过程sp_rename将“教师基本情况表”名称修改为“教师表”。EXEC sp_rename 教师基本情况表,

130、 教师表【训练3-12】使用系统存储过程sp_rename将“教师表”的“所在单位”字段名称修改为“部门”。 。EXEC sp_rename 教师表.所在单位 ,部门,COLUMN 181维护数据完整性维护数据完整性任务四任务四182能力目标和知识目标能力目标和知识目标能力目标能力目标1能够熟练建立表的主键;能够熟练建立表的主键;2能够分析并建立表之间的关系;能够分析并建立表之间的关系;3能够使用约束、默认值和规则能够使用约束、默认值和规则来实现数据的完整性;来实现数据的完整性;4能够使用能够使用ALTERTABLE、CREATERULE和和CREATEDEFAULT等等SQL语句进行数语句进

131、行数据完整性的维护。据完整性的维护。知识目标知识目标1熟悉实体完整性、参照完整性和域完整性等数据完整性的概念;2了解数据完整性的实现机制。183任务导入任务导入v在设计表时应该考虑对哪些列进行约束设置以达到数据完整性的目的。所谓数据完整性,是指存储在数据库中数据的正确性和一致性。设计数据完整性的目的是为了保证数据库中的数据的质量,防止数据库中存在不符合规定的数据,防止错误信息的输入与输出。例如Library数据库中应有如下约束:在读者借阅卡表readers中,读者的编号必须唯一,不能重复。在读者借阅卡表readers中,读者的姓名不能为空值。在读者借阅卡表readers中,借阅数量不能为负数。

132、在借阅信息表borrow中,读者的借阅卡编号和图书编号应分别在读者借阅卡表readers和书刊信息表books中。184v本项目要求完成如下任务:1按以下关系设置各表的主键,各表的主键(下划线表示,其中借阅信息表的主键为借阅卡编号和图书编号)如下:部门信息(部门编号,部门名称)读者借阅卡信息(借阅卡编号,姓名,部门编号,电话, Email,借阅数量)书刊类别信息(类别编号,类别名称)书刊信息(图书编号,图书名称,类别编号,出版社,作者,单价)借阅信息(借阅卡编号,图书编号,借阅日期,还书日期)185能力拓展能力拓展2将图书管理数据库中借阅信息表borrow的读者借阅卡编号和书刊编号分别设置为读

133、者借阅卡信息表readers和书刊信息表books的外键。3按相同的方法分别给数据库中其它表建立外键关系。4为部门信息表department中的部门名称创建一个唯一性约束。5向读者借阅卡信息表readers中添加约束,要求输入的电子邮件地址必须包含符号。6为借阅信息表borrow中的借阅日期字段创建一个默认值,默认日期为当前日期(getdate())。7为借阅信息表borrow中的借阅日期字段创建一个检查约束,使借阅日期不大于“2009-12-31”186相关知识相关知识一、数据的完整性用户定义的完整性是针对用户定义的完整性是针对某一具体关系数据库的约某一具体关系数据库的约束条件,它反映某一具

134、体束条件,它反映某一具体应用所涉及的数据必须满应用所涉及的数据必须满足的语义要求足的语义要求。关系模型中实体与实体关系模型中实体与实体间的联系是用关系来描述间的联系是用关系来描述。参照完整性就是涉及两参照完整性就是涉及两个或两个以上关系的一致性个或两个以上关系的一致性维护维护。SQLServer中提供了主中提供了主键和外键约束来维护参照完键和外键约束来维护参照完整性。整性。域完整性是对表中的某些域完整性是对表中的某些数据的域值使用的有效性数据的域值使用的有效性的验证限制,它反映了业的验证限制,它反映了业务的规则。务的规则。SQLServer中提供了检中提供了检查约束等来维护域完整性。查约束等来

135、维护域完整性。一个基本关系通常对应现一个基本关系通常对应现实世界的一个实体集实世界的一个实体集。现实世界中的实体是可区现实世界中的实体是可区分分。SQLServer中提供了主键中提供了主键约束和唯一性约束来维护实约束和唯一性约束来维护实体完整性体完整性。实体实体完整性完整性参照参照完整性完整性用户用户自定义自定义完整性完整性域域完整性完整性187相关知识相关知识二、数据完整性的实现1SQL中的完整性约束机制约束机制约束机制主键(主键(PrimaryKey)外键(外键(ForeignKey)默认(默认(Default)唯一性(唯一性(Unique)检查(检查(Check)188相关知识相关知识序

136、号序号约束机制约束机制含义含义1主键(Primary Key)约束利用表中的一列或多列组合来唯一地识别表中的每一行数据。2外键(Foreign Key)约束主要用来维护两个表之间的一致性关系。外键的建立主要是通过将一个表A中的主键所在列包含在另一个表B中,这些列就是表B的外键。可以称表A为主键表(或父表),表B为外键表(或子表)。3唯一性(Unique)约束主要是用来确保不受主键约束的列上的数据的唯一性。使用唯一性约束和主键约束都可以保证数据的唯一性。但它们之间有明显的不同4检查(Check)约束可以用于限制列上可以接受的数据值,通过使用逻辑表达式来限制列上可以接受的值。5默认(Default

137、)约束在输入操作中没有提供输入值时,系统将自动提供给某列的默认值。189相关知识相关知识2实现数据完整性的T-SQL语句(1)建立表的完整性语句AS:计算字段是特殊的字段,该字段:计算字段是特殊的字段,该字段的值由表中的其他字段通过计算得出。的值由表中的其他字段通过计算得出。CONSTRAINT约束名约束名PRIMARYKEYCLUSTERED|NONCLUSTERED(主键所在的列主键所在的列名名):用于定义主键约束,其中:用于定义主键约束,其中CLUSTERED|NONCLUSTERED是指定索引的类是指定索引的类型,型,CLUSTERED为默认值为默认值,表示是聚集索引;表示是聚集索引;

138、CONSTRAINT约束名约束名UNIQUECLUSTERED|NONCLUSTERED(唯一约束所在唯一约束所在的列名的列名):用于定义唯一性约束;:用于定义唯一性约束;CONSTRAINT约束名约束名FOREIGNKEY(从表外从表外键的列名键的列名)REFERENCES主表名主表名(主表主键的列名主表主键的列名):用于定义外键约束;:用于定义外键约束;CONSTRAINT约束名约束名CHECKNotForReplication(逻辑表达式逻辑表达式):用于定义检查约束;:用于定义检查约束;CONSTRAINT约束名约束名DEFAULT约束表达式约束表达式For列名列名:用于定义默认约束;

139、:用于定义默认约束;CREATETABLE数据库名数据库名.表的拥有者表的拥有者.表名表名(|ASCONSTRAINT约束名约束名NULL|NOTNULLIDENTITY(初值初值,步长步长)COLLATE|DEFAULT缺省值缺省值|CHECK(范围表达式范围表达式)|PRIMARYKEYCLUSTERED|NONCLUSTERED(主键所在的列主键所在的列名名)|UNIQUECLUSTERED|NONCLUSTERED(唯唯一约束所在的列名一约束所在的列名)|FOREIGNKEY(从表外键的列名从表外键的列名)REFERENCES主表名主表名(主表主键的列名主表主键的列名)190相关知识相

140、关知识(2)修改表的数据完整性语句WITHCHECK|WITHNOCHECK:用于表示:用于表示是否使用新建的约束去检验数据表中的原有记是否使用新建的约束去检验数据表中的原有记录,默认为录,默认为WITHCHECK,表示要检查,表示要检查,WITHNOCHECK则表示不检查。则表示不检查。ADDCONSTRAINT:表示增加一个约束。:表示增加一个约束。DROPCONSTRAINT:表示删除一个约束。:表示删除一个约束。ALTERTABLE表名表名WITHCHECK|WITHNOCHECKADDCONSTRAINT约束名约束名约束类型约束类型DROPCONSTRAINT约束名约束名191任务实

141、施任务实施一、一、利用约束维护数据完整性利用约束维护数据完整性二、二、利用默认值维护数据完整性利用默认值维护数据完整性任务实施任务实施192一、一、利用约束维护数据完整性利用约束维护数据完整性1. 建立主键约束(1)利用SQL Server Management Studio创建主键建立数据库的表时,在指建立数据库的表时,在指定的列上右击,在弹出的定的列上右击,在弹出的快捷菜单中选择【设置主快捷菜单中选择【设置主键】命令,则该列就被设键】命令,则该列就被设置为主键,并且在该列的置为主键,并且在该列的开头会出现一个类似钥匙开头会出现一个类似钥匙的图标。的图标。在该列上再次右击,则弹在该列上再次右

142、击,则弹出的快捷菜单选择第一项出的快捷菜单选择第一项【移去主键】命令,将取【移去主键】命令,将取消对该列的主键约束。消对该列的主键约束。图图4-2利用利用SQLServerManagementStudio创建主键创建主键193一、利用约束维护数据完整性一、利用约束维护数据完整性(2)利用T-SQL语句创建主键 【训练4-1】创建一个读者部门信息表department,以部门编号deptID为主键。USE LibraryGOCREATE TABLE department(deptID char(4) NOT NULL,dept varchar(20) NOT NULL, CONSTRAINT P

143、K_deptid PRIMARY KEY (deptID)GO194一、利用约束维护数据完整性一、利用约束维护数据完整性v此外,也可以用下列的简洁方式定义主键。在这个例子中没有为主键提供约束名,SQL Server 会自动为它提供一个名字。USE LibraryGOCREATE TABLE department (deptID char(4) PRIMARY KEY,dept varchar(20) NOT NULL,)GO195一、利用约束维护数据完整性一、利用约束维护数据完整性 【训练4-3】向已有表中添加主键,如果创建部门信息表department时没有定义主键约束,可以使用下列语句定义

144、deptID主键。USE LibraryGOALTER TABLE department ADD CONSTRAINT PK_ID PRIMARY KEY(deptID)GOv向已存在的表中的某一列或某几列添加主键约束,表中已有的数据在这几列上需要满足两个条件:v不能有重复的数据;v不能有空值。196一、利用约束维护数据完整性一、利用约束维护数据完整性【训练4-4】删除主键约束,删除department表中deptID列上的主键约束。USE LibraryGOALTER TABLE department DROP CONSTRAINT PK_ID PRIMARY KEY(deptID)197一

145、、利用约束维护数据完整性一、利用约束维护数据完整性2. 建立外键约束(1)利用SQL Server Management Studio为书刊信息表books创建外键约束图图4-3外键关系对话框外键关系对话框在在SQLServerManagementStudio中,中,右击要建立外键的表右击要建立外键的表。在快捷菜单中选择【修改在快捷菜单中选择【修改】命令,在表设计器中打开】命令,在表设计器中打开该表。该表。在表设计器菜单中单击【在表设计器菜单中单击【关系】命令,打开关系】命令,打开“外键关外键关系系”对话框,单击【添加】对话框,单击【添加】按钮。该关系将以系统提供按钮。该关系将以系统提供的名称

146、显示在的名称显示在“选定的关系选定的关系”列表中,名称格式为列表中,名称格式为FK_books_books,其中,其中books是外键表的名称。是外键表的名称。198一、利用约束维护数据完整性一、利用约束维护数据完整性单击单击“外键关系外键关系”对话框右对话框右侧网格中的侧网格中的“表和列规范表和列规范”,再单击该属性右侧的省略,再单击该属性右侧的省略号按钮【号按钮【】,打开】,打开“表和表和列列”对话框。对话框。在在“表和列表和列”对话框中,从对话框中,从“主键表主键表”下拉列表中选择下拉列表中选择主键表,这里选择图书类别主键表,这里选择图书类别表表type。在下方的网格中选择要分配在下方的

147、网格中选择要分配给表的主键列给表的主键列“typeID”。在右侧相邻的网格中选择外在右侧相邻的网格中选择外键表的相应外键列键表的相应外键列“typeID”,表设计器会给,表设计器会给出建议的关系名称出建议的关系名称“FK_books_type”,如图,如图4-4所示。所示。图图4-4“表和列表和列”对话框对话框199一、利用约束维护数据完整性一、利用约束维护数据完整性已已创建外键约创建外键约束并建立关系束并建立关系图图4-5设置外键约束设置外键约束200一、利用约束维护数据完整性一、利用约束维护数据完整性图图4-3外键关系对话框外键关系对话框【删除】按【删除】按钮删除关系钮删除关系对对“插入操

148、作插入操作”和和“更新操作更新操作”选择选择“无操作无操作”、“层层叠叠”、“设置空设置空”和和“设置默认值设置默认值”等选项。等选项。【强制外键约束】【强制外键约束】为为“是是”,则创建,则创建外键约束时对现存外键约束时对现存数据进行检查数据进行检查【强制复制约【强制复制约束】为束】为“是是”,则在进行数,则在进行数据复制时,进据复制时,进行外键约束检行外键约束检查查201一、利用约束维护数据完整性一、利用约束维护数据完整性(2)利用T-SQL语句创建外健约束 【训练4-5】在已创建的书刊借阅信息表borrow上,在图书编号bookID列上创建外键与书刊信息表books中的图书编号bookI

149、D相关联,在借阅卡编号readerID列上创建外键与读者借阅卡信息表readers中的借阅卡编号readerID相关联。USE libraryGOALTER TABLE borrow ADD CONSTRAINT FK_borrow_books FOREIGN KEY(bookID) REFERENCES books(bookID)GOALTER TABLE borrow ADD CONSTRAINT FK_borrow_readers FOREIGN KEY(readerID) REFERENCES readers(readerID)GO202一、利用约束维护数据完整性一、利用约束维护数据完

150、整性3. 建立CHECK约束(1)用SQL Server Management Studio创建检查约束为借阅信息表borrow中的借阅日期字段创建一个检查约束,使借阅日期不大于“2009-12-31”。v在SQL Server Management Studio的对象资源管理器中,右击要建立Check约束的表,例如书刊借阅信息表borrow,在快捷菜单中选择【修改】命令,在表设计器中打开该表。v在“表设计器”工具栏中选择【管理Check约束】命令,或者右键单击已打开表的空白处,在快捷菜单中单击【Check约束】命令,打开“Check约束”对话框。203一、利用约束维护数据完整性一、利用约束维

151、护数据完整性【添加】按钮【添加】按钮系统提供的名称系统提供的名称格式为格式为CK_borrow,其,其中中borrow是所选是所选表的名称表的名称图图4-6设置设置Check约束约束表达式表达式“borrowdate= 0)GO205一、利用约束维护数据完整性一、利用约束维护数据完整性 【训练4-7】向读者借阅卡信息表readers中添加约束,要求输入的电子邮件地址必须包含符号。USE libraryGOALTER TABLE readers ADD CONSTRAINT CK_ email CHECK (Email like % )GO206一、利用约束维护数据完整性一、利用约束维护数据完整

152、性4. 建立UNIQUE约束(1)利用SQL Server Management Studio为部门信息表中的部门名称创建唯一性约束v在SQL Server Management Studio的对象资源管理器中,右击要建立唯一性约束的表,例如department,在快捷菜单中选择【修改】命令,在表设计器中打开该表。v右键单击已打开表的空白处,在快捷菜单中单击【索引/键】命令,打开“索引/键”对话框。单击【添加】按钮,此时将添加一个唯一键或索引,该索引以系统提供的名称显示在“选定的主/唯一键或索引”列表中,名称格式为UQ_department ,其中department是所选表的名称。如图4-7

153、所示。207一、利用约束维护数据完整性一、利用约束维护数据完整性图图4-7设置唯一性(设置唯一性(Unique)约束)约束单击单击打开打开“索引列索引列”对对话框话框是唯一的是唯一的”属性修属性修改为改为“是是”索引名称修索引名称修改为改为UQ_department208一、利用约束维护数据完整性一、利用约束维护数据完整性(2)利用T-SQL语句创建唯一性约束【训练4-8】在已建立的部门信息表的“部门名称”创建一个唯一性约束。USE LibraryGOALTER TABLE department ADDConstraint UQ_department Unique(dept)GOCREATE

154、TABLE department(deptID char(4) PRIMARY KEY,dept Varchar(20)Unique)209任务实施任务实施一、一、利用约束维护数据完整性利用约束维护数据完整性二、二、利用默认值维护数据完整性利用默认值维护数据完整性任务实施任务实施210二、二、利用默认值维护数据完整性利用默认值维护数据完整性1. 建立默认值约束(1)利用SQL Server Management Studio创建默认约束 【训练4-9】为借阅信息表borrow中的借阅日期字段创建一个检查约束,使借阅日期默认为当前日期。图图4-8设置默认约束设置默认约束在数据库表设计或修改在数据

155、库表设计或修改界面上,选中要创建默认界面上,选中要创建默认约束的列属性设置中的【约束的列属性设置中的【默认值或绑定】文本框中默认值或绑定】文本框中输入默认的表达式。输入默认的表达式。默认表达式也可以是一默认表达式也可以是一个常数值,例如将借书数个常数值,例如将借书数量的默认值设置为量的默认值设置为0,可,可以在以在borrownum列的默认列的默认值框中直接输入值框中直接输入“0”。211二、利用默认值维护数据完整性二、利用默认值维护数据完整性(2)利用T-SQL语句创建唯默认约束 【训练4-10】修改读者借阅卡信息表,创建默认约束,借书数量(borrownum)列默认为0。ALTER TAB

156、LE readers ADD CONSTRAINT De_readers DEFAULT 0 for borrownumGOCREATE TABLE readers( borrownum smallint DEFAULT 0,)212能力拓展能力拓展213能力拓展能力拓展1. 规则与数据完整性v在SQL Server 2005中,除了可以使用约束来维护数据的完整性外,还可以使用规则维护数据的完整性。v规则是单独存储的独立的数据库对象,虽然它也是对数据库存储在表中的列或用户自定义数据类型中的值的规定和限制,但是它与其作用的数据表或用户自定义数据类型是相互独立的,即数据表或用户自定义数据对象的删除

157、修改不会对与之相连的规则产生影响。v规则和约束可以同时使用,相比较而言,CHECK约束是用于限制字段值的更标准的方法,但CHECK约束不能直接作用于用户自定义数据类型。214能力拓展能力拓展v在SQL Server 2005中,可以使用CREATE RULE语句和系统存储过程sp_bindrule来实现规则的应用。(1)创建规则ule_name表示新建的规则名;表示新建的规则名;condition_expression表示定义规则的条件表示定义规则的条件CREATERULErule_nameAScondition_expressionrule_name表示已创建的规则名;表示已创建的规则名;t

158、able_name表示要绑定的数据表,表示要绑定的数据表,column_name为要绑定的表的数据列。为要绑定的表的数据列。EXECsp_bindrulerule_name,table_name.column_name(2)绑定规则v在SQL Server 2005中,可以使用CREATE RULE语句和系统存储过程sp_bindrule来实现规则的应用。215能力拓展能力拓展 【训练4-11】在数据库library中创建一个规则,并将其绑定到books表中的单价(price)列上,使得用户输入的图书单价在0200之间,否则提示输入无效。USE libraryGOCREATE RULE r_p

159、rice AS price=0 and price=200GOEXEC sp_bindrule r_price , books.price创建了规则r_price,并将其绑定到books表的price列上216创建和管理索引创建和管理索引任务五任务五217能力目标和知识目标能力目标和知识目标能力目标能力目标1 能够使用SQL Server Management Studio在表中建立必要的索引;2能够使用CREATE INDEX、DROP INDEX等SQL语句建立、修改和删除索引。知识目标知识目标1熟悉索引的概念、作用和分类;2了解合理使用索引的准则。218任务导入任务导入v数据库设计者的一

160、个重要责任就是正确定义具有优化功能的数据表。SQL Server 2005提供了表的索引和关键字机制来帮助SQL Server优化查询响应的速度。在前面的任务中我们已经创建了数据库和数据表,在此基础上我们还需要建立必要的索引,以便优化数据库的性能,提高数据的查询速度以及数据处理(包括数据表的连接等)的速度。在本项目中我们的任务主要有以下几点:1在SQL Server Management Studio 中为数据表创建索引;2使用CREATE INDEX命令创建索引;3修改索引;4删除索引。219任务导入任务导入v对Library数据库进行如下操作:1为书刊数据表中的作者字段创建一个降序、填充因

161、子为60%的非聚集索引。2为读者信息表的部门编号创建一个降序、填充因子为60%、重新计算统计项的非唯一、非聚集索引。3使用创建索引向导为读者信息表的姓名创建一个唯一性的非聚集索引。4使用T-SQL语句为书刊数据表中书的价格创建一个升序、填充因子为70%的非聚集索引。5将读者信息表中的姓名索引改为非唯一、填充因子60%。220相关知识相关知识一、索引概述1索引的概念v对数据库最频繁的操作就是数据的查询,如果没有索引,则在查询时SQL Server要对整个表进行扫描。当表中的数据很多时,搜索数据就需要很长的时间。索引是一种依赖于表建立的、存储在数据库中的独立文件,它保存着表中排序的索引列,并且记录

162、了索引列在数据表中的物理存储位置,实现了表中数据的逻辑排序。221相关知识相关知识索引是一种依赖于索引是一种依赖于数据数据库库表建立的、存储在数表建立的、存储在数据库中的独立文件据库中的独立文件。索引索引组织了一个数据表组织了一个数据表中的关键值列表。通过中的关键值列表。通过这个列表,这个列表,SQLServer可以快速地查询到需要可以快速地查询到需要的数据页,从而得到查的数据页,从而得到查询结果。询结果。聚集索引聚集索引非聚集索引非聚集索引唯一性索引唯一性索引视图索引视图索引全文索引全文索引索引的类型索引的类型222相关知识相关知识2索引的类型类型类型含义含义聚集索引聚集索引在聚集索引中,行

163、的物理存储顺序与索引逻辑顺序完全相同,即在聚集索引中,行的物理存储顺序与索引逻辑顺序完全相同,即索引的顺序决定了表中行的存储顺序,因为行是经过排序的,所索引的顺序决定了表中行的存储顺序,因为行是经过排序的,所以每个表只能有一个聚集索引。以每个表只能有一个聚集索引。非聚集索引非聚集索引非聚集索引并不是在物理上排列数据,即索引中的逻辑顺序并不非聚集索引并不是在物理上排列数据,即索引中的逻辑顺序并不等同于表中行的物理顺序,索引仅仅记录指向表中行的位置的指等同于表中行的物理顺序,索引仅仅记录指向表中行的位置的指针,这些指针本身是有序的,通过这些指针可以在表中快速定位针,这些指针本身是有序的,通过这些指

164、针可以在表中快速定位数据。数据。唯一索引唯一索引按照索引实现的功能还可以划分为唯一性索引和非唯一性索引。按照索引实现的功能还可以划分为唯一性索引和非唯一性索引。一个唯一性索引能够保证在创建索引的列或多列的组合上不包括一个唯一性索引能够保证在创建索引的列或多列的组合上不包括重复的数据,聚集索引和非聚集索引都可以是唯一性索引。重复的数据,聚集索引和非聚集索引都可以是唯一性索引。视图索引视图索引在视图中也可以建立索引,称作视图索引在视图中也可以建立索引,称作视图索引全文索引全文索引全文索引是一种特殊类型的基于标记的功能性索引,是实现全文全文索引是一种特殊类型的基于标记的功能性索引,是实现全文检索功能

165、的。全文检索只对字符模式进行检索检索功能的。全文检索只对字符模式进行检索223相关知识相关知识3创建索引的注意事项v创建索引要花费时间和占用存储空间;v索引虽然加快了检索速度,却减慢了数据修改的速度。以下情况适合创建索引以下情况适合创建索引不考虑建立索引不考虑建立索引的情况的情况用作查询条件的列,如主键,由于主键可以唯一表示行,通过主键可以快速定位到表的某一行,因此,一般要在主键上创建索引;定义外键的列可以建立索引,外键的列通常用于数据表与数据表之间的连接,在其上建立索引可以加快数据表的连接;频繁按范围搜索的列,如学生基本很少或从来不作为查询条件的列;在小表中通过索引查找行可能会比简单地进行全

166、表扫描还慢;只从很小的范围内取值的列;数据类型为text、ntext、image或bit的列上不要创建索引,因为这些类型的数据列的数据量要么很大,要么很小,不利于224相关知识相关知识v聚集索引查询速度更快,但只能创建一个;v非聚集索引维护比较容易,可以创建249个。动作描述动作描述使用聚集索引使用聚集索引使用非聚集索引使用非聚集索引列经常被分组排序列经常被分组排序返回某范围内的数据返回某范围内的数据一个或极少不同值一个或极少不同值少数目的不同值少数目的不同值大数目的不同值大数目的不同值频繁更新的列频繁更新的列外键列外键列主键列主键列频繁修改索引列频繁修改索引列225相关知识相关知识二、索引的

167、创建和使用v创建索引有直接和间接两种方法。直接创建索引就是使用命令或者在SQL Server Management Studio 中直接创建索引;间接创建索引就是通过创建数据表而附加创建了索引,例如在表中定义主键约束(Primary Key)或唯一性约束(Unique)时,系统自动创建了索引。1建立索引的T-SQL语句CREATE INDEXCREATEUNIQUECLUSTERED|NONCLUSTEREDINDEXindex_nameONtable_name |view_name (column_name ASC|DESC,.n )UNIQUE表示创建唯一性索引;表示创建唯一性索引;CLU

168、STERED表示创建聚集索引;表示创建聚集索引;NONCLUSTERED表示创建非聚集索引;表示创建非聚集索引;ON表示可以在表或视图上创建索引,这里表示可以在表或视图上创建索引,这里指定表或视图名称和相应的列名称;指定表或视图名称和相应的列名称;index_name用于指定所创建的索引名称;用于指定所创建的索引名称;ASC表示索引为升序排序,表示索引为升序排序,DESC表示索引表示索引为降序排序,默认为为降序排序,默认为ASC。226相关知识相关知识2修改索引的T-SQL语句ALTER INDEXALTERINDEXindex_name|ALLONREBUILDWITH(,.n)|PARTI

169、TION=partition_numberWITH(,.n)|DISABLE|REORGANIZEPARTITION=partition_numberWITH(LOB_COMPACTION=ON|OFF)|SET(,.n)index_name为索引文件名;为索引文件名;object为索引所在的对象名,即数据库中为索引所在的对象名,即数据库中的指定表或视图名称;的指定表或视图名称;REBUILD指定将使用相同的列、索引类型、指定将使用相同的列、索引类型、唯一性属性和排序顺序重新生成索引;唯一性属性和排序顺序重新生成索引;DISABLE表示禁用索引表示禁用索引REORGANIZE指定将重新组织的索

170、引叶级;指定将重新组织的索引叶级;SET(,.n)指定指定不重新生成或重新组织索引的索引选项。不重新生成或重新组织索引的索引选项。227相关知识相关知识3删除索引的T-SQL语句DROP INDEXDROPINDEXtable_name.index_nameGOtable_name用于指定索引列所在的表;用于指定索引列所在的表;index_name用于指定要删除的索引名称。用于指定要删除的索引名称。DROPINDEX命令不能删除由命令不能删除由CREATETABLE或者或者ALTERTABLE命令创建命令创建的主键或者唯一性约束索引,也不能删除系统表中的索引。的主键或者唯一性约束索引,也不能删

171、除系统表中的索引。可以用一条可以用一条DROPINDEX语句删除多个索引,索引之间要用逗号分开。语句删除多个索引,索引之间要用逗号分开。u可以使用系统存储过程给索引更名,其语法格式如下:EXECSp_renametable_name.index_name,new_nametable_name.index_name为原有索引名,为原有索引名,new_name为新索引名为新索引名228任务实施任务实施一、一、创建索引创建索引二、二、管理索引管理索引任务实施任务实施229一、一、创建索引创建索引1.使用SQL Server Management Studio向导建立索引(1)用SQL Server

172、Management Studio在建表时创建索引v【训练5-1】在建立读者借阅信息表readers时,按读者编号readerID建立主键约束,索引方式为聚集索引;按读者姓名Name建立唯一性约束,索引方式为非聚集索引。在在SQLServerManagementStudio的对象资源管理器中,右击要建的对象资源管理器中,右击要建立约束的表立约束的表readers,在快捷菜单中选择【修改】命令,在表设计器中打,在快捷菜单中选择【修改】命令,在表设计器中打开该表。开该表。在表设计器中,选择在表设计器中,选择“readerID”字段,在【表设计器】工具栏中选字段,在【表设计器】工具栏中选择【设置主键

173、】命令,则在择【设置主键】命令,则在“readerID”字段的前面多了一个小钥匙的字段的前面多了一个小钥匙的图标,表示已创建了主键。图标,表示已创建了主键。在任意列上右击,在弹出的快捷菜单中选择【索引在任意列上右击,在弹出的快捷菜单中选择【索引/键】命令,打开【键】命令,打开【索引索引/键】对话框。键】对话框。在【索引在【索引/键】对话框中单击【添加】按钮。创建索引。键】对话框中单击【添加】按钮。创建索引。230一、创建索引一、创建索引【是唯一的】文【是唯一的】文本框中选择本框中选择“是是”来创建一个唯来创建一个唯一性约束。一性约束。创建索引的列创建索引的列name。在索引名称中在索引名称中为

174、索引命名。为索引命名。图图5-1创建表主键索引和唯一索引创建表主键索引和唯一索引231一、创建索引一、创建索引(2)用SQL Server Management Studio在已存在的表上创建索引v【训练5-2】为书刊数据表中的作者字段创建一个降序、填充因子为60%的非聚集索引。在对象资源管理器窗口中在对象资源管理器窗口中选中要创建索引的表选中要创建索引的表books,并展开出现并展开出现“索引索引”列;列;用鼠标右击用鼠标右击“索引索引”列,列,在快捷菜单中选择【新建索引在快捷菜单中选择【新建索引】命令;打开【新建索引】对】命令;打开【新建索引】对话框,话框,在【新建索引】对话框中在【新建索

175、引】对话框中单击【添加】按钮,打开【从单击【添加】按钮,打开【从dbo.books中选择列】对中选择列】对话框,在该对话框列表中选择话框,在该对话框列表中选择要创建索引的列要创建索引的列author,(可,(可以选择多列)。单击【确定】以选择多列)。单击【确定】按钮退出。按钮退出。图图5-2新建索引(常规)新建索引(常规)【索引名称【索引名称】INDEX_author索引类型索引类型232一、创建索引一、创建索引图图5-3新建索引(选项)新建索引(选项)【选项】选项卡,对创建的索【选项】选项卡,对创建的索引进一步编辑引进一步编辑【设置填充因子】选项,它用【设置填充因子】选项,它用来指定在创建索

176、引的过程中,来指定在创建索引的过程中,对各索引页的叶级进行填充的对各索引页的叶级进行填充的程度。该项默认值为程度。该项默认值为0,表示将,表示将叶子节点索引页全部填满。设叶子节点索引页全部填满。设置为置为0与设置为与设置为100意义完全相意义完全相同。同。数据表中的数据不经常改动,数据表中的数据不经常改动,最好将填充因子设置得大一点,最好将填充因子设置得大一点,相反则将填充因子设置得小一相反则将填充因子设置得小一点。填充因子只在创建索引时点。填充因子只在创建索引时才有用。才有用。【设置填充因子【设置填充因子】【选项【选项】233一、创建索引一、创建索引2. 使用T-SQL语句建立索引v【训练5

177、-3】为读者借阅卡信息表(readers)中的电话号(tel)创建一个唯一性的非聚集索引。UNIQUE关键字代表创建唯一性索引,NONCLUSTERED关键字代表创建非聚集索引,该关键字可以省略,SQL Server默认创建非聚集索引,Ix_tel是用户自定义的索引名。CLUSTERED关键字代表创建聚集索引,DESC代表索引的排序方法是降序,默认是升序ASC。USElibraryGOCREATEUNIQUENONCLUSTEREDINDEXIx_telOnreaders(tel)GO234一、创建索引一、创建索引v【训练5-4】为书刊信息表中的书刊名称创建一个非唯一性的非聚集索引。With子

178、句中的Drop Existing是指如果表中已经存在同名的索引则将其删除,重建索引。USElibraryGOCREATENONCLUSTEREDINDEXIx_booknameOnbooks(bookName)WithDropExistingGO235任务实施任务实施一、一、创建索引创建索引二、二、管理索引管理索引任务实施任务实施236二、二、管理索引管理索引1查看和修改索引 使用SQL Server Management Studio查看和修改索引在在SQLServerManagementStudio对对象资源管理器窗口中,象资源管理器窗口中,可以展开表的索引列,可以展开表的索引列,看到已创

179、建的索引。看到已创建的索引。右键单击索引名称,右键单击索引名称,在弹出的快捷菜单中选在弹出的快捷菜单中选择【属性】命令,可以择【属性】命令,可以打开【索引属性】对话打开【索引属性】对话框。框。创建索引的创建索引的脚本脚本索引索引选项选项图图5-4查看索引脚本查看索引脚本237二、管理索引二、管理索引 使用系统存储过程Sp_helpindex查看索引信息USE libraryGOEXEC Sp_helpindex readers读者借阅卡信息读者借阅卡信息表上所有索引的表上所有索引的名称、类型和建名称、类型和建索引的列索引的列图图5-5利用存储过程查看索引信息利用存储过程查看索引信息238二、管

180、理索引二、管理索引 使用T-SQL语句禁用及重新生成索引索引数据更新后可能会分散在硬盘的各个位置,由此产生碎片,并影响查询性能。可以使用重新生成索引来删除索引碎片。重新生成索引将原有的索引删除并重新创建一相同的索引。可以使用SQL Server Management Studio来重新生成索引,也可以使用T-SQL语句重新生成索引。v【训练5-5】使用T-SQL语句重新生成library数据库中books表里的“Ix_bookname”索引,并设置索引填充,填充因子为60。USE libraryALTER INDEX Ix_bookname ON books REBUILD WITH (PAD

181、_INDEX=ON,FILLFACTOR=60)GO239二、管理索引二、管理索引v【训练5-6】使用T-SQL语句禁用library数据库中books表里的“Ix_bookname”索引。禁用索引表示禁止用户使用该索引,可以防止用户在查询记录时访问该索引,被禁用的索引要重新生成后才能被再次启用。USE libraryALTER INDEX Ix_bookname ON books DISABLEGO240二、管理索引二、管理索引2. 删除索引v【训练5-7】使用SQL Server Management Studio删除索引在SQL Server Management Studio对象资源管

182、理器窗口中,可以展开指定表的索引列,右键单击对应的索引名,在弹出的快捷菜单中单击【删除】按钮,在弹出的【删除对象】对话框中单击【确定】即可删除索引。v【训练5-8】使用T-SQL语句删除已创建的Ix_bookname索引USE libraryGODROP INDEX books.Ix_bookname241能力拓展能力拓展242v全文索引1全文索引的概念v所谓全文搜索,即在整个数据库中搜索,它是通过使用全文索引来实现的。一个全文索引中存储了表的数据中有确切含义的字符串以及其在表的列中的位置等信息。243v全文索引是由Microsoft SQL Server 全文搜索服务创建和维护的。全文搜索就

183、是利用全文索引中的信息查找含有特定字符串的数据行。在对大量的文本数据进行查询时,全文索引可以大大提高查询的性能。v全文索引能够对数据库中的字符(如Varchar、text、ntext等)、image等类型列进行索引,并通过全文索引实现全文搜索查询。v在数据库中,一个表只能有一个全文索引,一个数据库则可以有多个全文索引,这些全文索引包含在一个或多个全文索引目录中。v在系统中要使用全文索引必须首先启动全文搜索功能,即启动相应的服务。在此基础上创建全文目录和全文索引,这样就可以使用全文搜索查询了。2442全文搜索查询操作(1)启动全文搜索 在创建全文目录前应启动全文搜索功能,而启动全文搜索功能有多种

184、方式,既可以通过操作系统的【管理工具】直接启动“SQL Server Fulltext Seach”服务,也可以利用T-SQL语句来实现。我们这里使用SQL Server Management Studio来完成。在SQL Server Management Studio对象资源管理器窗口中,展开“管理”列,右键单击“全文索引”,在弹出的快捷菜单中单击【启动】命令,即启动了全文搜索功能。(2)创建全文索引目录 在SQL Server Management Studio对象资源管理器窗口中,选择本地数据库实例,依次选择【数据库】【Library】【存储】【全文目录】。245v右击“全文目录”,在

185、弹出的快捷菜单中单击【新建全文目录】命令,出现如图5-6所示的【新建全文目录】窗口。全文目录名全文目录名称和文件存称和文件存放位置放位置【文件组文件组】下拉列下拉列表表【所有者所有者】文本框文本框【设置为设置为默认目录默认目录】246(3)创建全文索引 在SQL Server Management Studio对象资源管理器窗口中,依次选择【数据库】【Library】【表】【Books】,右键单击Books,在弹出的快捷菜单中选择“全文索引”“定义全文索引”,出现创建全文索引向导界面,如图5-7所示。根据向导指引,依次选择唯一索引、选择要加入到全文索引的字段、定义全文索引的更新方式、选择全文索

186、引存储的全文目录,完成全文索引的创建。(4)使用全文搜索查询 进行全文搜索需要在SELECT命令的WHERE子句中使用CONTAINS或FRETEXT关键字。【例5-1】搜索书刊数据表Books中的图书名称中含有“计算机”的记录。SELECT*FROMBooksWHERECONTAINS(bookname,计算机计算机)此查询将把名称中包含此查询将把名称中包含“计算机计算机”的图书检索出来。的图书检索出来。247v【例5-2】使用FRETEXT查询Books中的图书名称中含有“计算机”的记录。SELECT*FROMBooksWHEREFRETEXT(bookname,计算机计算机)此查询不仅将把名称中包含此查询不仅将把名称中包含“计算机计算机”的图书检索出来,同时还会将含的图书检索出来,同时还会将含有有“计计”、“算算”和和“机机”的图书检索出来。的图书检索出来。248

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号