
数据库项目化教程.ppt
248页SQL_Server数据库项目化教程数据库项目化教程项目目录项目目录创建图书管理数据库一一使用图书管理数据库二二管理图书管理数据库三三开发图书管理数据库四四项目一项目一创建图书管理数据库创建图书管理数据库任务目录任务目录安装和使用SQL Server20051创建图书管理数据库2创建和维护图书管理数据库表3维护数据完整性4创建和管理索引5安装和使用安装和使用SQL SERVER 2005任务一任务一能力目标和知识目标能力目标和知识目标能力目标能力目标1.能够进行.能够进行SQL Server 2005的安装;的安装;2.能够熟练启动、停止.能够熟练启动、停止SQL Server服务;服务;3.能够注册服务器;.能够注册服务器;4.能够初步掌握.能够初步掌握SQL Server Management Studio的使用知识目标知识目标1.熟悉数据库的基本概念;.熟悉数据库的基本概念;2.熟悉.熟悉SQL Server 2005的的系统需求和版本信息;系统需求和版本信息;3.熟悉.熟悉SQL Server 2005的的常用工具常用工具任务导入任务导入v每个图书馆都有许多藏书,如何对这些图书进行有效管理?§人工管理方式§数据库管理方式——美国微软公司的SQL Server 2005是一种性价比较好的数据库管理系统,目前在中小型企业中应用较为广泛。
任务导入任务导入1.安装SQL Server 2005;2.熟悉SQL Server Management Studio的功能和使用方法;3.在SQL Server 2005中注册服务器;4.启动、停止SQL Server服务相关知识相关知识一、 Server 2005简介1. SQL Server 2005概述SQL Server 2005是美国微软公司在2005年推出的关系数据库管理系统SQL Server 2000SQL Server6.5/7.0SQL Server 4.2SQL ServerSQL Server 2005客户机客户机/服务器(服务器(C/S))ü服务器存储数据库,可以被多台客户机访问ü数据库应用的处理过程分布在客户机和服务器上ü使用Transact-SQL语言在服务器和客户机间传送请求和应答浏览器浏览器/服务器(服务器(B/S))ü 数据库和应用程序均存放在服务器端ü客户端主要通过浏览器和网络,连接到Web服务器浏览网页,查询和操作数据库SQL Server 2005的两种工作的两种工作模式模式一、一、 Server 2005简介简介一、一、 Server 2005简介简介Business Intelligence Development Studio办公公Office企企业协同解决方案同解决方案SharePoint Portal Server 2003第三方第三方应用用Third Party Apps数据数据库引擎(引擎(SQL Server))Management Tools集成服集成服务((Integration Services))分析服分析服务((Analysis serversOLAP and Data Mining))报表服表服务Reporting Services通知服通知服务((Notification Services))复制服复制服务((Replication Services))关系型数据关系型数据库((Relational Database))表表1-1 SQL Server 2005 数据平台的布局数据平台的布局2. SQL Server 2005的组成一、一、 Server 2005简介简介⑴ 数据库引擎(Database Engine) 数据库引擎是用于存储、处理和保护数据的核心服务。
SQL Server服务就是SQL Server 2005的数据库引擎,主要完成以下工作:•设计并创建数据库以保存系统所需的关系表或XML文档•提供访问和更改数据库中存储数据的途径包括可实现网站或处理数据的应用程序,实用工具•为单位或客户部署实现的系统•提供日常管理支持以优化数据库的性能一、一、 Server 2005简介简介⑵ 复制服务(Replication Services)复制是在多个数据库之间和多个数据库对象之间进行数据的复制和分发,并且在复制和分发的过程中保持数据同步和一致性的技术⑶分析服务(Analysis Services) 分析服务是一种核心服务,可支持对业务数据的快速分析,以及为商业智能应用程序提供联机分析处理(OLAP)和数据挖掘功能一、一、 Server 2005简介简介⑷ 集成服务(Integration Services) 集成服务是用于生成企业级数据集成和数据转换解决方案的平台,可以支持数据仓库和企业范围内数据集成的抽取、转换和加载功能使用集成服务可解决复杂的业务问题⑸ 报表服务(Reporting Services) 报表服务是基于服务器的报表平台,提供来自关系和多维数据源的综合数据报表,可创建、管理和发布传统的、可打印的报表和交互的、基于Web的报表。
⑹ 通知服务(Notification Services) 通知服务是用于开发、生成和发送通知的应用程序的平台,也是运行这些应用程序的引擎⑺ 全文检索 SQL Server 包含对SQL Server数据表中基于纯字符的数据进行全文查询所需的功能使用全文检索可以快速、灵活地为存储在SQL Server数据库中的文本数据的基于关键字的查询创建索引一、一、 Server 2005简介简介⑻ 管理工具(Management Tools) SQL Server 包含的集成管理工具可用于高级数据库管理和优化,同时又与其他工具,如Microsoft 操作管理器(MOM)和系统管理服务器(SMS)紧密集成在一起⑼ 开发工具(Business Intelligence Development Studio) SQL Server 为数据库引擎、数据抽取、转换和装载(ETL)、数据挖掘、OLAP和报表提供了和Microsoft Visual Studio 相集成的开发工具,以实现端到端的应用程序开发能力一、一、 Server 2005简介简介二、二、SQL Server 2005的版本和安装要求的版本和安装要求二、SQL Server 2005的版本和安装要求1. SQL Server 2005的版本和组件SQL Server 2005共有共有6个版本,个版本,SQL Server 2005的不同的不同版本用于满足企业版本用于满足企业和个人的不同需求。
和个人的不同需求二、二、SQL Server 2005的版本和安装要求的版本和安装要求2. SQL Server 2005的系统需求⑴ 硬件要求SQL Server 版本版本企业版企业版/开发版开发版/标准版标准版工作组版工作组版简易版简易版处理器类型处理器类型Pentium III或或更更高高速速兼兼容处理器容处理器Pentium III或或更更高高速速兼容处理器兼容处理器PentiumIII或或更更高高速速兼容处理器兼容处理器处理器速度处理器速度最最低低600MHz建建议议1GHz或更高或更高最最 低低 600MHz建建 议议1GHz或更高或更高最最 低低 600MHz建建 议议1GHz或更高或更高内内存存((RAM))最最小小512MB建建议议1GB或或更大更大最最小小512MB建建议议1GB或更大或更大最最 小小 192MB建建 议议512MB或更大或更大二、二、SQL Server 2005的版本和安装要求的版本和安装要求⑵ 操作系统要求操作系统操作系统企业版企业版开发版开发版标准版标准版工作组版工作组版简易版简易版Windows 2000不支持不支持不支持不支持不支持不支持不支持不支持不支持不支持Windows 2000 Professional Edition SP4不支持不支持支持支持支持支持支持支持支持支持Windows 2000 Server SP4支持支持支持支持支持支持支持支持支持支持Windows 2000 Advanced Server SP4支持支持支持支持支持支持支持支持支持支持Windows 2000 Datacenter Edition SP4支持支持支持支持支持支持支持支持支持支持Windows XP Home Edition SP2不支持不支持支持支持不支持不支持不支持不支持支持支持Windows XP Professional Edition SP2不支持不支持支持支持支持支持支持支持支持支持Windows 2003 Server SP1支持支持支持支持支持支持支持支持支持支持Windows 2003 Edition SP1支持支持支持支持支持支持支持支持支持支持二、二、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.0三、三、SQL Server 2005的常用工具的常用工具三、SQL Server 2005的常用工具1.SQL Server 2005的配置工具图图1-1 SQL Server 2005 提供的配置工具提供的配置工具SQL Server配置管理器,用配置管理器,用于配置于配置SQL Server 服务和网服务和网络连接。
络连接用于将错误通过网络发布给用于将错误通过网络发布给Microsoft建立在建立在SQL Server 数据库引数据库引擎之外的其他服务擎之外的其他服务用于创建、删除和管理用于创建、删除和管理Notification Services 实例用于配置用于配置SQL Server 2005 的报表服务的报表服务三、三、SQL Server 2005的常用工具的常用工具2.SQL Server 2005的性能工具图图1-2SQL Server 2005 提供的性能具提供的性能具用来捕获数据库服务器在运用来捕获数据库服务器在运行过程中产生的事件的工具行过程中产生的事件的工具探查的事件可以是连接服务探查的事件可以是连接服务器、登录系统、执行器、登录系统、执行Transact-SQL语句等操作语句等操作可以完成帮助用户分析工作可以完成帮助用户分析工作负荷、提出创建高效率索引负荷、提出创建高效率索引的建议等功能的建议等功能三、三、SQL Server 2005的常用工具的常用工具3.SQL Server Management StudioSQL Server Management Studio是用来访问、配置和管理SQL Server数据库的最重要的集成化工具,通过它可以访问SQL Server数据库服务器提供的所有服务。
服务器控制台管理服务器控制台管理查询分析(查询分析(SQL和和MDX))来自关系引擎和来自关系引擎和Analysis services的的分析事件分析事件“分型记录仪分型记录仪”和和“捕获重放捕获重放”功能功能三、三、SQL Server 2005的常用工具的常用工具4.命令提示实用工具图图1-3 SQLCMD命令使用方法命令使用方法SQL Server 2005提供非常多的提供非常多的命令行工具程序命令行工具程序如:ü bcp.exeüdta.exeüdtexec.exe、、dtutil.exeürsconfig.exe、、keymgmt.exeüSqlCmd.exeü……三、三、SQL Server 2005的常用工具的常用工具5.SQL Server联机丛书图图1-4 SQL Server 2005 联机丛书联机丛书SQL Server Books OnLine,简称,简称BOL,,向向SQL Server用户提供了完整的用户提供了完整的SQL Server 参考文档,便于参考文档,便于SQL Server 数据库的使用者根据数据库的使用者根据自己的需要进行查询和检索自己的需要进行查询和检索。
四、四、SQL Server2005的配置的配置四、SQL Server2005的配置1.配置服务.配置服务 配置服务主要是用来管理配置服务主要是用来管理SQL Server 2005服务的启动状态以及服务的启动状态以及使用何种帐户启动使用何种帐户启动SQL Server 2005提供了服务配置工具提供了服务配置工具SQL Server Configuration Manager,,打开后可以看到与打开后可以看到与SQL Server 2005相关的服务,通过属性窗口即相关的服务,通过属性窗口即可进行配置可进行配置 配置服务器是为了充分利用配置服务器是为了充分利用SQL Server 2005的系统资源、的系统资源、设置设置SQL Server 2005服务器默服务器默认行为的过程配置服务器包括认行为的过程配置服务器包括注册服务器、启动、停止、暂停注册服务器、启动、停止、暂停服务器,以及服务器属性配置等服务器,以及服务器属性配置等工作工作2.配置服务.配置服务器器任务实施任务实施一、安装一、安装SQLSQL Server 2005Server 2005二、使用二、使用 SQL Server Management Studio SQL Server Management Studio 三、注册服务器三、注册服务器任务实施任务实施一、安装一、安装SQL Server 2005⑴ 在CD-ROM中插入Microsoft SQL Server 2005所选择版本的光盘(或者使用硬盘程序),启动安装程序。
⑵ 根据自己计算机的配置选择32位或64位版本安装⑶ 在出现如图1-8所示的“最终用户许可协议”对话框一、安装一、安装SQL Server 2005图图1-8 “最终用户许可协议最终用户许可协议”对话框对话框选择选择“我我接受许可接受许可条款和条条款和条件件”单击单击“下一步下一步”按钮一、安装一、安装SQL Server 2005⑷ 出现的“安装必备组件”对话框,开始安装必要的组件等待)(等待)……⑸ 安装完毕后,单击【下一步】按钮,会出现“欢迎使用SQL Server 2005安装向导”的界面 单击【下一步】,打开“系统配置检查”对话框,如图1-10所示 一、安装一、安装SQL Server 2005v“系统配置检查”界面将扫描用于安装该软件的计算机是否满足硬件和软件要求,检测是否存在可能阻止安装程序运行的情况只有显示“成功”或者“警告”才可以继续安装,任何一项显示“失败”都将无法继续安装图图1-10 “系统配置检查系统配置检查”对话框对话框一、安装一、安装SQL Server 2005⑹单击【下一步】按钮,出现“注册信息”对话框⑺ 输入注册信息后,单击【下一步】按钮,出现“要安装的组件”对话框⑻ 在“要安装的组件”对话框中,选择要安装的组件。
若要显示更详细的安装项目,可单击【高级】按钮,有选择性地安装需要的组件部分一、安装一、安装SQL Server 2005灰色表示当前系统灰色表示当前系统不能安装这个组件不能安装这个组件选中相应选中相应的复选框,的复选框,表示需要表示需要安装组件安装组件进一步选进一步选择组件图图1-12 “要安装的组件要安装的组件”对话框对话框一、安装一、安装SQL Server 2005单击【下一步】按钮,出现“实例名”对话框⑼ 在“实例名”对话框中,为安装的软件选择默认实例或命名实例§实例实例就是虚拟的SQL Server 2005 服务器§SQL Server 2005 允许在同一台计算机上安装多个实例,每一个实例必须有一个属于它的唯一的名字SQL Server 2005的默认实例是MSSQLSERVER§要安装新的实例,则单击“命令实例”单选项,然后在文本框中输入唯一的实例名一、安装一、安装SQL Server 2005安装新的安装新的实例,可实例,可以选择以选择“命名实例命名实例”默认实例名是默认实例名是“MSSQLSERVER”图图1-13 “实例名实例名”对话框对话框一、安装一、安装SQL Server 2005单击【下一步】按钮,出现“服务帐户”对话框⑽ “服务账户”对话框用于设置登录时使用的帐户。
§默认“使用内置系统帐户”这里选择“使用内置系统账户/本地系统”,表示每一项服务都是使用登录本机的用户§如果是域用户,可以选择“使用域用户帐户”单选项§如果选用“使用域用户帐户”,则还需要在对应位置输入域用户名称、密码和域信息一、安装一、安装SQL Server 2005定义服务定义服务帐户和服帐户和服务的对应务的对应关系关系选择选择“内内置系统用置系统用户户”或者或者是是“域帐域帐户户”自动启自动启动的服动的服务选项务选项图图1-15 “服务帐户服务帐户”对话框对话框一、安装一、安装SQL Server 2005单击【下一步】按钮,出现“身份验证模式”对话框⑾ 在“身份验证模式”对话框中,选择要用于SQL Server安装的身份验证模式§两种身份验证模式:Windows身份验证模式和混合模式§Windows身份验证模式表明将使用Windows的安全机制维护SQL Server的登录§混合模式则或者使用Windows的安全机制,或者使用SQL Server定义的登录ID和密码选择“混合模式”,则必须输入并确认SQL Server系统管理员(sa)的密码一、安装一、安装SQL Server 2005使用操使用操作系统作系统的用户的用户登录登录使用操作系使用操作系统或者统或者SQL Server定定义的用户登义的用户登录,录,必须输入必须输入sa密码密码图图1-16 “身份验证模式身份验证模式”对话框对话框一、安装一、安装SQL Server 2005单击【下一步】按钮,出现 “排序规则设置”对话框。
⑿ “排序规则设置”对话框用于指定SQL Server实例的排序规则单击【下一步】按钮,的“错误和使用情况报告设置”对话框⒀ “错误和使用情况报告设置”对话框,用于设置是否将运行过程中产生的错误和使用情况发送给微软公司单击【下一步】按钮,出现 “准备安装”对话框一、安装一、安装SQL Server 2005⒁ “准备安装”对话框显示要安装的所有组件单击【安装】按钮,就开始安装进程了等待)……⒂ 安装完毕后会出现“完成Microsoft SQL Server 2005安装” 对话框,单击【完成】按钮退出安装至此,Microsoft SQL Server 2005安装完毕任务实施任务实施一、安装一、安装SQLSQL Server 2005Server 2005二、使用二、使用 SQL Server Management Studio SQL Server Management Studio 三、注册服务器三、注册服务器任务实施任务实施二、使用二、使用 SQL Server Management Studio1.启用SQL Server Management Studio§在使用Microsoft SQL Server 2005客户端的时候,必须与Microsoft SQL Server 2005服务器连接§连接到服务器有两种情况:一种是连接到本地服务器,另一种是通过网络连接到其它服务器。
§启动启动SQL Server Management Studio的过程首先是连接到的过程首先是连接到服务器的过程服务器的过程二、使用二、使用 SQL Server Management§依次选择【开始】→【程序】→【Microsoft SQL Server 2005】→【SQL Server Management Studio】,打开“连接到服务器”对话框,如图1-21所示图图1-21 “连接到服务器连接到服务器”对话框对话框保持数据保持数据库引擎库引擎两种身份两种身份验证方式验证方式本机本机/网网络服务器络服务器“连接连接”按钮按钮二、使用二、使用 SQL Server Management2.SQL Server Management Studio的组成 Web浏览器浏览器解决方案解决方案资源管理器资源管理器模板资源模板资源管理器管理器对象资源对象资源管理器管理器摘要窗格摘要窗格二、使用二、使用 SQL Server Management⑴对象资源管理器对象资源管理器 以树形目录形式详细列出了数据库实例中的所有对象、所有的安全条目以及关于SQL Server的许多其它方面,使用频繁。
⑵ 模板资源管理器模板资源管理器数据库管理和开发人员创建各个数据库对象节点提供了相应的模板,使得创建各类数据库对象变得更加简洁和方便⑶ 解决方案资源管理器解决方案资源管理器为用户提供了解决方案资源管理器主要用于管理与一个脚本工程相关的所有项目,即将那些在逻辑上同属于一种应用处理的各种类型的脚本组织在一起二、使用二、使用 SQL Server Management⑷ Web浏览器浏览器 Web浏览器主要用于方便数据库用户浏览Microsoft SQL Server官方网站⑸摘要窗格摘要窗格 SQL Server Management Studio摘要页所在的区域称为文档窗口(document area)二、使用二、使用 SQL Server Management3.查询编辑器的使用§【查询编辑器】是SQL Server Management Studio提供的另一个主要工具,通过查询编辑器,可以实现对SQL Server数据库中数据的检索和更新操作§查询编辑器(Query Editor)可用于编写和执行程序代码查询编辑器通过编程方式创建动作,达到与拖放或使用向导一样的效果§通过单击标准工具栏中的【新建查询】按钮,或者通过选择【文件】→【新建】→【数据库引擎查询】菜单命令,即可打开一个空白的查询编辑器。
如图1-24所示二、使用二、使用 SQL Server Management图图1-24查询编辑器窗口查询编辑器窗口§在查询编辑器中输入要执行的Transact-SQL查询脚本,然后单击菜单栏中的【执行】按钮,窗口中显示出执行的结果二、使用二、使用 SQL Server Management图图1-25 查询编辑器执行结果查询编辑器执行结果1、、【【执执行行】】按钮按钮1、、输入输入Transact-SQL语句语句3、查询结果、查询结果任务实施任务实施一、安装一、安装SQLSQL Server 2005Server 2005二、使用二、使用 SQL Server Management Studio SQL Server Management Studio 三、注册服务器三、注册服务器任务实施任务实施三、注册服务器三、注册服务器1.注册服务器组图图1-26 新建服务器组新建服务器组快捷菜单快捷菜单【【新建新建】】——【【服务器组服务器组】】三、注册服务器三、注册服务器图图1-27新建服务器组窗口新建服务器组窗口2、、【【保存保存】】按钮按钮1、输入服、输入服务器组名务器组名三、注册服务器三、注册服务器2.注册服务器——在SQL Server Management Studio中登记服务器,然后把服务器加入到一个指定的服务器组中。
⑴⑴ 打开打开SQL Server Management Studio⑵⑵ 选择选择【【已注册的服务器已注册的服务器】】按钮,按钮,系统弹出系统弹出“已注册的服务器已注册的服务器”窗口⑶⑶ 在在“已注册的服务器已注册的服务器”窗口内窗口内右击,在弹出快捷菜单中选择右击,在弹出快捷菜单中选择【【新建新建】】→【【服务器注册服务器注册】】命命令,系统弹出令,系统弹出“新建服务器注新建服务器注册册”对话框如图对话框如图1-28所示图图1-28 “新建服务器注册新建服务器注册”窗口窗口三、注册服务器三、注册服务器1、、【【常规常规】】选项卡选项卡2、输入新、输入新注册服务器注册服务器名称名称3、登录服、登录服务器的验证务器的验证方式方式【【测试测试】】按钮按钮图图1-28 新建服务器注册新建服务器注册中的中的“常规常规”窗口窗口三、注册服务器三、注册服务器连接的时间连接的时间控制控制注册服务器默注册服务器默认连接的数据认连接的数据库库选择选择连接连接应应用的网络协用的网络协议议及传输数及传输数据包大小据包大小 图图1-29新建服务器注册中的新建服务器注册中的“连接属性连接属性”窗口窗口三、注册服务器三、注册服务器服务器的日常管理工作包括服务器的注册、启动、暂停、关闭和配置等。
只有SQL Server 中的服务器正常启动后,用户才能执行相应的操作,例如系统登录、任务调度等对服务器的管理可以有多种方式,包括在Windows操作系统中进行管理,利用SQL Server配置管理器进行管理,以及在SQL Server管理平台(SQL Server Management Studio)中进行管理这里主要介绍在SQL Server管理平台中启动和关闭服务器在SQL Server Management Studio中选中相应的服务器,右击服务器名,在弹出的快捷菜单中选择【启动】、【停止】、【暂停】或【重新启动】选项如图1-30所示,即可以对该服务器执行启动、停止和暂停操作SQL Server 2005服务器服务器三、注册服务器三、注册服务器3.服务器启动、暂停和停止•SQL Server 2005服务器是提供数据存储和数据管理服务的重要设施,它主要由数据库引擎和数据库两部分组成服务器的日常管理工作包服务器的日常管理工作包括服务器的注册、启动、括服务器的注册、启动、暂停、关闭和配置暂停、关闭和配置等对服务器的管理方式对服务器的管理方式::üSQL Server配置管理器配置管理器üSQL Server管理平台管理平台((SQL Server Management Studio))三、注册服务器三、注册服务器图图1-30在在SQL Server Management Studio窗窗 口启动、停止服务器口启动、停止服务器右击服务器名,在弹出的快捷右击服务器名,在弹出的快捷菜单中选择【启动】、【停止菜单中选择【启动】、【停止】、【暂停】或【重新启动】】、【暂停】或【重新启动】选项选项能力拓展能力拓展能力拓展能力拓展1.配置服务器服务是一种在后台运行的服务是一种在后台运行的应用程序应用程序SQL Server 2005服服务器端组件是务器端组件是“服务服务”的形式在计算机系的形式在计算机系统中运行统中运行运行的服务在后台完运行的服务在后台完成需要的操作成需要的操作服务占用服务器的资源服务占用服务器的资源默认启动的服务默认启动的服务自始至终都在运自始至终都在运行行服务可以设置为服务可以设置为“禁用禁用”、、“手动启手动启动动”、、“自动启动自动启动”服务服务能力拓展能力拓展ü【开始】【开始】→【程序】【程序】→【【Microsoft SQL Server 2005】】→【配置工具】【配置工具】→【【SQL Server Configuration Manager】】命令,打开命令,打开SQL Server Configuration Manager对对话框。
话框图图1-31 SQL Server Configuration Manager窗口窗口•在SQL Server 2005的中使用服务器配置管理器(SQL Server Configuration Manager)对服务的启动模式进行设置能力拓展能力拓展图图1-32 SQL Server Configuration Manager窗口窗口ü暂停与停止的区别是:暂停与停止的区别是:暂停服务器是在关闭数据暂停服务器是在关闭数据库之前进行,暂停服务器库之前进行,暂停服务器后,连接客户已经提交的后,连接客户已经提交的任务会继续执行,而新的任务会继续执行,而新的用户连接请求被拒绝用户连接请求被拒绝快捷菜单中的快捷菜单中的【【停止停止】】与与【【暂停暂停】】服务选服务选项项【【属性属性】】选项选项ü属性用于配置启动服务属性用于配置启动服务的各种默认值的各种默认值能力拓展能力拓展图图1-33 “登录登录”选项卡窗口选项卡窗口“登录登录”选项卡选项卡“内置账户内置账户”更改更改服务的登录身份,服务的登录身份,内置账户的类型:内置账户的类型:ü本地系统本地系统ü本地服务本地服务ü网络服务:网络服务:“本账户本账户” 直接输入登直接输入登录的账户名录的账户名称和密码或称和密码或选择已经定选择已经定义的用户账义的用户账户。
户能力拓展能力拓展图图1-34 “服务服务”选项卡窗口选项卡窗口启动模式有:启动模式有:“自动自动”、、“手动手动”、、“已禁止已禁止”“服务服务”选项卡选项卡【【应用应用】】按钮按钮能力拓展能力拓展服务器属性服务器属性服务器属性的配置功能服务器属性的配置功能有助于有助于SQL Server 2005的高效使用的高效使用常规常规安全安全安全安全处理处理处理处理器器器器连接连接连接连接权限权限权限权限数据数据数据数据库设库设库设库设置置置置内存内存2.配置服务器常用属性安全安全安全安全性性性性能力拓展能力拓展图图1-35服务器属性窗口服务器属性窗口打开打开SQL Server Management Studio,在,在“对象资源管理器对象资源管理器”窗口窗口中右击要配置的服务器名,中右击要配置的服务器名,在快捷菜单中选择在快捷菜单中选择“属性属性”选项,打开服务器属性选项,打开服务器属性窗口如图窗口如图1-35所示8种属性种属性选项选项能力拓展能力拓展⑴ 内存设置üSQL Server 2005的内存的内存设置对其运行性能有着显设置对其运行性能有着显著的影响著的影响üSQL Server 2005的内存的内存设置主要有两个方面:一设置主要有两个方面:一方面是设置可用的最大内方面是设置可用的最大内存值和最小内存值;一方存值和最小内存值;一方面是是否强制操作系统保面是是否强制操作系统保留物理内存空间。
留物理内存空间图图1-36 服务器属性(内存)窗口服务器属性(内存)窗口最小内存最小内存最大内存最大内存创建索引创建索引占用内存占用内存查询占用查询占用内存内存能力拓展能力拓展⑵ 更改服务器认证方式ü服务器属性窗口的服务器属性窗口的“安全安全性性”用于查看、修改服务用于查看、修改服务器身份验证方式器身份验证方式ü更改后通常需要重新启动更改后通常需要重新启动服务,如果从服务,如果从Windows验验证模式改到混合验证模式,证模式改到混合验证模式,不会自动启用不会自动启用SA账户,如账户,如果要使用果要使用SA账户,则需要账户,则需要执行带有执行带有enable选项的选项的Alter Login命令图图1-37 服务器属性(安全性)窗口服务器属性(安全性)窗口能力拓展能力拓展⑶ 服务器连接设置图图1-38 服务器属性(连接)窗口服务器属性(连接)窗口ü用户可以配置与服务器用户可以配置与服务器连接期间可能发生的事连接期间可能发生的事情有关的各个选项情有关的各个选项最大并发连接最大并发连接数数”默认值为默认值为0创建图书管理数据库创建图书管理数据库任务二任务二能力目标和知识目标能力目标和知识目标能力目标能力目标1..能够使用SQL Server Management Studio创建数据库;2.能够使用Transact-SQL语言创建数据库;3.能够对数据库查看属性以及进行修改、收缩、删除、分离与附加等操作。
知识目标知识目标1..掌握SQL Server数据库的逻辑结构和物理结构;2.熟悉Transact-SQL语言的基本知识;3.熟悉SQL Server Management Studio的使用任务导入任务导入v某学校图书馆有许多藏书,为了有效地进行管理,需要建立一个图书管理系统而创建图书管理系统的一项重要工作就是建立图书管理数据库§按照需要建立一个名字叫做Library的图书管理数据库1.创建一个名为Library的图书管理数据库,并为它创建了一个主数据文件Library_Data和一个日志文件Library_log存放在D盘指定文件夹(该文件夹应事先创建)下,主数据文件初始大小是5M,扩展文件时按10%的幅度增长,没有限制大小2.向图书管理数据库增加一个数据文件,文件名Library_Data2, 初始大小5MB,最大为50MB,每次自动增长5 MB,该文件也存放在D盘指定文件夹下,并将Library_Data的初始大小修改为10MB4.删除图书管理数据库中数据文件Library_Data25.创建一个数据库,各项参数设置采用系统默认值,然后再将其删除6.查看Library数据库的属性,注意观察该数据库的所有者及所包含的数据库文件和事务日志文件的设置。
7.分离Library数据库,将其保存在自己的作业文件夹中相关知识相关知识一、数据库概述1.数据库和数据库管理系统的概念(1)数据库数据库是存储在计算机系统内的一个通用化的、综合性的、有结构的、可共享的数据集合§独立于开发平台,处于应用系统的后台,能共享提供给各种应用或用户使用,并能提供数据完整性控制、安全性控制和并发控制功能§通常是由专门的系统进行管理,管理数据库的系统称为数据库数据库管理系统管理系统相关知识相关知识§数据库用户通常可以分为两类:一类是批处理用户,另一类是联机用户,或称为终端用户2)数据库管理系统数据库管理系统是一个管理数据库的软件,简称DBMS(Data Base Management System)它是数据库系统的核心数据库的创建、运行和维护都是在数据库管理系统的控制下实现的§SQL Server 2005就是一个数据库管理系统相关知识相关知识2.数据库系统的概念§数据库系统数据库系统是在数据库管理系统支持下运行的一类计算机应用(软件)系统,简称DBS(Database System)通常由四部分组成,即:•数据库、应用程序、数据库管理系统、用户数据库、应用程序、数据库管理系统、用户§一般的数据库系统中,使用通用的数据库管理系统,而数据库和应用程序需要由用户(开发人员)开发。
相关知识相关知识3.数据库系统的模型§数据库系统的模型数据库系统的模型是描述数据库中的数据结构形式现有的数据库系统模型主要有三种,即层次模型层次模型、网网状模型状模型和关系模型关系模型相关知识相关知识(1)层次——以记录为结点构成的树,它把客观事物抽象为一个严格的自上而下的层次关系有且仅有一个根结点无双亲;其它结点有且仅有一个双亲有且仅有一个根结点无双亲;其它结点有且仅有一个双亲图图2-1 层次数据模型实例层次数据模型实例相关知识相关知识(2)网状——一种去掉层次模型中的两个限制的数据模型允许多个结点没有双亲结点,允许结点有多个双亲结点允许多个结点没有双亲结点,允许结点有多个双亲结点图图2-2 网状数据模型实例网状数据模型实例相关知识相关知识(3)关系——以集合论中的关系(Relation)概念为基础发展起来的数据模型列为字段,列为字段,称为属性称为属性用二维表格结构用二维表格结构表示的数据模型表示的数据模型图图2-3 关系模型实例关系模型实例标题行标题行表体表体字段名字段名字段值字段值一行为一个记录,记录称为元组,元一行为一个记录,记录称为元组,元组的集合称为关系或实例组的集合称为关系或实例相关知识相关知识§不同的数据通过不同的二维表格存储,各表之间通过关键字段相关联,构成一定的关系。
§关系模型既能反映属性之间的一对一关系,也能反映属性之间的一对多和多对多关系§由关系模型组成的数据库称作关系型数据库,关系型数据库是目前最为流行的数据库,关系型数据库管理系统很多,例如SQL Server、Oracle、Sybase、Informix、Dbase、DB2等相关知识相关知识4.数据库的组成(1)数据库对象对象名称对象名称含义含义关系图关系图关系图显示包含的表和表之间的关联关系图显示包含的表和表之间的关联表表数据库存放数据的地方数据库存放数据的地方,,SQL Server中的表可分为用户中的表可分为用户表和系统表表和系统表视图视图是一个是一个“虚拟虚拟”的数据表的数据表,,本身不保存数据,只记录了数本身不保存数据,只记录了数据由哪些数据表的哪些字段组成据由哪些数据表的哪些字段组成存储过程存储过程存储在服务器上的一组预编译的存储在服务器上的一组预编译的SQL语句语句系统提供的存系统提供的存储过程称为系统存储过程,用户自己定义的存储过程称为储过程称为系统存储过程,用户自己定义的存储过程称为用户存储过程用户存储过程相关知识相关知识数据库对象数据库对象含义含义用户用户对数据库有存取权限的使用者对数据库有存取权限的使用者。
角色角色一个或多个具有相同权限的用户组成的数据库对象一个或多个具有相同权限的用户组成的数据库对象规则规则用于检验字段数据有效性用于检验字段数据有效性默认默认用于设置字段的默认值用于设置字段的默认值用户自定义数据类型用户自定义数据类型用户根据需要自己定义的数据类型用户根据需要自己定义的数据类型用户自定义函数用户自定义函数用户根据需要自己定义的函数用户根据需要自己定义的函数全文目录全文目录指为实现字符串数据查询而保存的关键词指为实现字符串数据查询而保存的关键词相关知识相关知识(2)数据库文件数据库文件数据库文件存储存储(存储结构)(存储结构)逻辑存储结构逻辑存储结构物理存储结构物理存储结构逻辑存储结构指的逻辑存储结构指的是数据库是由哪些是数据库是由哪些性质的信息所组成性质的信息所组成物理存储结构是讨物理存储结构是讨论数据库文件是如论数据库文件是如何在磁盘上存储何在磁盘上存储nSQL Server的数据库是由诸如表、视图、索引等各种不同的数据库的数据库是由诸如表、视图、索引等各种不同的数据库对象所组成对象所组成SQL Server 2005将数据库映射为一组操作系统文件,将数据库映射为一组操作系统文件,每个数据库文件至少要包含一个数据文件和一个日志文件每个数据库文件至少要包含一个数据文件和一个日志文件,,又可分又可分为主数据文件和次要数据文件。
为主数据文件和次要数据文件相关知识相关知识1)主数据文件(Primary Database File)主数据文件用来存放数据,它是所有数据库文件的起点(包含指向其它数据库文件的指针)每个数据库都必须包含也只能包含一个主数据文件主数据文件的默认扩展名为.mdf2)次要数据文件(Secondary Database File)次要数据文件也用来存放数据一个数据库中,可以没有次要数据文件,也可以拥有多个次要数据文件次要数据文件的默认扩展名为.ndf§设置次要数据文件的好处一是采用主、辅数据文件来存储数据可以无限制的扩充而不受操作系统文件的大小的限制;二是可以将文件保存在不同的硬盘上,提高了数据处理的效率相关知识相关知识3)日志文件(Transaction Log)日志文件用来存放事务日志,每个数据库都有一个相关的事务日志,事务日志记录了SQL Server所有的事务和由这些事务引起的数据库的变化每个数据库至少有一个日志文件,也可以拥有多个日志文件日志文件的默认扩展名为.ldf,日志文件的大小至少是512KB相关知识相关知识(3)文件组 ——各个数据文件组成一个组,对它们整体进行管理通过设置文件组,可以有效地提高数据库的读写速度。
主文件组主文件组((Primary))包含主数据文件和所有没有被包含在其他文件包含主数据文件和所有没有被包含在其他文件组里的次要数据文件组里的次要数据文件用户定义文件组用户定义文件组((user_defined))由用户创建的文件组,用户在创建和修改数据由用户创建的文件组,用户在创建和修改数据库时可以用指定数据文件的文件组库时可以用指定数据文件的文件组包含所有包含所有在使用在使用CREATE DATABASE或或ALTER DATABASE时使用时使用FILEGROUP关键字来进关键字来进行约束的文件行约束的文件默认文件组默认文件组((default))容纳所有在创建时没有指定文件组的表、索引容纳所有在创建时没有指定文件组的表、索引以及以及text、、ntext、、image数据类型的数据任数据类型的数据任何时候都只能有一个文件组被指定为默认文件何时候都只能有一个文件组被指定为默认文件组相关知识相关知识二、Transact-SQL语言简介综合综合统一统一高度非高度非过程化过程化面向集面向集合的操合的操作方式作方式支持支持C/S和和B/S结结构构简洁简洁直观直观SQL——结构化查询语言结构化查询语言((Structured Query Language))1..SQL语言的特点语言的特点相关知识相关知识2.Transact-SQL语言§Transact-SQL(简称T-SQL)是微软对SQL语言的具体实现和扩展,具有SQL的主要特点,同时增加了变量、运算符、函数、流程控制语句、事务控制语句和注释等语言要素,使得其功能更加强大。
§可以在SQL Server中直接执行,也可以嵌入到其它高级程序设计语言中使用相关知识相关知识T-SQL语言主要由以下四部分组成:数据定义语数据定义语句(句(DDL))数据操纵语数据操纵语句(句(DML))数据控制语数据控制语句(句(DCL))附加的语附加的语言要素言要素用于创建和修改数据用于创建和修改数据库结构的语句库结构的语句用于数据查询、插入、用于数据查询、插入、修改和删除等操作语修改和删除等操作语句句用于控制数据库的用于控制数据库的访问权限和控制游访问权限和控制游标标附加的语言要素是为附加的语言要素是为了编写脚本而增设的了编写脚本而增设的语言要素,包括变量、语言要素,包括变量、运算符、函数等运算符、函数等相关知识相关知识三、有关数据库管理的T-SQL语句1.建立数据库的命令语句CREATE DATABASECREATE DATABASE database_nameON [PRIMARY] [(NAME=logical_file_name,,FILENAME=‘os_file_name’ [,SIZE=size] [,MAXSIZE={max_size|UNLIMITED}] [,FILEGROWTH=growth_increment] ])[,…n] [,FILEGROUP filegroup_name] LOG ON [ (NAME=logical_file_name,, FILENAME=‘os_file_name’ [,SIZE=size] [,MAXSIZE={max_size|UNLIMITED}] [,FILEGROWTH=growth_increment]] )[,…n]üdatabase_name:数据库的名称,最长为:数据库的名称,最长为128个个字符。
字符üON:指定存放数据库的数据文件信息:指定存放数据库的数据文件信息PRIMARY:该选项是一个关键字,指定主文件组中的文件该选项是一个关键字,指定主文件组中的文件 üLOG ON:指定生成事务日志文件的地址和文件长:指定生成事务日志文件的地址和文件长度 üNAME:指定数据库的逻辑名称,这是在:指定数据库的逻辑名称,这是在SQL Server系统中使用的名称,是数据库在系统中使用的名称,是数据库在SQL Server中的标识符中的标识符üFILENAME:指定数据文件的物理文件名,包括:指定数据文件的物理文件名,包括路径和文件名称路径和文件名称üSIZE:指定数据库的初始容量大小默认为:指定数据库的初始容量大小默认为1MB üMAXSIZE:指定操作系统文件可以增长到的最大:指定操作系统文件可以增长到的最大尺寸,如果没有指定,则文件可以不断增长直到尺寸,如果没有指定,则文件可以不断增长直到充满硬盘充满硬盘 üFILEGROWTH:指定文件每次增加容量的大小,:指定文件每次增加容量的大小,当指定数据为当指定数据为0时,表示文件不增长时,表示文件不增长üUNLIMITED:指名指名
无容量限制相关知识相关知识2.修改数据库的命令语句ALTER DATABASEALTER DATABASE databasename{ADD FILE
只有在文件为空时才能删除删除物理文件只有在文件为空时才能删除üADD FILEGROUP:指定要添加文件组指定要添加文件组üREMOVE FILEGROUP:从数据库中删除文件组并删从数据库中删除文件组并删除该文件组中的所有文件只有在文件组为空时才能除该文件组中的所有文件只有在文件组为空时才能删除üMODIFY FILE:指定要更改给定的文件,更改选项包指定要更改给定的文件,更改选项包括括 FILENAME、、SIZE、、FILEGROWTH 和和 MAXSIZE一次只能更改这些属性中的一种必须在一次只能更改这些属性中的一种必须在
修改指定文件组的属性相关知识相关知识3.打开数据库的命令语句USE4.删除数据库的命令语句DROP DATABASEUSE 数据库名数据库名DROP DATABASE 数据库名数据库名 [,…n]相关知识相关知识5.收缩指定数据库命令语句DBCC SHRINKDATABASEüdatabase_name:是要收缩的数据库名称是要收缩的数据库名称数据库名称必须符合标识符的规则数据库名称必须符合标识符的规则ütarget_percent:是数据库收缩后的数据库:是数据库收缩后的数据库文件中所要的剩余可用空间百分比文件中所要的剩余可用空间百分比 üNOTRUNCATE:导致在数据库文件中保留:导致在数据库文件中保留所释放的文件空间如果未指定,将所释放的所释放的文件空间如果未指定,将所释放的文件空间释放给操作系统文件空间释放给操作系统 üTRUNCATEONLY:导致将数据文件中的任:导致将数据文件中的任何未使用的空间释放给操作系统,并将文件收何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据不试图重新定位未分配页而不移动任何数据。
不试图重新定位未分配页的行使用的行使用 TRUNCATEONLY 时,忽略时,忽略 target_percentisDBCC SHRINKDATABASE ( database_name [ , target_percent ] [ , { NOTRUNCATE | TRUNCATEONLY } ] )相关知识相关知识6.收缩文件命令语句DBCC SHRINKFILEüfile_name:是:是要要收缩文件的逻辑名称收缩文件的逻辑名称üfile_id:是要收缩的文件的标识:是要收缩的文件的标识 (ID) 号若要获号若要获得文件得文件 ID,请使用,请使用 FILE_ID 函数或在当前数据库函数或在当前数据库中搜索中搜索 sysfilesütarget_size:是用兆字节表示的所要:是用兆字节表示的所要收缩收缩的文件的文件大小(用整数表示)如果没有指定,大小(用整数表示)如果没有指定,DBCC SHRINKFILE 将文件大小减少到默认文件大小将文件大小减少到默认文件大小ü EMPTYFILE:将所有数据从指定文件中迁移到:将所有数据从指定文件中迁移到同一文件组中的其他文件。
同一文件组中的其他文件Microsoft SQL Server 不再允许将数据放在用于不再允许将数据放在用于 EMPTYFILE 选选项的文件上该选项允许使用项的文件上该选项允许使用 ALTER DATABASE 语句除去文件语句除去文件üNOTRUNCATE:导致将释放的文件空间保留在:导致将释放的文件空间保留在文件中üTRUNCATEONLY:导致文件中的任何未使用的:导致文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次分配空间释放给操作系统,并将文件收缩到上一次分配的大小,从而减少文件大小,而不移动任何数据的大小,从而减少文件大小,而不移动任何数据DBCC SHRINKFILE ( { file_name | file_id } { [ , target_size ] | [ , { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ] } )任务实施任务实施一、一、创建图书管理数据库创建图书管理数据库LibraryLibrary二、二、 管理数据库管理数据库任务实施任务实施一、一、创建图书管理数据库创建图书管理数据库Libraryv创建数据库通常有两种方式:§一种是使用SQL Server Management Studio创建§另一种是使用Transact-SQL语句创建。
一、一、创建图书管理数据库创建图书管理数据库Library1.使用SQL Server Management Studio创建数据库图书管理数据库图书管理数据库Library数据库拥有者数据库拥有者数据库的名称数据库的名称数据库的大小数据库的大小SQL Server Management Studio数据库存放的位置数据库存放的位置一、一、创建图书管理数据库创建图书管理数据库Library【训练2-1】在SQL Server Management Studio中创建Library数据库1)依次选择【开始】)依次选择【开始】→【程序】【程序】→【【Microsoft SQL Server 2005】】→【【SQL Server Management Studio】,打开】,打开SQL Server Management Studio窗口2)在连接到服务器对话)在连接到服务器对话框中,设置好服务器类型、框中,设置好服务器类型、服务器名称和身份验证方式,服务器名称和身份验证方式,并单击【连接】按钮,连接并单击【连接】按钮,连接到到SQL Server 2005数据库数据库实例如图实例如图2-4所示。
所示图图2-4 “连接到服务器连接到服务器”对话框对话框选择选择“Windows”身份验证身份验证一、一、创建图书管理数据库创建图书管理数据库Library图图2-5 在在SQL Server Management Studio中创建数据库中创建数据库【【新建新建数据库数据库】】命令命令(3)将对象资源管理器窗格的树形结构展开,选择【数据库】节点并右击,在打开的快捷菜单中选择【新建数据库】命令如图2-5所示一、一、创建图书管理数据库创建图书管理数据库Library图图2-6 新建数据库属性对话框新建数据库属性对话框(4)新建数据库窗口设置属性,系统自动生成数据文件Library.mdf和日志文件Library_log.ldf,并设定了文件类型、文件组名称、初始大小、自动增长方式和存储路径,如图2-6所示常规】、【常规】、【选项】、【选项】、【文件组【文件组】三个选】三个选项卡项卡【数据库名称【数据库名称】文本框】文本框,输,输入入“Library”系统自动生系统自动生成数据文件成数据文件数据库数据库所有者所有者一、一、创建图书管理数据库创建图书管理数据库Library所有的数据文件都会拥有两个文件名:逻辑文件名和物理文件名。
图图2-6 新建数据库属性对话框新建数据库属性对话框ü逻辑文件名逻辑文件名是在是在Transact-SQL语句中引用语句中引用数据库文件时所使用的名数据库文件时所使用的名称系统生成的数据文件称系统生成的数据文件即是逻辑文件名,在数据即是逻辑文件名,在数据库中逻辑文件名必须是唯库中逻辑文件名必须是唯一的ü物理文件名物理文件名是包括路径是包括路径在内的数据库文件名(在在内的数据库文件名(在Windows操作系统中使用)操作系统中使用)ü数据文件和日志文件的数据文件和日志文件的初始大小、自动增长方式初始大小、自动增长方式和存储路径都是可以改变和存储路径都是可以改变的逻辑逻辑文件名文件名物理物理文件名文件名一、一、创建图书管理数据库创建图书管理数据库Library(5)在【所有者】下拉列表框中可以选择数据库的所有者,数据库的所有者是对数据库有完全操作权限的用户默认值表示当前登录Windows系统的是管理员账户可以更改所有者图图2-7选择数据库所有者对话框选择数据库所有者对话框单击可以选择单击可以选择不同的用户成不同的用户成为数据库的使为数据库的使用者用者一、一、创建图书管理数据库创建图书管理数据库Library(7)单击【确定】按钮,在“数据库”的树形结构中可以看到新建的数据库Library。
图图2-8 创建了一个新的数据库创建了一个新的数据库Library新建的数新建的数据库据库Library一、一、创建图书管理数据库创建图书管理数据库Library2. 使用CREATE DATABASE创建数据库§CREATE DATABASE语句是Transact-SQL创建数据库的方法图图2-9 用命令方式创建数据库用命令方式创建数据库SQL Server Management Studio窗口窗口新建查询新建查询SQL编辑编辑窗口,输窗口,输入创建数入创建数据库的据库的SQL语句语句【【执行执行】】按钮按钮消息窗口,消息窗口,SQL语句语句分析和执分析和执行结果在行结果在窗口显示窗口显示v【训练2-2】在查询编辑器窗口中创建Library2数据库CREATE DATABASE Library2CREATE DATABASE Library2OnOn(Name= Library2_Data,(Name= Library2_Data,Filename='E:\sql_data\Library2_Data.mdf',Filename='E:\sql_data\Library2_Data.mdf',Size=10,Size=10,Filegrowth=10%Filegrowth=10%) )Log onLog on(Name= Library2_Log,(Name= Library2_Log,Filename='E:\sql_data\Library2_Log.ldf',Filename='E:\sql_data\Library2_Log.ldf',Size=5,Size=5,Filegrowth=10%Filegrowth=10%) )执行这个例子,将在执行这个例子,将在E盘盘sql_data文件夹下(该文件文件夹下(该文件夹应事先建立)创建主数据文件夹应事先建立)创建主数据文件Library2_Data.mdf和日志文件和日志文件Library2_Log.ldf,主数据文件的初始大,主数据文件的初始大小为小为10M,按百分比方式增长,每次增长,按百分比方式增长,每次增长10%。
一、一、创建图书管理数据库创建图书管理数据库Library任务实施任务实施一、一、创建图书管理数据库创建图书管理数据库LibraryLibrary二、二、 管理数据库管理数据库任务实施任务实施二、二、 管理数据库管理数据库1.查看与修改数据库属性(1)使用SQL Server Management Studio查看和修改数据库属性图图2-10 数据库属性对话框数据库属性对话框ü【常规】选项卡中列示【常规】选项卡中列示的数据库基本信息是不能的数据库基本信息是不能修改的修改的ü【文件】和【文件组】【文件】和【文件组】选项卡中修改和增加数据选项卡中修改和增加数据库的数据文件和日志文件库的数据文件和日志文件等等ü【选项】选项卡中设置【选项】选项卡中设置和修改数据库的排序规则和修改数据库的排序规则和故障恢复模式和故障恢复模式ü【权限】选项卡中查看【权限】选项卡中查看和设置数据库安全对象的和设置数据库安全对象的权限选项卡选项卡v【训练2-3】 在Library数据库中添加一个辅助数据文件在在“数据库属性数据库属性”对话框中对话框中单击单击【【文件文件】】选项卡,然后选项卡,然后单击单击【【添加添加】】按钮,此时就按钮,此时就增加了一个辅助数据文件,增加了一个辅助数据文件,如图如图2-11所示。
输入该文件所示输入该文件的名称,确定该文件的大小、的名称,确定该文件的大小、增长方式以及存储路径单增长方式以及存储路径单击击【【确定确定】】按钮,完成辅助按钮,完成辅助数据文件的添加工作数据文件的添加工作图图2-11 添加辅助数据文件添加辅助数据文件(2)使用Transact-SQL语句查看和修改数据库属性① 启动SQL Server Management Studio,打开SQL编辑器窗口② 在SQL编辑器窗口中使用T-SQL语句查看和修改的数据库v【训练2-4】 使用ALTER DATABASE命令修改数据库名称xsgl为xsmanageALTER DATABASE xsglMODIFY NAME = xsmanagev在查询编辑器中输入以上语句,执行效果如图2-12所示图图2-12 使用使用ALTER DATABASE命令修改数据库名称命令修改数据库名称v【训练2-5】使用系统存储过程sp_helpdb查看Library数据库的信息§在查询编辑器中执行系统存储过程sp_helpdb,sp_helpdb Library图图2-13 利用存储过程查看数据库利用存储过程查看数据库Library的信息的信息如果如果sp_helpdb后不给出后不给出数据库名,则查看服务器数据库名,则查看服务器上所有数据库的信息。
上所有数据库的信息二、二、 管理数据库管理数据库2. 收缩数据库——SQL Server 允许压缩数据库中的每个文件,以删除未使用的页注意:注意:数据库压缩并不能把一个数据库压缩到比它创建时还小,即使数据库中的数据都删除了也不行v可以设置为按给定时间自动压缩,也可以手工压缩手工压缩有两种方式:§使用SQL Server Management Studio压缩数据库§使用DBCC SHINKDATABASE语言压缩数据二、二、 管理数据库管理数据库(1)使用SQL Server Management Studio压缩数据库① 展开服务器组,然后展开指定的服务器② 右击要收缩的数据库,指向【所有任务】,然后单击【收缩数据库】命令③ 要指定数据库的收缩量④ 如果要收缩个别的数据库文件,请单击【收缩文件】2)使用DBCC 语句压缩数据库和数据文件USE USE xsmanageGoGoDBCC SHRINKFILE (DBCC SHRINKFILE (xsmanage,1),1)数据库名数据库名参数,压缩参数,压缩后的大小后的大小二、二、 管理数据库管理数据库3. 分离与附加数据库(1)分离数据库SQL Server Management Studio 窗口窗口选中需要分离选中需要分离的数据库,并的数据库,并右击右击快捷菜单中选快捷菜单中选择【任务】择【任务】—【分离】命令【分离】命令图图2-14 分离数据库分离数据库⑤ 默认情况下,分离操作将在分离数据库时保留过期的优化统计信息;如果要更新现有的优化统计信息,可启用【更新统计信息】复选框。
⑥ 在【状态】列中如果是“未就绪”,则【消息】列将显示有关数据库的超链接信息Ø在可以分离数据库之前,必须启用【删除连接】复选框来断开与所有活动链接的连接若强行分离,则会出现错误提示⑦ 如果“状态”栏显示“就绪”,表示可以正常分离设置完毕后,单击【确定】按钮分离成功后,在【对象资源管理器】中将不会出现被分离的数据库图图2-15 在数据库连接状态下分离数据库的错误提示在数据库连接状态下分离数据库的错误提示二、二、 管理数据库管理数据库(2)附加数据库图图2-16 附加数据库对话框附加数据库对话框【【添加添加】】按钮按钮①① 打开打开SQL Server Management Studio并并连接到数据库实例连接到数据库实例②② 在【对象资源管理器在【对象资源管理器】窗口中选中数据库实例】窗口中选中数据库实例下的数据库项,并右击下的数据库项,并右击③③ 在弹出的快捷菜单中在弹出的快捷菜单中选择【附加数据库】命令,选择【附加数据库】命令,打开【附加数据库】对话打开【附加数据库】对话框,如图框,如图2-16所示④④ 在【附加数据库】对在【附加数据库】对话框中,单击【添加】按话框中,单击【添加】按钮,打开【定位数据库文钮,打开【定位数据库文件】对话框。
件】对话框二、二、 管理数据库管理数据库4. 删除与更名用户数据库(1)在SQL Server Management Studio中删除数据库已有数已有数据库据库在在SQL Server Management Studio中中删除数据库只需展开【数删除数据库只需展开【数据库】目录,用鼠标右键据库】目录,用鼠标右键单击要删除的数据库,在单击要删除的数据库,在弹出的快捷菜单中选择【弹出的快捷菜单中选择【删除】命令,打开删除对删除】命令,打开删除对象对话框,如图象对话框,如图2-18所示再单击【确定】按钮,执再单击【确定】按钮,执行删除操作行删除操作图图2-18 删除对象对话框删除对象对话框二、二、 管理数据库管理数据库(2)使用Transact-SQL语句删除数据库§【训练2-8】使用SQL语句删除一个示例数据库xsmanage:DROP DATABASE xsmanage要删除的要删除的数据库名数据库名删除数据库删除数据库的的SQL命令命令当数据库处于以下三种情况之一,不能当数据库处于以下三种情况之一,不能被删除:被删除:ü当用户正在使用此数据库时;当用户正在使用此数据库时;ü当数据库正在被恢复还原时;当数据库正在被恢复还原时;ü当数据库正在参与复制时。
当数据库正在参与复制时注意:系统数据库不能被删除注意:系统数据库不能被删除二、二、 管理数据库管理数据库(3)数据库更名§在重命名数据库之前,应该确保没有用户使用该数据库,而且数据库应该设置为 【单用户】模式§利用系统存储过程sp_renamedb可以修改数据库的名字,语法结构如下: sp_renamedb @ old_name , @newname §【训练2-9】将Library2数据库更名为Library_tempEXEC sp_renamedb Library2, Library_temp能力拓展能力拓展能力拓展能力拓展v查看SQL Server 2005系统数据库§系统数据库是指随安装程序一起安装、用于协助SQL Server 2005系统共同完成管理操作的数据库,它们是SQL Server 2005运行的基础数据库名称数据库名称作用作用Master记录SQL Server实例的所有系统级信息Model用作SQL Server实例上创建的所有数据库的模板Msdb用于SQL Server代理计划警报和作业Tempdb是一个工作空间,用于保存临时对象或中间结果集。
Resource是一个只读数据库,包含SQL Server 2005 中所有系统对象创建和维护图书管理数据表创建和维护图书管理数据表任务三任务三能力目标能力目标能力目标能力目标1..能够使用能够使用SQL Server Management Studio创建数据表;创建数据表;2.能够使用.能够使用CREATE TABLE、、ALTER TABLE和和DROP TABLE等等SQL语句进行数据表的创建、修语句进行数据表的创建、修改和删除操作;改和删除操作;3.能够使用.能够使用SQL Server Management Studio进行数据表进行数据表维护知识目标知识目标1..熟悉表、关系模型、数据类型熟悉表、关系模型、数据类型等基本概念;等基本概念;2.进一步熟悉.进一步熟悉SQL Server Management Studio的使用;的使用;3.熟悉.熟悉CREATE TABLE、、ALTER TABLE和和DROP TABLE等数据表维护语句等数据表维护语句任务导入任务导入一个数据库一个数据库若干数据库表若干数据库表结构结构数据数据ü通常一个数据库是由若干通常一个数据库是由若干个相互关联的数据表组成的,个相互关联的数据表组成的,这些表分别存储不同的数据。
这些表分别存储不同的数据因此,为了完成整个数据库因此,为了完成整个数据库的建立工作,我们还需要在的建立工作,我们还需要在建立数据库的基础上,进一建立数据库的基础上,进一步建立数据表步建立数据表ü建立数据表实际上需要做建立数据表实际上需要做两件事:一是创建表结构,两件事:一是创建表结构,包括确定表的数据项(字段)包括确定表的数据项(字段)、字段的类型、数据宽度、、字段的类型、数据宽度、小数位数等等;二是向表添小数位数等等;二是向表添加数据表建立后需要进行维护表建立后需要进行维护::ü表结构的维护,包括表结构的修改,表表结构的维护,包括表结构的修改,表的删除等等的删除等等ü表数据的维护,包括数据的增加、删除表数据的维护,包括数据的增加、删除和修改任务导入任务导入1.创建Library图书管理数据库中的5个表,表结构如下所示:⑴ 创建读者部门信息表department,将部门编号设置为主键,表结构如表3-1所示列名数据类型长度允许空值说明列名含义deptIDChar4×主键部门编号deptvarchar20×部门名称⑵ 创建读者借阅卡信息表readers,将借阅卡编号设置为主键,表结构如表3-2所示。
任务导入任务导入列名数据类型长度允许空值说明列名含义readerIDChar10×主键借阅卡编号deptIDChar4×部门编号namevarchar10×读者姓名Emailvarchar20√Emailtelvarchar20√borrownum smallint√默认值为0 借书数量任务导入任务导入⑶ 创建书刊类型信息表type,设置类型编号为主键,表结构如表3-3所示列名数据类型长度允许空值说明列名含义typeIDchar4×主键类别编号typenamevarchar20×类别名称⑷ 创建书刊信息表books, 书刊编号为主键,表的结构如表3-4所示列名数据类型长度允许空值说明列名含义bookidChar10×主键图书编号booknamevarchar50×图书名称authorChar10√作者typeIDChar4√类别编号pricemoney√单价publishervarchar20√出版社任务导入任务导入⑸ 创建书刊借阅信息表borrow,表的结构如表3-5所示列名数据类型长度允许空值说明列名含义bookIDchar10×主键图书编号readerIDchar10×主键借阅卡编号returndatesmallDatetime4√还书日期borrowdatesmallDatetime4√借书日期2.对数据表进行简单的维护,包括查看表的属性、修改表的结构以及删除数据表。
3.以手工方式向数据表中添加数据相关知识相关知识一、SQL Server的数据类型v数据类型就是以数据的表现事实和存储方式来划分数据库中的各类数据v精心选择表列的数据类型是建立性能良好的表的前提vSQL Server 2005提供的数据类型按照处理对象的不同,可以分为如表3-6所示的几大类任务导入任务导入分类分类数据类型数据类型整数数据类型int、smallint、tinyint、bigint浮点数据类型decimal、numeic、real、float字符数据类型char、nchar、varchar、nvarchar日期时间数据类型datetime、smalldatetime文本和图形数据类型 text、ntext、image货币数据类型money、smallmoney位数据类型Bit二进制数据类型binary、varbinary特殊数据类型Cursor、 timestamp、 XML、 uniquedentifier、sql_variant、table用户自定义数据类型 sysname表表3-6 SQL Server 2005提供的数据类型提供的数据类型相关知识相关知识1.整数数据类型.整数数据类型§整数数据类型提供存储整数数值的方法,可以在整数上直接进行算术运算。
1)int§int也可以写成integer,可以存储-231~231-1范围内的任意整数每个int 类型的数据占据4个字节的空间,共32位,其中用后31位存储数字的绝对值,用最高位来表示正负号2)smallint相关知识相关知识§smallint存储-215~215-1之间的整数每个smallint类型的数据占据2个字节,共16位,其中后15位存储绝对值,第1位存储正负号3)tinyint§tinyint只能存储0~255之间的整数每个数据占1个字节的存储空间4)bigint§bigint是整数数据类型中存储容量最大的一种,可以存储-263~263-1之间的任意整数每个bigint类型的数据占有8个字节的存储空间相关知识相关知识2.浮点数据类型.浮点数据类型§浮点数据类型用于存储十进制的小数分为精确数类型,包括decimal和numeric;近似数类型,包括real和float1)decimal和numeric§decimal和numeric数据类型的表示方式为decimal[(p[,s])]或numeric[(p[,s])]使用decimal和numeric可以精确指定小数点两边的总位数(即精度,用p表示)和小数点右边的位数(即刻度,用s表示)。
相关知识相关知识(2)real§real类型的数据占用4个字节的存储空间,其数值范围在-3.4E+38到3.4E+38之间,并且精度可以达到7位3)float§利用float来声明表列或变量时,可以指定用来存储按科学记数法记录的数据尾数的位数,如float(n)(1≤n≤53)§当1≤n≤24时,float型数据用4个字节存储,精度可以达到7位§当25≤n≤53时或者n缺省,float型数据用8个字节存储,精度可以达到15位表示的数的范围为-1.7E+308~1.7E+308相关知识相关知识v近似数类型近似数类型的数据在SQL Server 2005中采用“上舍入”的方式进行存储,即只入不舍§例如:对3.14159265358979保留2位小数时,结果为3.15近似数的数据要受到舍入误差的限制,因此由近似数据计算所返回的结果也可能不精确由于近似数的这种特性,一般在货币运算上不使用它,但是科学计算或统计计算等不要求绝对精确的运算场合使用近似数据类型比较方便相关知识相关知识3.字符数据类型.字符数据类型§字符数据类型是使用最多的数据类型,它可以存储字母、数字和特殊符号1)char§利用char数据类型存储数据时,每个字符占用一个字节的存储空间。
char使用固定长度来存储字符,利用char来定义表列或变量时需要给定数据的最大长度,但是最多不能超过8000个字符如果实际数据的长度小于给定的最大长度,则多余的部分用空格填充;如果实际数据的长度大于给定的最大长度,则超过的部分被截断使用char类型的最大好处在于可以精确计算数据占有的空间,达到节省数据空间的目的相关知识相关知识(2)varchar§varchar数据类型的使用方式与char数据类型相似,与char数据类型不同的是,varchar数据类型的存储空间可以随着数据字符数的不同而发生变化§例如,在定义学生姓名数据列时,将其定义成varchar(20),那么存储在姓名列上的数据最多可以达到20个字符,而在数据没有达到20个字符时,并不会在多余的字节上填充空格§Varchar可以表示为Varchar(n),其中n的取值为1~8000当存储字节大于8000时应表示为Varchar(max),max指示最大存储大小是231-1个字节存储大小是输入数据的实际长度加2个字节相关知识相关知识(3)nchar§nchar与char相似,不同的是,nchar数据类型最多不能超过4000个字符,因为它采用的是unicode标准字符集。
unicode标准规定每个字符占用两个字节的存储空间使用nchar的好处是因为其使用两个字节作为存储单位,则一个存储单位的容量就大大增加了,可以将全世界的语言文字都保存在内,而不会出现编码冲突4)nvarchar§nvarchar与varchar相似,不同的是,nvarchar采用的也是unicode标准字符集与varchar一样,它也可以表示为nvarchar(n)或nvarchar(max),其中n在1~4000之间,max指示最大存储大小是231-1个字节存储空间大小是所输入字符的两倍加2个字节相关知识相关知识4.日期时间数据类型.日期时间数据类型§SQL Server提供的日期/时间数据类型可以存储日期和时间的组合信息SQL Server 2005可以自动将其格式化,而且还可以使用特殊的日期和时间函数操作存储在这些类型中的数据1)datetime§datetime数据类型可以存储从1/1/1753到12/31/9999的日期和时间,并精确到1/300秒datetime数据类型占用8个字节2)smalldatetime§smalldatetime数据类型与datetime数据类型相似,但其表示范围较小,存储从1/1/1900到6/6/2079,精确只能到分。
smalldatetime数据类型占用4个字节相关知识相关知识§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 July§2005 May 1 2005 1 Sep 99 June July 00相关知识相关知识§数字数字+分隔符:分隔符:允许在不同时间单位间使用斜线、下划线和小数点来分隔时间单位§例: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日§例: 20050624—2005年6月24日 991212—1999年12月12日相关知识相关知识§时间输入格式:时间输入格式:输入时间必须按照小时→分钟→秒→毫秒的顺序输入,在其间用冒号隔开,可将毫秒部分用小数点隔开相关知识相关知识5.文本和图形数据类型.文本和图形数据类型§为了方便存储文本、图像等大型数据,SQL Server还提供了三种专门的文本和图形数据类型在SQL Server 2005中文本和图形数据类型允许存储的数据的最大长度可达2GB事实上,存储在表格中的数据只是一个16个字节的指针这些指针指向数据实际存储的数据页面,通过指针可以检索到相应的数据1)text§text数据类型用来存储大量的文本信息,其理论容量可以达到231-1个字节,但在实际应用中要根据硬盘的存储容量而确定在定义Text数据类型时,不需要指定数据长度,SQL Server会根据数据的长度自动为其分配空间相关知识相关知识(2)ntext§ntext数据类型采用unicode标准字符集,用于存储大容量文本数据。
其理论上的容量为230-1个字节3)Image§用于存储照片、目录图片或者图画,其理论容量为231-1个字节 §使用存储在文本或图形列中的数据时,由于它们存储的数据量太大,所以在进行SQL语句的编写过程中可能要受到限制此外,在文本或图形数据类型定义的列上不能创建索引、主键或外键相关知识相关知识6.货币数据类型.货币数据类型§货币数据类型专门用来货币数据处理1)money类型§money数据类型分别存储在两个4字节的整型值中前面的一个4字节表示货币的整数部分,后面4个字节表示货币的小数部分2)smallmoney类型§smallmoney数据类型分别存储在两个2字节的整型值中前面的一个2字节表示货币的整数部分,后面2个字节表示货币的小数部分当为money或smallmoney的表输入数据时,必须在有效位置前面加一个货币单位符号相关知识相关知识7.位数据类型.位数据类型§Bit称为位数据类型,有两种取值:0和1如果一个表中有8个或更少的bit列时,用1个字节存放如果有9~16个bit列时,用2个字节存放§在输入0以外的其它值时,系统均把它们当1看待相关知识相关知识8.二进制数据类型.二进制数据类型§所谓二进制数据是一些用十六进制表示的数据。
§(1)binary§binary数据类型的定义形式为binary(n),数据的存储长度是固定的,即n+4个字节二进制数据类型的最大长度为8KB,常用于存储图像等数据§(2)varbinary §varbinary 数据类型的定义形式为varbinary(n)或varbinary(max),数据的存储长度与上面所说的varchar数据类型一样是变化的§在输入二进制常量时,需在该常量前面加一个前缀0x 相关知识相关知识9.特殊数据类型.特殊数据类型类型类型含义含义Cursor用于为变量或OUTPUT参数指定的数据类型,这些参数包含对游标的引用timestamptimestamp类型也称作时间戳数据类型,是一种自动记录时间的数据类型,主要用于在数据表中记录其数据的修改时间XML存储XML实例uniqueidentifieruniqueidentifier类型也称作唯一标识符数据类型sql_variantsql_variant数据类型可以用于存储除文本、图形数据和timestamp类型数据外的其它任何合法的SQL Server数据tabletable数据类型用于存储对表或者视图处理后的结果集,就象一个临时的表格,它一般只应用在编程环境中相关知识相关知识二、建立和维护数据表的T-SQL语句1.创建表的T-SQL语句CREATE TABLEüdatabase_name:指明新建的表属于哪个数据:指明新建的表属于哪个数据库。
库üowner:指明数据库所有者的名字指明数据库所有者的名字ütable_name:指明新建的表的名字指明新建的表的名字ücolumn_name:指定列(字段)的名称指定列(字段)的名称ücomputed_column_expression:指定计算列:指定计算列的列值表达式计算列是物理上并不存储在表中的的列值表达式计算列是物理上并不存储在表中的虚拟列计算列由同一表中的其它列通过表达式计虚拟列计算列由同一表中的其它列通过表达式计算得到表达式可以是非计算列的列名、常量、函算得到表达式可以是非计算列的列名、常量、函数、变量,也可以是用一个或多个运算符连接的上数、变量,也可以是用一个或多个运算符连接的上述元素的任意组合述元素的任意组合üTable_constraint:指定表的约束指定表的约束üON { FILEGROUP | DEFAULT }:指定存储表的:指定存储表的文件组如果省略了该句或选择文件组如果省略了该句或选择DEFAULT 选项,选项,则新建的表将存储在默认的文件组中则新建的表将存储在默认的文件组中üTEXTIMAGE_ON { FILEGROUP | DEFAULT }:指定文本和图形数据类型定义的数据存储的文件:指定文本和图形数据类型定义的数据存储的文件组。
如果省略了该句,则这些数据将和表一起存储组如果省略了该句,则这些数据将和表一起存储在相同的文件组中在相同的文件组中CREATE TABLE[ database_name.[ owner ] .| owner.] table_name(({ < column_definition >| column_name AS computed_column_expression| < table_constraint > ::= [ CONSTRAINT constraint_name ] }| [ { PRIMARY KEY | UNIQUE } [ ,...n ]][ ON { FILEGROUP | DEFAULT } ] [ TEXTIMAGE_ON { FILEGROUP | DEFAULT } ]相关知识相关知识2.修改表结构的T-SQL语句ALTER TABLE(1)修改列属性v【例3-1】将学生基本情况表xsjbqk中的学生姓名列改成最大长度为20的varchar型数据,且不能为空ü表中的每一列都有其属性,这些属性包括列名、表中的每一列都有其属性,这些属性包括列名、数据类型、数据长度以及是否允许为空值,修改列数据类型、数据长度以及是否允许为空值,修改列属性使用属性使用ALTER TABLE语句的语句的ALTER COLUMN子句。
子句ALTER TABLE 表名表名 ALTER COLUMN <字段名字段名> <新数据新数据类型类型> <字段长度字段长度>USE StudentsysALTER TABLE xsjbqk ALTER COLUMN Stud_name varchar(20) NOT NULL 相关知识相关知识(2)添加列v【例3-2】向学生基本情况表中添加电子邮件地址(Stud_Email)列,数据类型为可变长字符型,长度50,允许为空(NULL)ü表中的每一列都有其属性,这些属性包括列名、表中的每一列都有其属性,这些属性包括列名、数据类型、数据长度以及是否允许为空值,修改列数据类型、数据长度以及是否允许为空值,修改列属性使用属性使用ALTER TABLE语句的语句的ALTER COLUMN子句ALTER TABLE 表名表名 ADD COLUMN <字段名字段名> <新数据类新数据类型型> <字段长度字段长度>Use StudentsysALTER TABLE xsjbqk ADD Stud_Email varchar(50) NULL(2)添加列ü向表中增加一列时,应使新增加的列有默认值或向表中增加一列时,应使新增加的列有默认值或允许为空值,允许为空值,SQL Server将向表中已存在的行填将向表中已存在的行填充新增列的默认值或空值。
充新增列的默认值或空值ALTER TABLE 表名表名 ADD COLUMN <字段名字段名> <新数据类新数据类型型> <字段长度字段长度>相关知识相关知识(3)删除列v【例3-3】删除Studentsys数据库学生表xsjbqk刚刚建立的Stud_Email字段USE StudentsysALTER TABLE xsjbqkDROP COLUMN Stud_Emailü可以使用可以使用ALTER TABLE语句的语句的DROP COLUMN子句删除表中的列子句删除表中的列ALTER TABLE 表名表名 DROP COLUMN <字段名字段名>[,… ]相关知识相关知识3.删除表的T-SQL语句DROP TABLE§可以用一条DROP TABLE语句删除多个表,表名之间要用逗号隔开但是用这种方法不能删除系统表§当一个表被删除后,它的数据、结构定义、约束、索引都将被永久地被删除如果一个表被其他表通过外键约束使用,则必须先删除定义外键约束的表或删除其外键约束,否则删除将会失败v【例3-4】删除Studentsys数据库中的cjb表DROP TABLE 表名表名USE StudentsysDROP TABLE cjbv注意:CREATE TABLE语句、ALTER TABLE语句和DROP TABLE语句都是表结构的创建和维护语句,而对表数据的维护包括添加、修改、删除数据则需要使用另外的T-SQL语句。
任务实施任务实施一、一、创建图书管理数据表创建图书管理数据表二、二、修改图书管理数据表修改图书管理数据表三三 添加表数据添加表数据任务实施任务实施一、一、创建图书管理数据表创建图书管理数据表创建表的过程是创建表的过程是数据库物理实施数据库物理实施中最关键的一步中最关键的一步一、一、创建图书管理数据表创建图书管理数据表1.使用SQL Server Management Studio创建数据表【训练3-1】用管理工具SQL Server Management Studio在Library数据库中创建读者部门信息表department图图3-1 新建表新建表((1))选择要创建表的数选择要创建表的数据库,这里选择据库,这里选择Library2))在数据库在数据库Library的的展开列表中选择【表】,展开列表中选择【表】,并用鼠标右击,从打开的并用鼠标右击,从打开的快捷菜单中选择【新建表快捷菜单中选择【新建表】命令,如图】命令,如图3-1所示一、一、创建图书管理数据表创建图书管理数据表⑶ 在出现的表设计器窗格中设置表,如图3-2所示图图3-2 创建表创建表①①列名列名“deptid”②②数据类数据类型型“char”③③允许空允许空值值“√”④④【【属性窗属性窗口口】】长度长度“4”⑤⑤重复设置重复设置“Identity”等其他字段等其他字段一、一、创建图书管理数据表创建图书管理数据表⑷保存表。
右击表设计器选项卡,在弹出的快捷菜单中选择【保存(S)Table_1】,系统弹出保存对话框⑸ 在如图3-4所示的对话框中输入表名“department”,单击【确定】按钮,则该表就被保存到数据库Library中了图图3-3 保存数据表保存数据表图图3-4 选择名称对话框选择名称对话框一、一、创建图书管理数据表创建图书管理数据表2.使用T-SQL语句创建数据表USE LibraryGOCREATE TABLE type (typeid char(4) PRIMARY KEY,Typename varchar(20) NOT NULL)GO说明:在创建书刊类别信息表的T-SQL语句中使用了PRIMARY KEY关键字,表示“typeid”为主键 任务实施任务实施一、一、创建图书管理数据表创建图书管理数据表二、二、修改图书管理数据表修改图书管理数据表三三 添加表数据添加表数据任务实施任务实施二、二、修改图书管理数据表修改图书管理数据表1.查看表属性表表3-5 表属性窗口表属性窗口【【常规常规】】选项选项属性窗口属性窗口2.修改表结构(1)利用SQL Server Management Studio§与创建表的方法一样。
2)使用T-SQL语句 【训练3-3】将读者借阅卡信息表中的tel()列改成最大长度为20的varchar型数据,且不能为空USE libraryUSE libraryGOGOALTER TABLE readers ALTER COLUMN tel varchar(20) NOT NULLALTER TABLE readers ALTER COLUMN tel varchar(20) NOT NULLGOGO【训练3-4】向书刊数据表中添加出版日期(bookdate)列,要求为日期型数据USE libraryUSE libraryGO GO ALTER TABLE ALTER TABLE books ADD ADD bookdate smalldatetime Null smalldatetime NullGOGO【训练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) )GOGO3.删除数据表(1)使用SQL Server Management Studio删除表图图3-7 删除表删除表ü选中要删除的表右击,选选中要删除的表右击,选择【删除】选项,打开择【删除】选项,打开“删删除对象除对象”窗口,窗口,ü查看该表删除后对数据库查看该表删除后对数据库的哪些对象产生影响,【显的哪些对象产生影响,【显示依赖关系】查看与该表有示依赖关系】查看与该表有依赖关系的数据库对象。
依赖关系的数据库对象ü确定要删除该表,则单击确定要删除该表,则单击【确定】按钮来完成对表的【确定】按钮来完成对表的删除,如图删除,如图3-7所示二、修改图书管理数据表二、修改图书管理数据表(2)使用T-SQL 语句删除表DROP TABLE departmentDROP TABLE departmentGOGO§可以用一条DROP TABLE语句删除多个表,表名之间要用逗号隔开但是用这种方法不能删除系统表任务实施任务实施一、一、创建图书管理数据表创建图书管理数据表二、二、修改图书管理数据表修改图书管理数据表三三 添加表数据添加表数据任务实施任务实施三三 添加表数据添加表数据1.手工添加表数据【训练3-7】使用对象资源管理器向读者借阅卡信息表中输入数据在对象资源管理器中,在对象资源管理器中,右键单击需要添加数据右键单击需要添加数据的表,在弹出的快捷菜的表,在弹出的快捷菜单中选择【打开表】命单中选择【打开表】命令,打开对应的表,此令,打开对应的表,此时就可以依次向表中输时就可以依次向表中输入数据图图 3-8向读者借阅卡信息表输入数据向读者借阅卡信息表输入数据三三 添加表数据添加表数据2.查看表(1)查看表结构① 使用对象资源管理器查看。
在对象资源管理器中,右键单击需要查看结构的表,在弹出的快捷菜单中选择【修改】命令,打开数据表窗口,即可查看数据表结构的信息② 使用系统存储过程sp_help查看语法格式如下:【训练3-8】查看已创建的读者借阅卡信息表readers的结构EXEC Sp_help table_name EXEC sp_help readers三三 添加表数据添加表数据(2)查看表中的数据① 使用对象资源管理器查看表中的数据在对象资源管理器中,右键单击需要查看数据的表,在弹出的快捷菜单中选择【打开表】命令,打开数据表窗口,即可查看数据表中的数据信息② 使用T-SQL语句查看表中的数据训练3-9】使用SELECT语句查看已创建的读者借阅卡信息表readers中的数据SELECT * FROM readersGO能力拓展能力拓展能力拓展能力拓展1.标识字段IDENTITY的应用v在创建表结构时,每一个表都可以建立一个标识列,该字段包含由系统自动生成的能够标识表中每一行数据的唯一序列值,可以避免人工添加序号带来的序号冲突问题v将一个列作为表中的标识列,可以利用列属性窗口进行设置此时,需要将该列的“标识规范”设置为“是”,同时设置“标识增量”和“标识种子”。
v也可以使用T-SQL语句定义该列的IDENTITY属性ü其中其中SEED是标识种子,即表中的第一行数据的是标识种子,即表中的第一行数据的标识列的取值,默认值为标识列的取值,默认值为1;;INCREMENT是标识是标识增量,即每一个新标识比上一个增长多少,默认值增量,即每一个新标识比上一个增长多少,默认值为为1IDENTITY[((SEED , INCREMENT))]ü其中其中SEED是标识种子,即表中的第一行数据是标识种子,即表中的第一行数据的标识列的取值,默认值为的标识列的取值,默认值为1;;INCREMENT是是标识增量,即每一个新标识比上一个增长多少,标识增量,即每一个新标识比上一个增长多少,默认值为默认值为1IDENTITY[((SEED , INCREMENT))]能力拓展能力拓展【训练3-10】创建一个带有标识字段的教师基本情况表teacher,该表的结构如表3-7所示:列名数据库类型长度允许空说明教师编号smallint×标识增量为1,标识种子为1教师姓名varchar10×性别char2√所在单位varchar50√职称varchar10√出生年月smalldatetime√表表3-7 教师基本情况表教师基本情况表teacher能力拓展能力拓展选择要创建选择要创建表的数据库表的数据库表设计器表设计器窗格窗格标识规范、标识规范、标识增量、标识增量、标识种子标识种子图图3-9 创建标识字段创建标识字段能力拓展能力拓展v使用IDENTITY列时,应该注意以下几点:§每张表只允许一个IDENTITY列;§ 该列必须使用下列数据类型之一:decimal、int、numeric、smallint 和tinyint;§ 该列必须设置成不允许为空值,且不能有默认值。
§IDENTITY列的数据类型,在一定程度上决定了表格中能容纳的数据行的最大数目例如,由于tinyint列只能存储256个不同的值,范围从0~255所以,如果用tinyint作IDENTITY列的数据类型,也就限制了该表的数据行的数据最多不超过255行当表中的数据行超过了IDENTITY列规定的范围,就不能向表中插入新的数据服务器不会自动去寻找因为删除或其他原因跳过而没有使用IDENTITY列的值(如目前IDENTITY列的数据为1、2、3,如果将IDENTITY列为3的记录删除,则再添加数据时IDENTITY列将从4开始)即使删除了表中的所有行,使表成为一张空表,SQL Server也不会从头开始使用那些曾经被用过的IDENTITY数值能力拓展能力拓展2.使用系统存储过程sp_rename修改数据表名和表列§可使用系统存储过程sp_rename修改数据表和字段名称sp_rename语法如下üold_name为要修改的对象名称,为要修改的对象名称,new_name为对象的新名称,为对象的新名称,object_type用于指定要修改的对象的类型,可以为下列值用于指定要修改的对象的类型,可以为下列值::COLUMN:指定修改字段名称。
指定修改字段名称DATABASE:指定修改数据库名称指定修改数据库名称INDEX:指定修改索引名称指定修改索引名称OBJECT:指定修改约束(:指定修改约束(CHECK、、FOREIGN KEY、、PRIMARY KEY、、UNIQUE)、用户表、视图、存储过程、触发器和规则等对象用户表、视图、存储过程、触发器和规则等对象USERDATATYPE:指定修改用户自定义数据类型名称指定修改用户自定义数据类型名称ü在修改表名称时可以不指定对象类型在修改表名称时可以不指定对象类型EXEC sp_rename 'old_name','new_name','object_type'能力拓展能力拓展【训练3-11】使用系统存储过程sp_rename将“教师基本情况表”名称修改为“教师表”EXEC sp_rename '教师基本情况表', '教师表'【训练3-12】使用系统存储过程sp_rename将“教师表”的“所在单位”字段名称修改为“部门”EXEC sp_rename '教师表.所在单位 ','部门','COLUMN' 维护数据完整性维护数据完整性任务四任务四能力目标和知识目标能力目标和知识目标能力目标能力目标1..能够熟练建立表的主键;能够熟练建立表的主键;2.能够分析并建立表之间的关系;.能够分析并建立表之间的关系;3.能够使用约束、默认值和规则.能够使用约束、默认值和规则来实现数据的完整性;来实现数据的完整性;4.能够使用.能够使用ALTER TABLE、、CREATE RULE和和CREATE DEFAULT等等SQL语句进行数语句进行数据完整性的维护。
据完整性的维护知识目标知识目标1..熟悉实体完整性、参照完整性和域完整性等数据完整性的概念;2.了解数据完整性的实现机制任务导入任务导入v在设计表时应该考虑对哪些列进行约束设置以达到数据完整性的目的所谓数据完整性,是指存储在数据库中数据的正确性和一致性设计数据完整性的目的是为了保证数据库中的数据的质量,防止数据库中存在不符合规定的数据,防止错误信息的输入与输出例如Library数据库中应有如下约束:§在读者借阅卡表readers中,读者的编号必须唯一,不能重复§在读者借阅卡表readers中,读者的姓名不能为空值§在读者借阅卡表readers中,借阅数量不能为负数§在借阅信息表borrow中,读者的借阅卡编号和图书编号应分别在读者借阅卡表readers和书刊信息表books中v本项目要求完成如下任务:1.按以下关系设置各表的主键,各表的主键(下划线表示,其中借阅信息表的主键为借阅卡编号和图书编号)如下:§部门信息(部门编号,部门名称)§读者借阅卡信息(借阅卡编号,姓名,部门编号,, Email,借阅数量)§书刊类别信息(类别编号,类别名称)§书刊信息(图书编号,图书名称,类别编号,出版社,作者,单价)§借阅信息(借阅卡编号,图书编号,借阅日期,还书日期)能力拓展能力拓展2.将图书管理数据库中借阅信息表borrow的读者借阅卡编号和书刊编号分别设置为读者借阅卡信息表readers和书刊信息表books的外键。
3.按相同的方法分别给数据库中其它表建立外键关系4.为部门信息表department中的部门名称创建一个唯一性约束5.向读者借阅卡信息表readers中添加约束,要求输入的电子邮件地址必须包含‘@’符号6.为借阅信息表borrow中的借阅日期字段创建一个默认值,默认日期为当前日期(getdate())7.为借阅信息表borrow中的借阅日期字段创建一个检查约束,使借阅日期不大于“2009-12-31”相关知识相关知识一、数据的完整性ü用户定义的完整性是针对用户定义的完整性是针对某一具体关系数据库的约某一具体关系数据库的约束条件,它反映某一具体束条件,它反映某一具体应用所涉及的数据必须满应用所涉及的数据必须满足的语义要求足的语义要求ü关系模型中实体与实体关系模型中实体与实体间的联系是用关系来描述间的联系是用关系来描述ü参照完整性就是涉及两参照完整性就是涉及两个或两个以上关系的一致性个或两个以上关系的一致性维护维护üSQL Server中提供了主中提供了主键和外键约束来维护参照完键和外键约束来维护参照完整性ü域完整性是对表中的某些域完整性是对表中的某些数据的域值使用的有效性数据的域值使用的有效性的验证限制,它反映了业的验证限制,它反映了业务的规则。
务的规则üSQL Server中提供了检中提供了检查约束等来维护域完整性查约束等来维护域完整性ü一个基本关系通常对应现一个基本关系通常对应现实世界的一个实体集实世界的一个实体集ü现实世界中的实体是可区现实世界中的实体是可区分分üSQL Server中提供了主键中提供了主键约束和唯一性约束来维护实约束和唯一性约束来维护实体完整性体完整性实体实体完整性完整性参照参照完整性完整性用户用户自定义自定义完整性完整性域域完整性完整性相关知识相关知识二、数据完整性的实现1.SQL中的完整性约束机制约束机制约束机制主键(主键(Primary Key))外键(外键(Foreign Key))默认(默认(Default))唯一性(唯一性(Unique))检查(检查(Check))相关知识相关知识序号序号约束机制约束机制含义含义1主键(Primary Key)约束利用表中的一列或多列组合来唯一地识别表中的每一行数据2外键(Foreign Key)约束主要用来维护两个表之间的一致性关系外键的建立主要是通过将一个表A中的主键所在列包含在另一个表B中,这些列就是表B的外键可以称表A为主键表(或父表),表B为外键表(或子表)。
3唯一性(Unique)约束主要是用来确保不受主键约束的列上的数据的唯一性使用唯一性约束和主键约束都可以保证数据的唯一性但它们之间有明显的不同4检查(Check)约束可以用于限制列上可以接受的数据值,通过使用逻辑表达式来限制列上可以接受的值5默认(Default)约束在输入操作中没有提供输入值时,系统将自动提供给某列的默认值相关知识相关知识2.实现数据完整性的T-SQL语句(1)建立表的完整性语句üAS<表达式表达式>:计算字段是特殊的字段,该字段:计算字段是特殊的字段,该字段的值由表中的其他字段通过计算得出的值由表中的其他字段通过计算得出üCONSTRAINT 约束名约束名 PRIMARY KEY [CLUSTERED|NONCLUSTERED] (主键所在的列主键所在的列名名):用于定义主键约束,其中:用于定义主键约束,其中CLUSTERED|NONCLUSTERED是指定索引的类是指定索引的类型,型,CLUSTERED为默认值为默认值,表示是聚集索引;表示是聚集索引;üCONSTRAINT 约束名约束名 UNIQUE [CLUSTERED|NONCLUSTERED] (唯一约束所在唯一约束所在的列名的列名):用于定义唯一性约束;:用于定义唯一性约束;üCONSTRAINT 约束名约束名 FOREIGN KEY (从表外从表外键的列名键的列名) REFERENCES 主表名主表名(主表主键的列名主表主键的列名)]:用于定义外键约束;:用于定义外键约束;üCONSTRAINT 约束名约束名 CHECK [Not For Replication](逻辑表达式逻辑表达式):用于定义检查约束;:用于定义检查约束;üCONSTRAINT 约束名约束名 DEFAULT 约束表达式约束表达式 [For 列名列名]:用于定义默认约束;:用于定义默认约束;CREATE TABLE [数据库名数据库名.[表的拥有者表的拥有者.]表名表名( { <列名列名> <数据类型数据类型> | AS<表达式表达式> [CONSTRAINT 约束名约束名 [NULL|NOT NULL] [IDENTITY(初值初值,步长步长)] [COLLATE] |DEFAULT 缺省值缺省值 |CHECK(范围表达式范围表达式) |PRIMARY KEY CLUSTERED|NONCLUSTERED (主键所在的列主键所在的列名名) |UNIQUE CLUSTERED|NONCLUSTERED (唯唯一约束所在的列名一约束所在的列名) |FOREIGN KEY (从表外键的列名从表外键的列名) REFERENCES 主表名主表名(主表主键的列名主表主键的列名)]相关知识相关知识(2)修改表的数据完整性语句üWITH CHECK|WITH NOCHECK:用于表示:用于表示是否使用新建的约束去检验数据表中的原有记是否使用新建的约束去检验数据表中的原有记录,默认为录,默认为WITH CHECK,表示要检查,,表示要检查,WITH NOCHECK则表示不检查。
则表示不检查üADD CONSTRAINT:表示增加一个约束表示增加一个约束üDROP CONSTRAINT:表示删除一个约束表示删除一个约束ALTER TABLE 表名表名 [WITH CHECK|WITH NOCHECK]ADD CONSTRAINT 约束名约束名 约束类型约束类型DROP CONSTRAINT 约束名约束名任务实施任务实施一、一、利用约束维护数据完整性利用约束维护数据完整性二、二、利用默认值维护数据完整性利用默认值维护数据完整性任务实施任务实施一、一、利用约束维护数据完整性利用约束维护数据完整性1. 建立主键约束(1)利用SQL Server Management Studio创建主键ü建立数据库的表时,在指建立数据库的表时,在指定的列上右击,在弹出的定的列上右击,在弹出的快捷菜单中选择【设置主快捷菜单中选择【设置主键】命令,则该列就被设键】命令,则该列就被设置为主键,并且在该列的置为主键,并且在该列的开头会出现一个类似钥匙开头会出现一个类似钥匙的图标ü在该列上再次右击,则弹在该列上再次右击,则弹出的快捷菜单选择第一项出的快捷菜单选择第一项【移去主键】命令,将取【移去主键】命令,将取消对该列的主键约束。
消对该列的主键约束图图4-2 利用利用SQL Server Management Studio创建主键创建主键一、利用约束维护数据完整性一、利用约束维护数据完整性(2)利用T-SQL语句创建主键 【训练4-1】创建一个读者部门信息表department,以部门编号deptID为主键USE LibraryGOCREATE TABLE department(deptID [char](4) NOT NULL,dept [varchar](20) NOT NULL, CONSTRAINT [PK_deptid] PRIMARY KEY (deptID))GO一、利用约束维护数据完整性一、利用约束维护数据完整性v此外,也可以用下列的简洁方式定义主键在这个例子中没有为主键提供约束名,SQL Server 会自动为它提供一个名字USE LibraryGOCREATE TABLE department (deptID [char](4) PRIMARY KEY,dept [varchar](20) NOT NULL,)GO一、利用约束维护数据完整性一、利用约束维护数据完整性 【训练4-3】向已有表中添加主键,如果创建部门信息表department时没有定义主键约束,可以使用下列语句定义deptID主键。
USE LibraryGOALTER TABLE department ADD CONSTRAINT PK_ID PRIMARY KEY(deptID)GOv向已存在的表中的某一列或某几列添加主键约束,表中已有的数据在这几列上需要满足两个条件:v不能有重复的数据;v不能有空值一、利用约束维护数据完整性一、利用约束维护数据完整性【训练4-4】删除主键约束,删除department表中deptID列上的主键约束USE LibraryGOALTER TABLE department DROP CONSTRAINT PK_ID PRIMARY KEY(deptID)一、利用约束维护数据完整性一、利用约束维护数据完整性2. 建立外键约束(1)利用SQL Server Management Studio为书刊信息表books创建外键约束图图4-3 外键关系对话框外键关系对话框ü在在SQL Server Management Studio中,中,右击要建立外键的表右击要建立外键的表ü在快捷菜单中选择【修改在快捷菜单中选择【修改】命令,在表设计器中打开】命令,在表设计器中打开该表。
该表ü在表设计器菜单中单击【在表设计器菜单中单击【关系】命令,打开关系】命令,打开“外键关外键关系系”对话框,单击【添加】对话框,单击【添加】按钮该关系将以系统提供按钮该关系将以系统提供的名称显示在的名称显示在“选定的关系选定的关系”列表中,名称格式为列表中,名称格式为FK_books _books,其中,其中books是外键表的名称是外键表的名称一、利用约束维护数据完整性一、利用约束维护数据完整性ü单击单击“外键关系外键关系”对话框右对话框右侧网格中的侧网格中的“表和列规范表和列规范”,再单击该属性右侧的省略,再单击该属性右侧的省略号按钮【号按钮【…】,打开】,打开“表和表和列列”对话框ü在在“表和列表和列”对话框中,从对话框中,从“主键表主键表”下拉列表中选择下拉列表中选择主键表,这里选择图书类别主键表,这里选择图书类别表表typeü在下方的网格中选择要分配在下方的网格中选择要分配给表的主键列给表的主键列“typeID”在右侧相邻的网格中选择外在右侧相邻的网格中选择外键表的相应外键列键表的相应外键列“typeID”,表设计器会给,表设计器会给出建议的关系名称出建议的关系名称“FK_books _type”,如图,如图4-4所示。
所示图图4-4 “表和列表和列”对话框对话框一、利用约束维护数据完整性一、利用约束维护数据完整性已已创建外键约创建外键约束并建立关系束并建立关系图图4-5 设置外键约束设置外键约束一、利用约束维护数据完整性一、利用约束维护数据完整性图图4-3 外键关系对话框外键关系对话框【删除】按【删除】按钮删除关系钮删除关系对对“插入操作插入操作”和和“更新操作更新操作”选择选择“无操作无操作”、、“层层叠叠”、、“设置空设置空”和和“设置默认值设置默认值”等选项强制外键约束】【强制外键约束】为为“是是”,则创建,则创建外键约束时对现存外键约束时对现存数据进行检查数据进行检查【强制复制约【强制复制约束】为束】为“是是”,则在进行数,则在进行数据复制时,进据复制时,进行外键约束检行外键约束检查查一、利用约束维护数据完整性一、利用约束维护数据完整性(2)利用T-SQL语句创建外健约束 【训练4-5】在已创建的书刊借阅信息表borrow上,在图书编号bookID列上创建外键与书刊信息表books中的图书编号bookID相关联,在借阅卡编号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)GO一、利用约束维护数据完整性一、利用约束维护数据完整性3. 建立CHECK约束(1)用SQL Server Management Studio创建检查约束§为借阅信息表borrow中的借阅日期字段创建一个检查约束,使借阅日期不大于“2009-12-31”v在SQL Server Management Studio的对象资源管理器中,右击要建立Check约束的表,例如书刊借阅信息表borrow,在快捷菜单中选择【修改】命令,在表设计器中打开该表v在“表设计器”工具栏中选择【管理Check约束】命令,或者右键单击已打开表的空白处,在快捷菜单中单击【Check约束】命令,打开“Check约束”对话框。
一、利用约束维护数据完整性一、利用约束维护数据完整性【添加】按钮【添加】按钮系统提供的名称系统提供的名称格式为格式为CK_borrow,其,其中中borrow是所选是所选表的名称表的名称图图4-6 设置设置Check约束约束表达式表达式“borrowdate<=’2009-12-31’”单击该属性单击该属性右侧出现的右侧出现的省略号按钮省略号按钮【【…】】默认选中默认选中【【在创建和在创建和重新启用时检查现存重新启用时检查现存数据数据】】为为“是是”,表,表示对现存数据进行检示对现存数据进行检查一、利用约束维护数据完整性一、利用约束维护数据完整性(2)利用T-SQL语句创建检查约束 【训练4-6】对已创建的读者借阅卡信息表readers,在借书数量borrownum列上创建检查约束,要求借书数量不小于0USE libraryGOALTER TABLE readers ADD CONSTRAINT CK_readers CHECK((borrownum>= 0))GO一、利用约束维护数据完整性一、利用约束维护数据完整性 【训练4-7】向读者借阅卡信息表readers中添加约束,要求输入的电子邮件地址必须包含‘@’符号。
USE libraryGOALTER TABLE readers ADD CONSTRAINT CK_ email CHECK (Email like ‘%@%’ )GO一、利用约束维护数据完整性一、利用约束维护数据完整性4. 建立UNIQUE约束(1)利用SQL Server Management Studio为部门信息表中的部门名称创建唯一性约束v在SQL Server Management Studio的对象资源管理器中,右击要建立唯一性约束的表,例如department,在快捷菜单中选择【修改】命令,在表设计器中打开该表v右键单击已打开表的空白处,在快捷菜单中单击【索引/键】命令,打开“索引/键”对话框单击【添加】按钮,此时将添加一个唯一键或索引,该索引以系统提供的名称显示在“选定的主/唯一键或索引”列表中,名称格式为UQ_department ,其中department是所选表的名称如图4-7所示一、利用约束维护数据完整性一、利用约束维护数据完整性图图4-7 设置唯一性(设置唯一性(Unique)约束)约束单击单击打开打开“索引列索引列”对对话框话框是唯一的是唯一的”属性修属性修改为改为“是是”索引名称修索引名称修改为改为UQ_ department一、利用约束维护数据完整性一、利用约束维护数据完整性(2)利用T-SQL语句创建唯一性约束【训练4-8】在已建立的部门信息表的“部门名称”创建一个唯一性约束。
USE LibraryGOALTER TABLE department ADD Constraint UQ_department Unique(dept)GOCREATE TABLE department(deptID char(4) PRIMARY KEY,dept Varchar(20)Unique)任务实施任务实施一、一、利用约束维护数据完整性利用约束维护数据完整性二、二、利用默认值维护数据完整性利用默认值维护数据完整性任务实施任务实施二、二、利用默认值维护数据完整性利用默认值维护数据完整性1. 建立默认值约束(1)利用SQL Server Management Studio创建默认约束 【训练4-9】为借阅信息表borrow中的借阅日期字段创建一个检查约束,使借阅日期默认为当前日期图图4-8 设置默认约束设置默认约束ü在数据库表设计或修改在数据库表设计或修改界面上,选中要创建默认界面上,选中要创建默认约束的列属性设置中的【约束的列属性设置中的【默认值或绑定】文本框中默认值或绑定】文本框中输入默认的表达式输入默认的表达式ü默认表达式也可以是一默认表达式也可以是一个常数值,例如将借书数个常数值,例如将借书数量的默认值设置为量的默认值设置为0,可,可以在以在borrownum列的默认列的默认值框中直接输入值框中直接输入“0”。
二、利用默认值维护数据完整性二、利用默认值维护数据完整性(2)利用T-SQL语句创建唯默认约束 【训练4-10】修改读者借阅卡信息表,创建默认约束,借书数量(borrownum)列默认为0ALTER TABLE readers ADD CONSTRAINT De_readers DEFAULT 0 for borrownumGOCREATE TABLE readers( ……borrownum smallint DEFAULT 0,……)能力拓展能力拓展能力拓展能力拓展1. 规则与数据完整性v在SQL Server 2005中,除了可以使用约束来维护数据的完整性外,还可以使用规则维护数据的完整性v规则是单独存储的独立的数据库对象,虽然它也是对数据库存储在表中的列或用户自定义数据类型中的值的规定和限制,但是它与其作用的数据表或用户自定义数据类型是相互独立的,即数据表或用户自定义数据对象的删除修改不会对与之相连的规则产生影响v规则和约束可以同时使用,相比较而言,CHECK约束是用于限制字段值的更标准的方法,但CHECK约束不能直接作用于用户自定义数据类型能力拓展能力拓展v在SQL Server 2005中,可以使用CREATE RULE语句和系统存储过程sp_bindrule来实现规则的应用。
1)创建规则üule_name表示新建的规则名;表示新建的规则名;ücondition_expression表示定义规则的条件表示定义规则的条件CREATE RULE rule_name AS condition_expressionürule_name表示已创建的规则名;表示已创建的规则名;ütable_name表示要绑定的数据表,表示要绑定的数据表,ücolumn_name为要绑定的表的数据列为要绑定的表的数据列EXEC sp_bindrule rule_name , ‘table_name.column_name ’(2)绑定规则v在SQL Server 2005中,可以使用CREATE RULE语句和系统存储过程sp_bindrule来实现规则的应用能力拓展能力拓展 【训练4-11】在数据库library中创建一个规则,并将其绑定到books表中的单价(price)列上,使得用户输入的图书单价在0~200之间,否则提示输入无效USE libraryGOCREATE RULE r_price AS @price>=0 and @price<=200GOEXEC sp_bindrule r_price , ‘books.price’ü创建了规则r_price,并将其绑定到books表的price列上创建和管理索引创建和管理索引任务五任务五能力目标和知识目标能力目标和知识目标能力目标能力目标1.. 能够使用SQL Server Management Studio在表中建立必要的索引;2.能够使用CREATE INDEX、DROP INDEX等SQL语句建立、修改和删除索引。
知识目标知识目标1.熟悉索引的概念、作用和分类;2.了解合理使用索引的准则任务导入任务导入v数据库设计者的一个重要责任就是正确定义具有优化功能的数据表SQL Server 2005提供了表的索引和关键字机制来帮助SQL Server优化查询响应的速度在前面的任务中我们已经创建了数据库和数据表,在此基础上我们还需要建立必要的索引,以便优化数据库的性能,提高数据的查询速度以及数据处理(包括数据表的连接等)的速度在本项目中我们的任务主要有以下几点:1.在SQL Server Management Studio 中为数据表创建索引;2.使用CREATE INDEX命令创建索引;3.修改索引;4.删除索引任务导入任务导入v对Library数据库进行如下操作:1.为书刊数据表中的作者字段创建一个降序、填充因子为60%的非聚集索引2.为读者信息表的部门编号创建一个降序、填充因子为60%、重新计算统计项的非唯一、非聚集索引3.使用创建索引向导为读者信息表的姓名创建一个唯一性的非聚集索引4.使用T-SQL语句为书刊数据表中书的价格创建一个升序、填充因子为70%的非聚集索引5.将读者信息表中的姓名索引改为非唯一、填充因子60%。
相关知识相关知识一、索引概述1.索引的概念v对数据库最频繁的操作就是数据的查询,如果没有索引,则在查询时SQL Server要对整个表进行扫描当表中的数据很多时,搜索数据就需要很长的时间索引是一种依赖于表建立的、存储在数据库中的独立文件,它保存着表中排序的索引列,并且记录了索引列在数据表中的物理存储位置,实现了表中数据的逻辑排序相关知识相关知识ü索引是一种依赖于索引是一种依赖于数据数据库库表建立的、存储在数表建立的、存储在数据库中的独立文件据库中的独立文件ü索引索引组织了一个数据表组织了一个数据表中的关键值列表通过中的关键值列表通过这个列表,这个列表,SQL Server可以快速地查询到需要可以快速地查询到需要的数据页,从而得到查的数据页,从而得到查询结果聚集索引聚集索引非聚集索引非聚集索引唯一性索引唯一性索引视图索引视图索引全文索引全文索引索引的类型索引的类型相关知识相关知识2.索引的类型类型类型含义含义聚集索引聚集索引在聚集索引中,行的物理存储顺序与索引逻辑顺序完全相同,即在聚集索引中,行的物理存储顺序与索引逻辑顺序完全相同,即索引的顺序决定了表中行的存储顺序,因为行是经过排序的,所索引的顺序决定了表中行的存储顺序,因为行是经过排序的,所以每个表只能有一个聚集索引。
以每个表只能有一个聚集索引非聚集索引非聚集索引非聚集索引并不是在物理上排列数据,即索引中的逻辑顺序并不非聚集索引并不是在物理上排列数据,即索引中的逻辑顺序并不等同于表中行的物理顺序,索引仅仅记录指向表中行的位置的指等同于表中行的物理顺序,索引仅仅记录指向表中行的位置的指针,这些指针本身是有序的,通过这些指针可以在表中快速定位针,这些指针本身是有序的,通过这些指针可以在表中快速定位数据唯一索引唯一索引按照索引实现的功能还可以划分为唯一性索引和非唯一性索引按照索引实现的功能还可以划分为唯一性索引和非唯一性索引一个唯一性索引能够保证在创建索引的列或多列的组合上不包括一个唯一性索引能够保证在创建索引的列或多列的组合上不包括重复的数据,聚集索引和非聚集索引都可以是唯一性索引重复的数据,聚集索引和非聚集索引都可以是唯一性索引视图索引视图索引在视图中也可以建立索引,称作视图索引在视图中也可以建立索引,称作视图索引全文索引全文索引全文索引是一种特殊类型的基于标记的功能性索引,是实现全文全文索引是一种特殊类型的基于标记的功能性索引,是实现全文检索功能的全文检索只对字符模式进行检索检索功能的全文检索只对字符模式进行检索相关知识相关知识3.创建索引的注意事项v创建索引要花费时间和占用存储空间;v索引虽然加快了检索速度,却减慢了数据修改的速度。
以下情况适合创建索引以下情况适合创建索引不考虑建立索引不考虑建立索引的情况的情况ü用作查询条件的列,如主键,由于主键可以唯一表示行,通过主键可以快速定位到表的某一行,因此,一般要在主键上创建索引;ü定义外键的列可以建立索引,外键的列通常用于数据表与数据表之间的连接,在其上建立索引可以加快数据表的连接;ü频繁按范围搜索的列,如学生基本ü很少或从来不作为查询条件的列;ü在小表中通过索引查找行可能会比简单地进行全表扫描还慢;ü只从很小的范围内取值的列;ü数据类型为text、ntext、image或bit的列上不要创建索引,因为这些类型的数据列的数据量要么很大,要么很小,不利于相关知识相关知识v聚集索引查询速度更快,但只能创建一个;v非聚集索引维护比较容易,可以创建249个动作描述动作描述使用聚集索引使用聚集索引使用非聚集索引使用非聚集索引列经常被分组排序列经常被分组排序√√返回某范围内的数据返回某范围内的数据√×一个或极少不同值一个或极少不同值××少数目的不同值少数目的不同值√×大数目的不同值大数目的不同值×√频繁更新的列频繁更新的列×√外键列外键列√√主键列主键列√√频繁修改索引列频繁修改索引列×√相关知识相关知识二、索引的创建和使用v创建索引有直接和间接两种方法。
§直接创建索引就是使用命令或者在SQL Server Management Studio 中直接创建索引;§·间接创建索引就是通过创建数据表而附加创建了索引,例如在表中定义主键约束(Primary Key)或唯一性约束(Unique)时,系统自动创建了索引1.建立索引的T-SQL语句CREATE INDEXCREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_nameON { table_name | view_name } ( column_name [ ASC | DESC ] [ ,...n ] )üUNIQUE表示创建唯一性索引;表示创建唯一性索引;üCLUSTERED表示创建聚集索引;表示创建聚集索引;üNONCLUSTERED表示创建非聚集索引;表示创建非聚集索引;üON 表示可以在表或视图上创建索引,这里表示可以在表或视图上创建索引,这里指定表或视图名称和相应的列名称;指定表或视图名称和相应的列名称;üindex_name 用于指定所创建的索引名称;用于指定所创建的索引名称;üASC表示索引为升序排序,表示索引为升序排序,DESC表示索引表示索引为降序排序,默认为为降序排序,默认为ASC。
相关知识相关知识2.修改索引的T-SQL语句ALTER INDEXALTER INDEX { index_name | ALL }ON
不重新生成或重新组织索引的索引选项相关知识相关知识3.删除索引的T-SQL语句DROP INDEXDROP INDEX table_name.index_nameGOütable_name用于指定索引列所在的表;用于指定索引列所在的表;üindex_name用于指定要删除的索引名称用于指定要删除的索引名称üDROP INDEX命令不能删除由命令不能删除由CREATE TABLE或者或者ALTER TABLE命令创建命令创建的主键或者唯一性约束索引,也不能删除系统表中的索引的主键或者唯一性约束索引,也不能删除系统表中的索引ü可以用一条可以用一条DROP INDEX语句删除多个索引,索引之间要用逗号分开语句删除多个索引,索引之间要用逗号分开u可以使用系统存储过程给索引更名,其语法格式如下:EXEC Sp_rename ‘table_name.index_name’, ‘new_name’ütable_name.index_name为原有索引名,为原有索引名,ünew_name为新索引名为新索引名任务实施任务实施一、一、创建索引创建索引二、二、管理索引管理索引任务实施任务实施一、一、创建索引创建索引1.使用SQL Server Management Studio向导建立索引(1)用SQL Server Management Studio在建表时创建索引v【训练5-1】在建立读者借阅信息表readers时,按读者编号readerID建立主键约束,索引方式为聚集索引;按读者姓名Name建立唯一性约束,索引方式为非聚集索引。
①① 在在SQL Server Management Studio的对象资源管理器中,右击要建的对象资源管理器中,右击要建立约束的表立约束的表readers,在快捷菜单中选择【修改】命令,在表设计器中打,在快捷菜单中选择【修改】命令,在表设计器中打开该表②② 在表设计器中,选择在表设计器中,选择“readerID”字段,在【表设计器】工具栏中选字段,在【表设计器】工具栏中选择【设置主键】命令,则在择【设置主键】命令,则在“readerID”字段的前面多了一个小钥匙的字段的前面多了一个小钥匙的图标,表示已创建了主键图标,表示已创建了主键③③ 在任意列上右击,在弹出的快捷菜单中选择【索引在任意列上右击,在弹出的快捷菜单中选择【索引/键】命令,打开【键】命令,打开【索引索引/键】对话框键】对话框④④ 在【索引在【索引/键】对话框中单击【添加】按钮创建索引键】对话框中单击【添加】按钮创建索引一、创建索引一、创建索引【是唯一的】文【是唯一的】文本框中选择本框中选择“是是”来创建一个唯来创建一个唯一性约束一性约束创建索引的列创建索引的列name在索引名称中在索引名称中为索引命名为索引命名图图5-1创建表主键索引和唯一索引创建表主键索引和唯一索引一、创建索引一、创建索引(2)用SQL Server Management Studio在已存在的表上创建索引v【训练5-2】为书刊数据表中的作者字段创建一个降序、填充因子为60%的非聚集索引。
①① 在对象资源管理器窗口中在对象资源管理器窗口中选中要创建索引的表选中要创建索引的表books,,并展开出现并展开出现“索引索引”列;列;②② 用鼠标右击用鼠标右击“索引索引”列,列,在快捷菜单中选择【新建索引在快捷菜单中选择【新建索引】命令;打开【新建索引】对】命令;打开【新建索引】对话框,话框,③③ 在【新建索引】对话框中在【新建索引】对话框中单击【添加】按钮,打开【从单击【添加】按钮,打开【从‘dbo.books’中选择列】对中选择列】对话框,在该对话框列表中选择话框,在该对话框列表中选择要创建索引的列要创建索引的列author,(可,(可以选择多列)单击【确定】以选择多列)单击【确定】按钮退出按钮退出图图5-2 新建索引(常规)新建索引(常规)【索引名称【索引名称】】INDEX_author索引类型索引类型一、创建索引一、创建索引图图5-3 新建索引(选项)新建索引(选项)ü【选项】选项卡,对创建的索【选项】选项卡,对创建的索引进一步编辑引进一步编辑ü【设置填充因子】选项,它用【设置填充因子】选项,它用来指定在创建索引的过程中,来指定在创建索引的过程中,对各索引页的叶级进行填充的对各索引页的叶级进行填充的程度。
该项默认值为程度该项默认值为0,表示将,表示将叶子节点索引页全部填满设叶子节点索引页全部填满设置为置为0与设置为与设置为100意义完全相意义完全相同ü数据表中的数据不经常改动,数据表中的数据不经常改动,最好将填充因子设置得大一点,最好将填充因子设置得大一点,相反则将填充因子设置得小一相反则将填充因子设置得小一点填充因子只在创建索引时点填充因子只在创建索引时才有用设置填充因子【设置填充因子】】【选项【选项】】一、创建索引一、创建索引2. 使用T-SQL语句建立索引v【训练5-3】为读者借阅卡信息表(readers)中的号(tel)创建一个唯一性的非聚集索引§UNIQUE关键字代表创建唯一性索引,NONCLUSTERED关键字代表创建非聚集索引,该关键字可以省略,SQL Server默认创建非聚集索引,Ix_tel是用户自定义的索引名§CLUSTERED关键字代表创建聚集索引,DESC代表索引的排序方法是降序,默认是升序ASCUSE libraryGOCREATE UNIQUE NONCLUSTERED INDEX Ix_tel On readers(tel)GO一、创建索引一、创建索引v【训练5-4】为书刊信息表中的书刊名称创建一个非唯一性的非聚集索引。
§With子句中的Drop Existing是指如果表中已经存在同名的索引则将其删除,重建索引USE library GOCREATE NONCLUSTERED INDEX Ix_bookname On books(bookName)With Drop ExistingGO任务实施任务实施一、一、创建索引创建索引二、二、管理索引管理索引任务实施任务实施二、二、管理索引管理索引1.查看和修改索引⑴ 使用SQL Server Management Studio查看和修改索引ü在在SQL Server Management Studio对对象资源管理器窗口中,象资源管理器窗口中,可以展开表的索引列,可以展开表的索引列,看到已创建的索引看到已创建的索引ü右键单击索引名称,右键单击索引名称,在弹出的快捷菜单中选在弹出的快捷菜单中选择【属性】命令,可以择【属性】命令,可以打开【索引属性】对话打开【索引属性】对话框创建索引的创建索引的脚本脚本索引索引选项选项图图5-4 查看索引脚本查看索引脚本二、管理索引二、管理索引⑵ 使用系统存储过程Sp_helpindex查看索引信息USE libraryGOEXEC Sp_helpindex readers读者借阅卡信息读者借阅卡信息表上所有索引的表上所有索引的名称、类型和建名称、类型和建索引的列索引的列图图5-5 利用存储过程查看索引信息利用存储过程查看索引信息二、管理索引二、管理索引⑶ 使用T-SQL语句禁用及重新生成索引§索引数据更新后可能会分散在硬盘的各个位置,由此产生碎片,并影响查询性能。
可以使用重新生成索引来删除索引碎片§重新生成索引将原有的索引删除并重新创建一相同的索引§可以使用SQL Server Management Studio来重新生成索引,也可以使用T-SQL语句重新生成索引v【训练5-5】使用T-SQL语句重新生成library数据库中books表里的“Ix_bookname”索引,并设置索引填充,填充因子为60USE libraryALTER INDEX Ix_bookname ON books REBUILD WITH (PAD_INDEX=ON,FILLFACTOR=60)GO二、管理索引二、管理索引v【训练5-6】使用T-SQL语句禁用library数据库中books表里的“Ix_bookname”索引§禁用索引表示禁止用户使用该索引,可以防止用户在查询记录时访问该索引,被禁用的索引要重新生成后才能被再次启用USE libraryALTER INDEX Ix_bookname ON books DISABLEGO二、管理索引二、管理索引2. 删除索引v【训练5-7】使用SQL Server Management Studio删除索引§在SQL Server Management Studio对象资源管理器窗口中,可以展开指定表的索引列,右键单击对应的索引名,在弹出的快捷菜单中单击【删除】按钮,在弹出的【删除对象】对话框中单击【确定】即可删除索引。
v【训练5-8】使用T-SQL语句删除已创建的Ix_bookname索引USE libraryGODROP INDEX books.Ix_bookname能力拓展能力拓展v全文索引1.全文索引的概念v所谓全文搜索,即在整个数据库中搜索,它是通过使用全文索引来实现的一个全文索引中存储了表的数据中有确切含义的字符串以及其在表的列中的位置等信息v全文索引是由Microsoft SQL Server 全文搜索服务创建和维护的全文搜索就是利用全文索引中的信息查找含有特定字符串的数据行在对大量的文本数据进行查询时,全文索引可以大大提高查询的性能v全文索引能够对数据库中的字符(如Varchar、text、ntext等)、image等类型列进行索引,并通过全文索引实现全文搜索查询v在数据库中,一个表只能有一个全文索引,一个数据库则可以有多个全文索引,这些全文索引包含在一个或多个全文索引目录中v在系统中要使用全文索引必须首先启动全文搜索功能,即启动相应的服务在此基础上创建全文目录和全文索引,这样就可以使用全文搜索查询了2.全文搜索查询操作(1)启动全文搜索 在创建全文目录前应启动全文搜索功能,而启动全文搜索功能有多种方式,既可以通过操作系统的【管理工具】直接启动“SQL Server Fulltext Seach”服务,也可以利用T-SQL语句来实现。
我们这里使用SQL Server Management Studio来完成§在SQL Server Management Studio对象资源管理器窗口中,展开“管理”列,右键单击“全文索引”,在弹出的快捷菜单中单击【启动】命令,即启动了全文搜索功能2)创建全文索引目录 在SQL Server Management Studio对象资源管理器窗口中,选择本地数据库实例,依次选择【数据库】→【Library】→【存储】→【全文目录】v右击“全文目录”,在弹出的快捷菜单中单击【新建全文目录】命令,出现如图5-6所示的【新建全文目录】窗口全文目录名全文目录名称和文件存称和文件存放位置放位置【【文件组文件组】】下拉列下拉列表表【【所有者所有者】】文本框文本框【【设置为设置为默认目录默认目录】】(3)创建全文索引§ 在SQL Server Management Studio对象资源管理器窗口中,依次选择【数据库】→【Library】→【表】→【Books】,右键单击Books,在弹出的快捷菜单中选择“全文索引”→“定义全文索引”,出现创建全文索引向导界面,如图5-7所示根据向导指引,依次选择唯一索引、选择要加入到全文索引的字段、定义全文索引的更新方式、选择全文索引存储的全文目录,完成全文索引的创建。
4)使用全文搜索查询 进行全文搜索需要在SELECT命令的WHERE子句中使用CONTAINS或FRETEXT关键字§【例5-1】搜索书刊数据表Books中的图书名称中含有“计算机”的记录SELECT * FROM Books WHERE CONTAINS (bookname,’计算机计算机’)此查询将把名称中包含此查询将把名称中包含“计算机计算机”的图书检索出来的图书检索出来v【例5-2】使用FRETEXT查询Books中的图书名称中含有“计算机”的记录SELECT * FROM Books WHERE FRETEXT (bookname,’计算机计算机’)此查询不仅将把名称中包含此查询不仅将把名称中包含“计算机计算机”的图书检索出来,同时还会将含的图书检索出来,同时还会将含有有“计计”、、“算算”和和“机机”的图书检索出来的图书检索出来。












