2009-7-26 1
SQL Server 2000
数据库应用技术
E-mail:yuyich@126.com
2009-7-26 上海应用技术学院 2
SQL SERVER 2000 数据库应用技术构架
SQL Server
2000是一个性能优越、
面向客户 /服务器的关系型网络数据库管理系统支持多种操作系统平台四大模块
SQL Server数据的网页发布
16-18 章应用实施篇数据库基础与 SQL Server 概述数据库管理与数据完整性表与视图的管理存储过程与触发器
1-3 章系统基础篇
4-10 章
SQL技术篇
VB/SQL Server应用程序开发
SQL SERVER 2000应用实例教参系统组成与服务器管理
Transact-SQL 语言与数据查询游标与安全管理数据库复制与数据转换数据备份与恢复11-15 章系统管理篇
课程概要
第 一 章 数据库 基础
第 二 章 SQL Server 2000概述
第 三 章 系统组成 与服务器管理
第 四 章 数据库 管理
第 五 章 数据完整性
第 六 章 表的管理 与使用
第 七 章 视 图
第 八 章 Transact-SQL 语言
第 九 章 数据查询
第 十 章 存储过程 与触发器
第十一章 游 标
第十二章 安全管理
第十三章 数据 备份与恢复
第十四章 数据库 复制
第十五章 数据 转换
第十六章 SQL Server数据的 网页发布
第十七章 VB / SQL Server应用程序开发
第十八章 SQL Server 2000应用实例
2009-7-26 上海应用技术学院 4
§ 1.1 数据库管理系统
§ 1.2 数据库系统
§ 1.3 数据模型
§ 1.4 关系数据库
§ 1.5 数据仓库与数据挖掘
数据库管理系统作为数据管理最有效的手段广泛应用于各行各业中,成为存储、使用、处理信息资源的主要手段,
是任何一个行业信息化运作的基石。本章介绍了数据库管理系统、数据库系统,E-R方法和数据模型、关系数据库及其基本演算、数据仓库与数据挖掘等知识。
第 1章 数据库基础
2009-7-26 上海应用技术学院 5
1-1 数据库管理系统
1-1 数据库管理系统
1-1-1 信息、数据、数据库
信息是客观世界在人们头脑中的反映,是客观事物的表征,是可以传播和加以利用的一种知识 。
数据 ( Data) 则是信息的载体,是对客观存在实体的一种记载和描述 。
数据库 ( Database) 系指数据存放的地方,在信息系统中数据库是数据和数据库对象 ( 如表,视图,存储过程与触发器等 ) 的集合 。
1-1-2 数据管理技术的发展
1.人工管理阶段 2.文件管理阶段 3.数据库管理阶段
1-1-3 数据库管理系统数据库管理系统( Database Management System,DBMS)是管理数据库的软件工具,是帮助用户创建、维护和使用数据库的软件系统。它建立在操作系统的基础之上,实现对数据库的统一管理和操作,满足用户对数据库进行访问的各种需要。一般而言,数据库管理系统应具有以下功能,
数据定义功能?数据操作功能
控制和管理功能?数据字典
2009-7-26 上海应用技术学院 6
1-2 数据库系统
数据库系统( Database System)泛指引入数据库技术后的计算机系统,
狭义地讲,是由数据库、数据库管理系统构成;广义而言,是由计算机系统、数据库管理系统、数据库管理员、应用程序、维护人员和用户组成。数据库系统是一个有机体,其在整个计算机系统中的地位如图 1-1
所示。
1.数据库系统的组成数据库系统通常由 5个部分组成,包括计算机硬件、数据库集合、数据库管理系统、
相关软件和人员。
2.数据库系统的特点数据库系统的主要特点包括:数据结构化,数据共享,数据独立性以及统一的数据控制功能 。
1-3 数据模型数据模型是描述一个系统中的数据、数据之间关系,以及对数据约束的一组完整性的概念。它是对数据库的结构与定义的描述,是对现实世界的抽象。它是数据库系统的核心和基础。
2009-7-26 上海应用技术学院 7
1-3 数据模型
1-3-1 E-R方法描述概念模型最常用方法是实体 -联系( Entity-Relationship)方法(即 E-
R图) 。 E-R图中包括了实体、属性和联系三种基本图素。实体用矩形框表示,属性用椭圆形框表示,联系用菱形框表示,框内填入相应的实体名,实体与属性或实体与联系之间用无向直线连接,多值属性用双椭圆形框表示,派生属性用虚椭圆形框表示。
实体间的联系有 3种类型:一对一联系 ( 如图 1-2所示 ) ;一对多联系 ( 如图 1-3所示 ) 。 多对多联系 ( 如图 1-4所示 ) 。
图 1-2 一对一联系 图 1-3 一对多联系 图 1-4 多对多联系
2009-7-26 上海应用技术学院 8
1-3 数据模型
1-2-2 数据模型目前比较流行的数据模型主要有 3种,即按图论理念建立起来的层次模型与网状络模型以及按关系理论建建立起来的关系模型。
1-4 关系数据库
1-4-1关系模型的基本概念
1.术语
( 1)关系( 2)记录(元组)( 3)字段(属性)( 4)域
( 5)关键字( 6)关系模式( 7)关系数据库管理系统( RDBMS)
2.关系的特点
1:每个属性必须是不可分隔的数据单元,即表中不能再包含表。或者说,每一个字段不能再细分为若干个手段。
2:在同一个关系中不能出现相同的属性名。
3:在一个设有主关键字或唯一性关键字的关系中不允许有完全相同的数据行。
4:在一个关系中任意交换两行的位臵不影响数据的实际含义。
5:在一个关系中任意交换两列的位臵不影响数据的实际含义。
2009-7-26 上海应用技术学院 9
1-4关系数据库
1-4-2关系数据库基本演算关系型数据库主要支持的3种基本关系运算为:选择、投影和连接,其源于关系代数中并、交、差、选择、投影和连接等运算。
1.选择从一个关系或二维表格中找出满足给定条件的记录行的操作称为选择。选择是从行的角度对二维表格内容进行的筛选,经过选择运算得到的结果可以形成新的关系,其关系模式不变,并且其中的记录是原关系的一个子集。
2.投影从一个关系或二维表格中找出若干个字段(属性),进而构成新的关系的操作称为投影 。 投影是从列的角度对二维表格内容进行的筛选或重组,经过选择运算得到的结果也可以形成新的关系,其关系模式所包含的字段(属性)个数往往比原关系少,或者其字段(属性)排列的顺序将有所不同,是原关系的一个子集。
3.连接连接是将两个关系表中的记录按一定的条件横向结合,组成一个新的关系表。
最常见的连接运算是自然连接,它是利用两个关系中所共有的一个字段,将该字段值相等的记录内容连接起来,去掉其中的重复字段作为新关系中的一条记录。
2009-7-26 上海应用技术学院 10
1-5 数据仓库与数据挖掘
1-5-1 数据仓库理念数据仓库常用于决策支持系统( DSS),是决策支持系统的基础。随着计算机应用的不断拓展,从大量数据中检索、查询出制定市场策略的信息就显得越来越重要了。据此人们引出了一种新的支持决策的特殊的数据仓库( Data Warehouse,DW)理念,即从大量的事务型数据库中抽取数据,并将其处理、转换为新的存储格式,为锁定决策目标而把数据聚合在一种特殊的格式中。
数据仓库是支持管理决策过程的,其主要特征是面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合。数据仓库包括数据的存储与组织;联机分析技术( OLAP)和数据挖掘技术( DM)。
数据仓库并不是一个新的平台,它仍然建立在数据库管理系统基础上,
只是一个新的概念。数据仓库是一些数据、过程、工具和设施,它能够管理完备的、及时的、准确的和可理解的业务信息,并把这些信息赋予个人,使之做出相应的决定。
2009-7-26 上海应用技术学院 11
1-5 数据仓库与数据挖掘
1-5-2 DW系统构成
( 1)数据源数据仓库的数据来源于多个数据源,包括企业内部数据、市场调查报告及各种文档之类的外部数据。
( 2)仓库管理仓库管理基于数据库管理系统的相关功能与实施包括对数据的安全、
归档、备份、维护、恢复等工作管理。整个管理过程是在确定数据仓库信息需求后,进行数据建模、拟定从源数据到数据仓库的数据抽取、清理和转换过程;划分维数及确定数据仓库的物理存储结构。元数据是数据仓库的核心,它用于存储数据模型和定义数据结构、转换规划、仓库结构、控制信息等。
( 3)分析工具用于完成实际决策问题所需的各种查询检索工具、多维数据的 OLAP
分析工具、数据开采的DM工具等,以实现决策支持系统的各种要求。
2009-7-26 上海应用技术学院 12
1-5 数据仓库与数据挖掘
1-5-3 DW关键技术为了满足数据仓库处理数据的需求,数据仓库须具备如下关键技术:
( 1)海量数据存储管理与实施数据压缩。
( 2)管理多种介质。
( 3)语言接口与多种技术接口。
( 4)双重粒度几级管理。
( 5)索引和监视数据。
( 6)高效载入数据与支持复合键。
( 7)并行处理技术。
2009-7-26 上海应用技术学院 13
1-6 本章小结本章介绍了数据库的基本概念,数据管理技术的发展、数据库管理系统、常见的数据模型,E-R方法、关系模型、关系数据库基本演算、数据仓库与数据挖掘等知识,它们有助于您理解、掌握以后章节中的内容。
数据库系指数据存放的地方,在信息系统中数据库是数据和数据库对象(如表,视图、存储过程与触发器等)的集合。数据库中的大量数据必须按一定的逻辑结构加以存储。数据库系统泛指引入数据库技术后的计算机系统。狭义地讲,是由数据库、数据库管理系统构成;广义而言,
是由计算机系统、数据库管理系统、数据库管理员、应用程序、维护人员和用户组成。数据库系统的主要特点包括:数据结构化、数据共享、
数据独立性以及统一的数据控制功能。
数据模型是描述一个系统中的数据、数据之间关系,以及对数据约束的一组完整性的概念。它是对数据库的结构与定义的描述,是对现实世界的抽象。数据模型大体上可分为两种类型。一种是独立于计算机系统的数据模型,即概念模型,另一种则是涉及到计算机系统和数据库管理系统的数据模型。关系型数据库主要支持的3种基本关系运算为:选择、
投影和连接,其源于关系代数中并、交、差、选择、投影和连接等运算。
2009-7-26 上海应用技术学院 14
本章习 题
1 简述信息、数据与数据库的内涵。
2 试问数据管理技术主要经历了哪些阶段。
3 何谓数据库管理系统?简述数据库管理系统的功能。
4 通常,数据库系统由哪些部分组成?其在整个计算机系统中的地位又如何?
5 简述数据库系统的特点。
6 E-R图中包括哪些基本图素?具体如何表示?
7 实体间的联系有哪几种类型?试举例说明。
8 目前比较流行的数据模型主要有哪几种?各有何特点?
9 简述关系、记录、字段、域、关键字、关系模式和关系数据库管理系统的内涵。
10 简述关系必须具备的特点。
11 简述关系型数据库的基本关系运算及其内涵。
12 简述数据仓库系统的组成。
13 简述实施数据仓库所需关注的相关技术。
14 何谓联机分析处理?
2009-7-26 上海应用技术学院 15
第 2章 SQL Server 2000概述
2-1 SQL Server 的演进
2-2 SQL Server 2000特性
2-3 SQL Server 2000体系结构
2-4 SQL Server 2000的安装
2-5 服务管理器
2-6 企业管理器
2-7 查询分析器本章主要介绍了 SQL Server 的演进,SQL Server 2000特性,SQL
Sever 2000体系结构,SQL Server 2000构架,数据库构架,应用程序开发构架,SQL Server 2000的安装等 。 要求掌握 SQL Server 2000安装所需环境,SQL Server 2000安装注意事项,SQL Server 2000的安装及服务管理器,企业管理器,查询分析器等的使用 。
2009-7-26 上海应用技术学院 16
2-1 SQL Server 的演进
1988年,由 Microsoft和 Sybase公司共同开发的 SQL
Server第一个版本面世。该版本是为 OS/2平台设计的。
90年代,Microsoft公司开始开发 WinNT平台上的
SQL Server版本。
1992年,发布了 SQL Server的 WinNT版本。
1993年,发布了 SQL Server4.2。
1995年,公布了 SQL Server6.0。
1996年,发布了 SQL Server6.5版,1997年推出了 6.5
企业版。
1998年,推出了 SQL Server 7.0。
2000年。 SQL Sewer 2000 面世。
2009-7-26 上海应用技术学院 17
2-2 SQL Server 2000特性
SQL Server 2000扩展了 SQL Server 7.0 的性能、它的可靠性和易用性使其成为一个杰出的数据库平台,可用于大型联机事务处理、数据仓库及电子商务等。 SQL Server
2000 的特性如下:
1.便捷的操作方式
2.多实例机制
3.基于 Internet的集成
4.可扩展性与可用性
5.企业级数据库
6.数据仓库支持
2009-7-26 上海应用技术学院 18
2-3 SQLServer 2000体系结构
2-3-1 SQL Sever 2000体系结构基于不同的应用和功能,SQL Sever 2000具有不同的体系结构分类,主要有:
1:客户机 /服务器体系结构
2:数据库体系结构
3:服务器管理体系结构
4:关系数据库引擎体系结构
2-3-2 SQL Server 2000构架
SQL Server 2000 由一系列相互协作的组件构成,能最大限度的满足 Web 站点和企业数据处理系统存储和分析数据的需要,SQL Server 构架旨在明了地描述各种组件通过何种方式发挥效用、形成合力,更富有成效地管理数据。
2009-7-26 上海应用技术学院 19
2-3 SQL Server 2000体系结构
2-3-3 数据库构架
SQL Server 2000采用了 ANSI的结构化查询语言(基于
SQL-92),是许多不同组件的集合,其中包括 SQLServer本身,SQL Server Agent( SQL服务器代理),SQL Mail
( SQL邮件系统)和 Distributed Transaction Coordinator
(分布式事务协调器,DTC),事件探查器,企业管理器
( Enterprise Manager)与查询分析器( Analysis
Manager )等。此外,每个 SQL Server 实例缺省建立了四个系统数据库( master,model,tempdb 和 msdb)以及若干个用户数据库。有些单位只使用一个用户数据库来存储其所有数据,有些单位则为本单位的每一个组都设立了不同的数据库,而且有时一个数据库只能由一个应用程序使用。
2009-7-26 上海应用技术学院 20
2-3 SQL Server 2000体系结构
2-3-4 应用程序开发构架应用程序使用应用程序接口 (API) 或统一资源定位器
(URL) 两种组件访问数据库。
统一资源定位器是一个字符串或数据流,Internet 应用程序可通过它访问 Internet 或 Intranet 上的资源。 SQL
Server 2000 提供 ISAPI 动态链接库 (DLL),可供
Microsoft Internet Information 服务 (IIS) 应用程序用来生成引用 SQL Server 2000 实例的 URL。
应用程序开发构架主体是对 API的选择。在使用 SQL
Server 2000 的新应用程序中,建议使用下面的通用应用程序接口,ActiveX 数据对象( ADO)。 ADO可用于大多数数据库应用程序,支持可靠的快速应用程序开发,而且能访问大多数 SQL Server 功能。
2009-7-26 上海应用技术学院 21
2-4 SQL Server 2000的安装
2-4-1 SQL Server 2000版本
SQL Server 2000 的版本包括企业版、标准版、个人版、开发版和评估版。
( 1) SQL Server 2000 企业版可作为生产数据库服务器使用。
( 2) SQL Server 2000 标准版作为小工作组或部门的数据库服务器使用。
( 3) SQL Server 2000 个人版供移动的用户使用,这些用户有时从网络上断开,但所运行的应用程序需要 SQL Server 数据存储。
( 4) SQL Server 2000 开发版供程序员用来开发将 SQL Server 2000 用作数据存储的应用程序。
( 5) SQL Server 2000 企业评估版可从 Web 上免费下载的功能完整的版本。仅用于评估 SQL Server 功能;下载若干天后该版本将停止运行。
( 6) SQL Server 2000 Windows CE 版 (SQL Server CE) 在 Windows CE
设备上进行数据存储。
2009-7-26 上海应用技术学院 22
2-4 SQL Server 2000的安装
2-4-2 SQL Server 2000安装所需环境
1,硬件需求硬 件 最 低 要 求
CPU Intel Pentium 166 MHz 以上或与之兼容。
内存 企业版,64 MB(宜 128 MB);其他 (标准版,个人版等 ),32 MB(宜64 MB)。总体宜放点余量。
硬盘空间 180 MB (完全安装 ) ; 170 MB (典型安装 ); 65 MB(最小安装 );附加:客户端工具 --90 MB; System Services--50 MB;英语查询
--80 MB
显示器 VGA800?600 或更高分辨率点击设备 鼠标或兼容设备需要配臵 CD-ROM
网络容量 取决于用户数,50人以下为 16 Mbps的环网或 10 Mbps的以太网。速度宜快、裕量宜大。
2009-7-26 上海应用技术学院 23
2-4 SQL Server 2000的安装
2-4-2 SQL Server 2000安装所需环境
2,软件环境版本或组件 操 作 系 统 要 求企业版 Windows NT Server 4.0 企业版,Windows 2000 Server,Windows 2000 Advanced
Server 和 Windows 2000 Data Center Server。
标准版 Windows NT Server 4.0,Windows 2000 Server,Windows NT Server 企业版、
Windows 2000 Advanced Server 和 Windows 2000 Data Center Server。
个人版 Windows 98,Windows NT Workstation 4.0,Windows 2000 Professional,Windows
NT Server 4.0,Windows 2000 Server 和所有更高级的 Windows 操作系统。
开发版 Windows NT Workstation 4.0,Windows 2000 Professional 和所有其它 Windows NT 和
Windows 2000 操作系统。
仅客户端工具 Windows NT 4.0,Windows 2000(所有版本 )和 Windows 98。
网络容量 Windows NT 4.0,Windows 2000(所有版本 ),Windows 98 和 Windows 95。
Internet组件 Internet Explorer 5.0以上。
IIS Internet Information 服务:如果编写 XML 应用程序,此乃必须具备的。
2009-7-26 上海应用技术学院 24
2-4 SQL Server 2000的安装
2-4-3 SQL Server 2000安装注意事项
关闭所有可能与 SQL Server 2000系统有关的服务和应用程序,这包括所有利用到开放式数据库互连( ODBC)的应用程序,Windows 2000
Server /NT自带的 Internet 服务器软件 IIS( Internet Information
Server)。
在安装 SQL Server 2000以前,先以拥有管理员权限的账号登录操作系统。
若正在运行管理或修改注册表的任何程序(如 Regedit32.exe等应用程序);或正在运行 Windows 2000 /NT的事件查看器,宜先关闭之。
若是在 Windows 2000 /NT上安装 SQL Server 2000,并且希望以后能运行在服务器之间相互通信的程序和服务,那么事先创建一个用于分配给 SQL Server服务,SQL Server Agent 服务和 MS-DTC服务的域用户账号( Domain user account)。可以为每一项服务分别创建一个账号,
也可以为各项服务创建一个统一的账号。
SQL Server 2000安装过程中,用户要对区域设臵进行正确选择。 SQL
Server 2000的区域设臵包含了若干规则,并对排序次序、代码页等进行了限定。通常情况下,SQL Server 2000会自动检测用户操作系统中的配臵信息,给出默认的设臵,除非真的发现默认设臵与实际情况不相符合,否则不要随意更改设臵。
2009-7-26 上海应用技术学院 25
2-4 SQL Server 2000的安装
2-4-4 SQL Server 2000的安装
SQL Server 2000可以方便地安装到 Windows 98,Windows 2000
Professional/ Server或 Windows NT Server 4.0上,不管安装在哪种操作系统上,整个过程、方式都很相似。且与其它微软的系列产品也很类似。我们仅以安装 SQL Server 2000标准版为例说明其安装过程。
( 1) 将 SQL Server 2000 的光盘放入光驱如果有 Autorun 功能,几秒钟后会自动出现安装启动画面窗口如图 2-4,否则需运行 SQL Server 安装程序,Autorun.exe 或 setup.exe方能进入图 2-4画面。
2009-7-26 上海应用技术学院 26
2-4 SQL Server 2000的安装
( 2)在图 2-4画面中我们选择 【 安装 SQL Server 2000 组件 】 选项安装 SQL
Server 2000 标准版数据库管理软件,进入如图 2-5 所示的 【 安装 SQL
Server 2000 组件 】 界面,其将出现下面三个选项:安装数据库服务器、
安装 Analysis Services(分析服务)和安装 English Query。
图 2-6 SQL Server 2000正式安装 图 2-7 选择安装方式
2009-7-26 上海应用技术学院 27
2-4 SQL Server 2000的安装
( 3)选择 【 安装 SQL Server 2000 组件 】 进入如图 2-6 所示的安装画面。单击 【 下一步 】 按钮,系统弹出如图 2-7 所示的对话框,供用户选择远程或本地安装,默认项为本地安装。
( 4)选择本地安装项,点击 Next 按钮,安装程序会自动搜索这台计算机上已经安装的 SQL Server组件,安装程序搜索到已安装的 SQL Server
组件后,弹出如图 2-8 所示的安装选择对话框,该对话框可以从所示的 3个选项中选择一个,如果选择 【 高级选项 】 单选按钮,则可进行诸如注册表重建等操作。
图 2-8 安装选择对话框
2009-7-26 上海应用技术学院 28
2-4 SQL Server 2000的安装
( 5)而作为新安装 SQL Server 2000则可点击 【 创建新的 SQL Server实例,或安装客户端工具 】 单选按钮,弹出如图 2-9 所示的用户信息对话框,提示输入用户姓名与所在公司,填写正确后单击 【 下一步 】 按钮,系统弹出如图 2-10 所示的软件许可证协议对话框,出现版权协议信息界面,选择接受版权协议则出现如图 2-11 所示的安装定义对话框,用户可以选择所需的安装类型,有 3种用户类型可供选择图 2-9 用户信息对话框 图 2-10 软件许可证协议对话框
2009-7-26 上海应用技术学院 29
2-4 SQL Server 2000的安装
仅客户端工具:仅安装客户端关系数据库管理工具。此选项包含管理
SQL Server 的客户端工具和客户端连接组件。此外,该选项使用户得以选择其它要安装的组件。
服务器和客户端工具:该选项执行安装服务器和客户端工具以创建具有管理功能的关系数据库服务器。选择 【 服务器和客户端工具 】 选项将显示所有附加的安装选项。
仅连接:仅安装关系数据库客户端连接组件,包括连接 SQL Server
2000 命名实例所需的数据访问组件和网络库等 。
图 2-11 安装定义对话框 图 2-12 设臵实例名
2009-7-26 上海应用技术学院 30
2-4 SQL Server 2000的安装
( 6)如果要安装的是数据库服务器,则须选择 【 服务器和客户端工具 】,
单击 【 下一步 】 按钮,系统弹出如图 2-12 所示的设臵实例名称对话框,
可选择默认名选项或自命名一个实例名称,然后单击 【 下一步 】 按钮,
系统弹出如图 2-13 所示的设臵安装类型对话框,【 安装类型 】 对话框中提供三种安装类型和可修改该对话框中的程序和数据文件的安装位臵。
1:典型安装:
使用默认安装选项安装整个 SQL Server 2000。建议用户采用此默认安装。
2:最小安装:
安装运行 SQL Server 2000所需的最小配臵。
3:自定义安装:
安装 SQL Server 且可更改任意或所有默认选项。使用自定义安装选择组件和子组件,或者更改排序规则、服务帐户、身份验证或网络库的设臵。
SQL Server 2000提供 3种文件格式:程序文件、数据文件和系统文件。通常程序文件和数据文件被安装在同一个目录下,如 C:\Program
Files\Microsoft SQL Server\Data,系统文件一般安装在系统的目录下 。
2009-7-26 上海应用技术学院 31
2-4 SQL Server 2000的安装
( 7)选择 【 自定义安装 】,单击 【 下一步 】 按钮,安装程序弹出如图 2-14 所示的要安装组件对话框,选择要安装的组件后,单击 【 下一步 】 按钮,安装程序弹出如图 2-15 所示的服务帐户对话框,其中有两个主选项、服务和服务设臵。
( 8)用户选好后,单击 【 下一步 】 按钮,安装程序弹出如图
2-16 所示的身份验证模式对话框,可以选择两种认证模式。
就系统数据库管理而言,宜采用混合模式。
Windows 身份验证模式:用户通过 Windows 用户帐户连接时,
SQL Server 使用 Windows 操作系统中的信息验证帐户名和密码。
混合模式( Windows 身份验证和 SQL Server 身份验证):
允许用户使用 Windows 身份验证或 SQL Server 身份验证进行连接。通过 Windows 用户帐户连接的用户可以在
Windows 身份验证模式或混合模式中使用信任连接。
2009-7-26 上海应用技术学院 32
2-4 SQL Server 2000的安装图 2-14 安装组件图 2-15 设置服务帐户 图 2-16 身份验证模式
2009-7-26 上海应用技术学院 33
2-4 SQL Server 2000的安装
( 9)用户选好后,单击 【 下一步 】 按钮,安装程序弹出如图 2-17 所示的排序规则设臵对话框,若用户必须符合其他地区的 SQL Server或
Windows设臵,可在此进行修改。一般而言,安装程序会根据操作系统的类型自动选择正确的选项,而无需用户参与。
( 10)单击 【 下一步 】 按钮,系统弹出如图 2-18 所示的网络库配臵对话框,
要求用户配臵网络库( Network Library)。
图 2-17 排序规则设臵 图 2-18 网络库配臵
2009-7-26 上海应用技术学院 34
2-4 SQL Server 2000的安装图 2-19 开始复制文件对话框
( 11)当完成网络库的配臵以后,单击下一步按钮,安装程序会弹出选择许可协议模式
SQL Server支持两种协议许可方式:处理器许可证和每客户。前者要求每一个针对本服务器的连接都拥有一个处理器访问许可证;后者要求每一个访问 SQL Server的计算机都拥有一个客户端访问许可证。单击
【 继续 】 按钮,系统弹出如图 2-19 所示的开始复制文件对话框,安装程序便开始若干时间的自动安装过程,期间将显示如图 2-20 所示的安装进度指示对话框,当安装程序完成文件的复制和系统的配臵以后,会出现如图 2-21 所示的 【 安装完毕 】 对话框,表示系统安装结束。通常,
系统安装结束后会要求重新启动以完成系统配臵。
图 2-19 开始复制文件对话框
2009-7-26 上海应用技术学院 35
2-4 SQL Server 2000的安装注:在完成系统的安装以后,SQL Server会自动产生一个系统管理员的账户 SA,该账户拥有系统的最高权限,在刚完成系统安装的时候,sa账户没有设臵密码,在种情况下 SQL Server 2000没有任何的安全性可言,
任何人都可以使用账户登录并进入 SQL Server系统。所以,完成安装后宜马上设臵 sa账户的密码。
图 2-21 ―安装完毕,提示对话框 图 2-22 SQL Server程序组
2009-7-26 上海应用技术学院 36
2-4 SQL Server 2000的安装
2-4-5 安装成功的相关信息
( 1)程序组。安装成功后,可左击 【 开始 】 下 【 程序 】 中 【 Microsoft
SQL Server】 命令项,会出现如图 2-22所示的 SQL Server 程序组对话框,该对话框罗列了系统常用的图形管理工具。
( 2)默认实例的目录结构。系统安装正常后,会出现如图 2-23 所示的 SQL
Server 2000 默认实例的文件目录结构,包括公用文件、可执行文件和数据等。
图 2-23 默认实例的目录结构
2009-7-26 上海应用技术学院 37
2-4 SQL Server 2000的安装
( 3)目录和文件的安装路径 。
SQL Server 2000 命名实例和所有默认共享文件的路径
\Microsoft SQL Server\80\Com
组件对象模型 (COM) 对象的动态链接库 (DLL)。
\Microsoft SQL Server\80\Com\Binn\Resources\1033
COM 目录中 DLL 使用的资源文件 (RLL)。 1033 用于美国英语,本地化版本使用不同目录号。
\ Microsoft SQL Server\80\Tools\Binn
Microsoft Windows NT 客户端可执行文件。
\Microsoft SQL Server\80\Tools\Binn\Resources\1033Tools\Binn
目录中 DLL 使用的资源文件。
\Microsoft SQL Server\80\Tools\BooksSQL Server
联机丛书文件,包括联机帮助文件。
\Microsoft SQL Server\80\Tools\DevTools\
开发人员使用的头文件、库文件和示例程序。
\Microsoft SQL Server\80\Tools\Html
管理控制台 (MMC) 和 HTML 文件。
\Microsoft SQL Server\80\Tools\Templates
帮助用户在数据库中创建对象。
2009-7-26 上海应用技术学院 38
2-4 SQL Server 2000的安装
SQL Server 2000 数据库管理文件的路径和说明
\Microsoft SQL Server\Mssql\Backup
备份文件的默认位臵。
\Microsoft SQL Server\Mssql\Binn
用于扩展存储过程的 Microsoft Windows NT 服务器可执行文件和 DLL 文件。
\MicrosoftSQL Server\Mssql\Binn\Resources\1033
在此 Binn 目录中 DLL 使用的资源文件。
\Microsoft SQL Server\Mssql\Data
系统和示例数据库文件。
\Microsoft SQL Server\Mssql\Ftdata
全文目录文件。
\Microsoft SQL Server\Mssql\Install
安装时运行的脚本和最后得到的输出文件。
\Microsoft SQL Server\Mssql\Jobs
临时作业输出文件的存储位臵。
\Microsoft SQL Server\Mssql\Log
错误日志文件。
\Microsoft SQL Server\Mssql\Repldata
复制任务的工作目录。
\Microsoft SQL Server\Mssql\Upgrade
版升级到 SQL Server 2000 所用文件。
2009-7-26 上海应用技术学院 39
2-5 服务管理器服务管理器是一个任务栏程序,可以通过左击 【 开始 --程序 --Microsoft
SQL Server】,选择 【 服务管理器 】 选项,启动服务管理器,或者双击任务栏右侧图标启动服务管理器,如图 2-24 所示。
图 2-24a 在服务管理器对话框中选择服务器 图 2-24b 在服务管理器对话框中选择服务图 2-22 服务管理器对话框
2009-7-26 上海应用技术学院 40
2-5 服务管理器服务管理器可用来实现以下 5种任务:
( 1)选择一个服务器,如图 2-24a 所示。
( 2)选择一种服务,如图 2-24b 所示。
( 3)通过如图 2-24所示的相关按钮来启动、暂停与停止所选择的服务。注:在暂停了 SQL Server服务以后,服务器将不允许新的用户继续登录服务器,但是已登录的用户依然可以不受影响地进行工作。
( 4)通过在服务器管理器中选择 【 当 OS时自动启动服务器 】
复选框选项来实施每当操作系统启动时,SQL Server 2000
会自动启动服务器的功能。
( 5)获取 SQL Server 服务管理器运行状态信息。
2009-7-26 上海应用技术学院 41
2-6 企业管理器
SQL Server 2000 提供了功能强大而又使用便捷的管理工具,其中企业管理器( Enterprise Manager)是最重要和最常用的管理工具,大多数的数据库管理工作(如用户、登录、权限的管理;创建和管理数据库;创建和管理表、
视图、存储过程、触发器、索引、规则、默认值和用户自定义数据类型及导入与导出数据等)可以在企业管理器中完成,其它大部分管理工具可以从企业管理器中调用执行。
左击 【 开始 】 下 【 程序 】 中 【 Microsoft SQL Server】 的 【 企业管理器 】 命令项,可启动企业管理器,出现如图 2-25所示的企业管理器典型窗口。企业管理器的界面是一个标准的 Wndows 界面,由标题栏、菜单栏、工具条、树状窗口和任务对象窗口(又称任务板)组成。
图 2-25数据库在计算机中的地位
2009-7-26 上海应用技术学院 42
2-6 企业管理器图 2-26中根节点是 【 控制台根目录 】,表示它是所有服务器控制台的根,第一层节点上有一个默认节点,Microsoft SQL Server,所有 SQL
Server服务组节点都是 Microsoft SQL Server的子节点。 SQL Server服务组可按功能和用途对服务器进行分类,附有若干个服务器。
每个服务器下面是该服务器的所有管理对象,分为:数据库、数据库转换服务、管理、安全性,复制、支持服务和 Meta Datea Services 七类。单击树型结构上的节点,可浏览其中的对象内容。而通过该窗口的菜单或快捷菜单,可执行丰富的管理功能。
图 2-26
图 2-26 企业管理器树型节点的展开
2009-7-26 上海应用技术学院 43
2-7 查询分析器
2-7-1 查询分析器
SQL 查询分析器是交互式图形工具,在查询分析器中可以交互式地输入和执行各种 Transact-SQL语句,它使数据库管理员或开发人员既能方便地编写查询程序、又可在执行多个查询的同时查看结果、分析查询计划和获得提高查询性能的帮助,它是最常用地管理工具之一。
图 2-27 查询分析器登录对话框图 2-28 查询分析器编辑窗口
2009-7-26 上海应用技术学院 44
2-7 查询分析器
2-7-2 配置查询分析器图 2-29 查询分析器常规属性设置
2009-7-26 上海应用技术学院 45
2-7 查询分析器
2-7-3 对象浏览器的使用对象创览器按照树形结构方式组织所有的数据库对象,树型结构按照严格的层次关系布局,从上到下依次是:服务器、数据库、数据库对象
(如表)、数据库对象的组成要素(如索引、列等)。 SQL Server
2000通过使用预先设臵的一些常用的查询命令,可很方便地实现对数据库的查询,用户可以通过练习熟悉对象测览器的使用方法。现枚举一例加以剖析。
( 1)展开树形结构上的 【 电子商务 】 数据库节点。
( 2)选中 【 用户表 】 中的学生表。
( 3)右击 【 在剪贴板编写对象脚本 】 的级联菜单中选择 【 选择 】 命令。
( 4)在编辑器窗口中输入或复制粘贴板上的内容,并执行该语句,结果如图 2-28所示。
SQL Server 2000提供的预设查询命令还包括:创建、修改、除去、插入、
更新等等。
2009-7-26 上海应用技术学院 46
2-7 查询分析器
2-7-4 模板的使用
SQL Server 2000针对常用的 SQL查询命令定制了很多常用的模板,通过调用并修改这些模板,可以快捷、方便、
准确地完成 SQL语句的编写。下面通过一个简单的实例来学习模板的使用方法。
( 1)打开对象测览器窗口模板标签,所有的 SQL命令模板按功能分布于树形结构上;
( 2)展开 Create Table文件夹;
( 3)双击 【 Create Table Basic Template】 节点,弹出如图
2-30所示界面,其中有自动生成的语句命令;
( 4)根据要实现的功能,修改自动生成的 SQL语句。图 2-30
查询分析器中模板的使用
SQL Server提供的模板语句一般非常严谨。所以经常使用模板,有助于编写严密、高质量的 SQL程序。
2009-7-26 上海应用技术学院 47
2-7 查询分析器
2-7-4 模板的使用图 2-30 查询分析器中模板的使用
2009-7-26 上海应用技术学院 48
2-8 本章小结
SQL Server 2000扩展了它以前低版本的性能、它的可靠性和易用性使其成为一个杰出的数据库平台,它功能强大、操作简便,日益为广大数据库用户所钟爱。
本章主要介绍了 SQL Server 的演进、特性、体系结构、数据库构架、
应用程序开发构架,SQL Server 2000的安装等知识,并介绍了 SQL
Server 2000下的服务管理器、企业管理器、查询分析器等的使用。 SQL
Sever 2000体系结构的分类主要有客户机 /服务器体系结构、数据库体系结构、服务器管理体系结构与关系数据库引擎体系结构。
SQL Server 2000 的安装与升级因其软件版本的不同而需要选择。服务管理器是一个任务栏程序,主要用来选择一个服务器、选择一种服务和启动、暂停与停止所选择的服务。企业管理器( Enterprise Manager)
是最重要和最常用的管理工具,大多数的数据库管理工作都可在企业管理器中完成。 SQL 查询分析器是交互式图形工具,在查询分析器中可以交互式地输入和执行各种 Transact-SQL语句,它是最常用的管理工具之一。
2009-7-26 上海应用技术学院 49
本章习题
1,简述 SQL Server 2000 的特性。
2,简述 SQL Sever 2000的体系结构。
3,简述 SQL Server 2000构架所含的主题。
4,试问 SQL Server 2000 哪些不同的版本?
5,简述 SQL Server 2000安装注意事项。
6,试问 SQL Server 2000包括哪些网络库。
7,简述 SQL Server 2000中企业管理器作用。
8,简述 SQL Server 2000中查询分析器作用。
9,简述查询分析器中模板作用和运作步骤。
10,试问服务管理器能完成哪些任务?
2009-7-26 上海应用技术学院 50
第 3章系统组成与服务器管理
3-1 SQL Server 2000的系统组成
3-2 SQL Server 服务管理与服务器注册
3-3 配置服务器
3-4 管理服务器组
3-5 结构化查询语言 (SQL)
本章主要介绍了 SQL Server 2000系统组成 ( 包括系统数据库,示例数据 库,系统表,系统存储过程 ),SQL
Server服务的启动与关闭,注册服务器要则,注册服务器,
配置服务器,服务器组的管理等 。
2009-7-26 上海应用技术学院 51
3-1 SQL Server 2000的系统组成
3-1-1 SQL Server 2000系统数据库
( 1)主数据库( Master)数据库,用于记录 SQL Server
2000所有的服务器级系统信息、在 SQL Server最基本操作中使用的信息。
( 2)模型主数据库( Model),是建立新数据库的模板,它包含了将复制到每个数据库中的系统表。
( 3)临时数据库( Tempdb),用于存放所有的临时工作表格和将临时存储过程,是一个全局资源,没有专门的权限限制,允许所有可以连接上 SQL Server 服务器的用户使用。
( 4)调度数据库( Msdb),主要被 SQL Server Agent 用于进行复制、调度作业、管理报警及排除故障等活动,其中存储了处理作业和警告所需的信息。
2009-7-26 上海应用技术学院 52
3-1 SQL Server 2000的系统组成
3-1-2 SQL Server 2000示例数据库为了帮助用户尽快掌握 SQL Server的使用方法,
SQL Server 2000提供了两个示例数据库,分别是
Northwind数据库和 pubs数据库。
Northwind数据库是随 SQL Server 2000建立而产生的示例数据库。这个数据库是模仿一个
Northwind(专门经营世界各地风味食品的进出口贸易的公司)数据库模型。
Pubs数据库是一个基于图书出版公司模式而建立的数据库模型,其中包含了大量的样本表和样本数据。
2009-7-26 上海应用技术学院 53
3-1 SQL Server 2000的系统组成
3-1-3 SQL Server 2000系统表
Master数据库中服务器级系统表系 统 表 功 能
Sysaltfiles 记录数据库中文件的状态和变化信息。
Syslockinfo 记录封锁管理器内部数据结构的相关信息。
Syscacheobjects 记录有关如何使用高速缓存的信息。
Syslogins 记录每个本地登录帐户的相关信息。
Syscharsets 记录排列顺序和字符集信息。
Sysmessages 记录所有的系统错误和警告信息。
Sysconfigures 记录服务器的配置信息。
Sysoledbusers 记录每个指定的链接服务器的用户和密码等信息。
Syscurconfigs 记录服务器当前的配置信息。
Sysperfinfo 记录有关统计服务器信念的计数器信息。
sysdatabases 记录所有 SQL Server的数据库的相关信息。
Sysprocesses 记录正在进行的进程信息。
Sysdevices 记录磁盘备份文件、磁带备份文件和数据库文件的信息。
Sysremotelogins 记录所有远程用户的相关信息。
Syslanguages 记录服务器所能识别的语言。
Sysservers 记录所有可以访问的 SQL Server的服务器的相关信息。
2009-7-26 上海应用技术学院 54
3-1 SQL Server 2000的系统组成数据库级系统表系 统 表 功 能
Syscolumns 记录所有表、视图中的列、存储过程的参数信息。
Sysindexkeys 记录被定义为键或索引的列的相关信息。
Syscomments 记录在建立数据库对象时定义的简介信息。
Sysmembers 记录所有数据库角色成员的相关信息。
Sysconstraints 记录约束和拥有该约束的数据库对象之间的映射信息。
Sysobjects 记录所有数据库对象的相关信息。
Sysdepends 记录所有数据库对象之间的相关性关系。
Syspermissions 记录有关数据库及数据库对象访问许可的信息。
Sysfilegroups 记录数据库所有文件组的信息。
Sysprotects 记录有关帐户权限的信息。
Sysfiles 记录所有数据库的每个文件的相关信息。
Sysreferences 记录有关外键约束和相关表列映射的信息。
Sysforeignkeys 记录关于外键约束的所有信息。
Systypes 记录系统提供数据类型和用户定义数据类型的信息。
Sysfulltextcatalogs 记录全文目录的信息。
Sysusers 记录所有服务器用户的信息。
Sysindexes 记录有关索引和建立索引的表的相关信息。
2009-7-26 上海应用技术学院 55
3-1 SQL Server 2000的系统组成
3-1-4 SQL Server 2000系统存储过程
SQL Server 2000提供了大量的系统存储过程,它是预先编辑、经过编译的 SQL语句序列的集合,可用于进行系统表的检索和修改,使用系统存储过程可以方便地查看有关数据库和数据库对象的信息。
Master数据库汇集了 SQL Server的系统存储过程,归系统管理员 SA所辖,所有系统存储过程的名字都以 SP-开始,
打开企业管理器,从 Master数据库节点中查看有关系统存储过程的信息(如图 3-1所示)。
图 3-1
图 3-1 数据库中系统存储过程信息
2009-7-26 上海应用技术学院 56
3-2 SQL Server服务管理与服务器的注册
3-2-1 启动与关闭 SQL Server服务一般而言,在 SQL Server 2000 安装时,系统默认将其设臵为自动启动。启动服务器有以下几种方法。
1.自动启动服务器
2.用 SQL Server服务管理器启动
3.用企业管理器启动
4.控制面板中的服务
5.命令行启动关闭服务管理器关闭服务管理器可基于如上所述的企业管理器或 SQL Server服务管理器来关闭服务管理器。
( 1)基于企业管理器方式。
( 2)基于服务管理器方式。
2009-7-26 上海应用技术学院 57
3-2 SQL Server服务管理与服务器的注册
3-2-2 注册服务器要则
( 1)服务器端和客户端必须配臵相同的网络库。
( 2)客户端的配臵信息必须正确无误。客户端在进行信息配臵时,必须保证连接服务器所需的信息正确无误。
注:连接服务器时必然使用到网络通信,因此网络通信能力的好坏有时会严重影响客户机连接到服务器上的效果。 SQL
Server所做的连接服务器操作有一个时间限制,超过这一时间限制后,系统程序就会放弃连接的努力。例如,当网络流量很大,但网络带宽有限时,经常会出现,连接超时,的错误提示。在这种情况下,只要确信连接所需的配臵信息正确无误,就可以在网上信息不太拥挤时重新进行连接。有时候,
计算机的配臵过低,如内存太小时也常会出现这种情况,严重时甚至会导致程序停止响应。
2009-7-26 上海应用技术学院 58
3-2 SQL Server服务管理与服务器的注册
3-2-3 注册服务器
1.配臵服务器端的网络库
2.配臵客户端网络库
3.注册服务器
4.连接的断开与恢复
5.删除服务器注册注:删除服务器注册,只是服务器别名从树型结构上消失,并不是真将 SQL Server从磁盘上卸载。但是,在没有对这个服务器重新进行注册之前,将无法再使用本地的企业管理器对该服务器进行管理。
2009-7-26 上海应用技术学院 59
3-3 配置服务器
( 1),常规,选项卡。
( 2),内存,选项卡。
( 3),处理器,选项卡。
( 4),安全性,选项卡。
( 5),连接,选项卡。
( 6),服务器设臵,选项卡。
( 7),数据库设臵,选项卡。
( 8),复制,选项卡。
( 9),Active Directory‖选项卡。
2009-7-26 上海应用技术学院 60
3-4 管理服务器组建立新服务器组的过程,可以在企业管理器提供的菜单中选择 【 新建
SQL Server组 】 命令,弹出如图所示的对话框。 SQL Server提供了两种形式的服务器组,【 顶层组 】 和 【 下面项目的子组 】 (某个顶层组的次级组)。在默认情况下,系统将创建一个顶层组。用户可以通过选择 【 下面项目的子组 】 单选按钮,并选择某一个顶层组来创建该顶层组下面的次级组。在文本框中输入将要创建的服务器组的名字,再单击 【 确定 】 按钮,
便完成了一个新的服务器组的创建。
2009-7-26 上海应用技术学院 61
3-5 结构化查询语言 (SQL)
3-5-1 SQL语言及发展
SQL( Structure Query Language)语言是一个通用的功能极强的关系数据库语言,用于查询( Query)、操纵
( Manupulation)、定义( Definition)和控制( Control)
关系型数据库中的数据,它受到了关系型数据库管理系统集成商的广泛支持,是目前使用最为广泛的一种关系型数据库查询语言。
SQL于 1974 年由 Boyce公司和 Chamberlin公司提出,于
1975年至 1979年间在 IBM 公司 San Jose 研究实验室研制,
产生了关系数据库管理系统(原形系统 System R 实现了这种语言)。当前最新的标准是 1992年发布的 SQL-92。 SQL既可以作为独立语言供终端用户使用,也可以作为宿主语言嵌入某些高级程序设计语言中使用。
2009-7-26 上海应用技术学院 62
3-5 结构化查询语言 (SQL)
3-5-2 SQL 语言的组成数据定义语言( DDL Data Definition Language)
数据操纵语言( DML Data Manipulation Language)
数据控制语言( DCL Data Control Language)
其它语言要素( Additional Language Elements)
3-5-3 Transact-SQL语言的特点
( 1)一体化的功能。集数据定义语言、数据操纵语言、数据控制语言于附加语言元素为一体。
( 2)二种使用方式。其一为交互式使用方式,可供非数据库专业人员或用户使用;其二是嵌入高级语言的使用方式,为数据库专业人员所使用。
( 3)非过程化语言与类人的思维习惯,使得语句的操作过程有系统自动完成,且整个过程易于理解和掌握。
2009-7-26 上海应用技术学院 63
3-6 本章小结
数据库管理系统的运作要基于 SQL Server等服务的启动这一大前提。要同 SQL Server进行对话,必须先启动 SQL Server
所提供的服务,SQL Server提供的服务包括,SQL Server,
MSDTC和 SQL Server Agent以及相对独上的 Microsoft
Search。从管理数据库服务器的视野来看,注册好服务器以后,服务器的配臵则是企业管理器最重要的功能,其主要是对 SQL Server服务器众多参数的设臵,这对服务器的性能和安全有着重大的影响。
SQL语言是一个通用的功能极强的关系数据库语言,用于查询、操纵、定义和控制关系型数据库中的数据,它受到了关系型数据库管理系统集成商的广泛支持,是目前使用最为广泛的一种关系型数据库查询语言。
本章主要介绍了 SQL Server 2000系统数据库、示例数据库,
系统表、系统存储过程,SQL Server服务的启动与关闭、注册服务器要则、注册服务器、配臵服务器、服务器组的管理等。
2009-7-26 上海应用技术学院 64
本章习题
1:试问 SQL Server 2000 包括了哪些系统数据库?其又具有何种效用?
2:试问 SQL Server 2000 包括了哪些服务器级和数据库级系统表?
3:简述注册服务器时值得关注的要则。
4:试问启动服务器有哪几种方法?
5:试问 SQL Server 2000 包括了哪些网络库协议?
6:试问使用注册服务器向导可以完成哪三项工作?
7:简述 SQL Server 2000属性包括的选项卡。
8:试问 SQL关系数据库语言主要由包括哪些组成部分?
9:简述 Transact-SQL 语言的特点 。
2009-7-26 上海应用技术学院 65
第 4章 数据库管理
4-1 数据库的存储结构
4-2 创建数据库
4-3 修改数据库
4-4 查看数据库信息
4-5 压缩数据库
4-6 删除数据库数据库是存储数据的仓库,即是 SQL Server中存放数据和数据对象(如表格、索引、存储过程等的容器),对数据库的管理是数据库管理系统中十分关键的环节。本章将介绍管理和操作数据库的基本知识,包括如何规划、创建、修改、
查看、压缩和删除数据库 。
2009-7-26 上海应用技术学院 66
4-1 数据库的存储结构
4-1-1 数据库规划数据库的规划工作大致可以分为两个阶段:
第一阶段:收集完整,必要的数据项,并转换成数据表的字段形式 。
第二阶段:将收集的字段作适当的分类后,归入不同的数据表中,并建立数据表之间的关联。表与表之间关系的逻辑要注意规范化,这可以在排序、查询、创建索引时提高数据操作的性能。
2009-7-26 上海应用技术学院 67
4-1 数据库的存储结构
4-1-2 数据库文件和文件组在 SQL Server中数据库文件由一组操作系统文件组成,数据库中所有的数据、对象(如表、索引、视图等等)和数据库事务日志都存储在这些操作系统文件中,根据这些文件的作用不同,可以分为三类:
主数据文件( Primary Data File)
用于存储数据库的系统表以及所有对象的启动信息,是所有数据库文件的起点。
辅数据文件( Secondary Data File)
用于存储主数据文件中未存储的数据和数据库对象。
事务日志文件( Transaction Log File)
存储数据库的事务日志信息,用来进行数据库恢复和记录数据库的操作情况,只要对数据库执行的 INSERT,DELETE,UPDATE等 SQL命令操作都会记录在该文件内。
2009-7-26 上海应用技术学院 68
4-1 数据库的存储结构
4-1-3 数据库文件的空间分配
SQL Server 日志文件由一系列日志记录组成;而数据文件则划分为不同的页面和区域 。
(1) 页是 SQL Server 存储数据的基本单位 。 根据页面所存储的不同信息,可以将它分为以下六类:
数据页面:存储数据行中除 text,ntext和 image列数据以外的数据 。
文本 /图象页面:存储数据行中 text,ntext和 image列数据 。
索引页面:存储索引项 。
全局分配映射页面:存储数据文件的区域分配信息 。
自由空间页面:存储数据文件中可用的空白页面的信息 。
索引分配映射页面:存储表或索引所使用的区域信息 。
2009-7-26 上海应用技术学院 69
4-1 数据库的存储结构
( 2)区域是 SQL Server每次申请空间时可以分配的最小单元。区域是 8个连续的页,即 64 KB。为了节省数据库的空间,库中的每个对象都不是分配一个完整的区域,而是用两种不同的区域:
混合型 。 一个混合型区域中的页可以组成 8个不同的对象 。
统一型 。 一个统一型区域中所有的页必须属于同一个对象 。
当第一次建立一个对象时,SQL Server在一个混合型区域为它分配空间。如果这个对象增加到包含 8个页或更多时,SQL Server便会将现有数据库转移到一个统一型区域中。
2009-7-26 上海应用技术学院 70
4-2 创建数据库
SQL Server 2000中创建数据库有 3种方法:
使用企业管理器创建数据库 。
使用 Transact-SQL语言创建数据库 。
使用向导创建数据库。
4-2-1 使用企业管理器创建数据库使用 SQL Server企业管理器是创建数据库较容易的一种方法,甚至使用默认的选项建立数据库时,只要提供一个数据库名称就可以了。
4-2-2 使用 Transact-SQL语言创建数据库对于熟练的用户来说,使用 Transact-SQL语言创建数据库是一种习惯的方法,而且这样创建的数据库便于复制。
4-2-3 使用向导创建数据库对于创建数据库使用向导无疑也是一种较好的选择 。
2009-7-26 上海应用技术学院 71
4-3 修改数据库
4-3-1 使用企业管理器修改数据库若要在企业管理器中修改数据库的属性或文件设臵,只要打开数据库属性对话框就可以了 。 先在树状目录窗口中右击用户要修改的数据库,从生成的快捷菜单中选择 【 属性 】
选项,将打开数据属性的对话框 。 如图 4-16所示 。
( 1) 【 常规 】 选项卡
( 2) 【 数据文件 】 选项卡
( 3) 【 事务日志 】 选项卡 。
( 4) 【 文件组 】 选项卡
( 5) 【 选项 】 选项卡
( 6) 【 权限 】 选项卡图 4-16
2009-7-26 上海应用技术学院 72
4-3 修改数据库
4-3-2 使用 Transact-SQL语言修改数据库
T-SQL语言中修改数据库的语句为 ALTER DATABASE语句,其完整的语法格式如下:
ALTER DATABASE databasename
{ ADD FILE < filespec > [,.,,n ] [ TO FILEGROUP
filegroup_name ]
| ADD LOG FILE < filespec > [,.,,n ]
| REMOVE FILE logical_file_name
| ADD FILEGROUP filegroup_name
| REMOVE FILEGROUP filegroup_name
| MODIFY FILE < filespec >
| MODIFY NAME =new_name
| MODIFY FILEGROUP filegroup_name {filegroup_property }
这段语法可用来对数据库的文件和文件组进行增、删或其中的某一参数。
2009-7-26 上海应用技术学院 73
4-4 查看数据库信息
4-4-1 使用企业管理器查看数据库的信息在企业管理器中,除了利用上一节介绍的打开数据库属性对话框查看数据库信息,还可以右击要查看的数据库的文件夹,从弹出的快捷菜单中选择 【 查看 】 中的 【 任务板 】 选项就可以看到数据库的 【 常规 】,【 表信息 】 和 【 向导 】 。 如图 4-22所示
( 1) 单击 【 常规 】 选项卡可显示基本信息,其包括三个部分:数据库,维护,已分配的空间 。 【 数据库 】 部分显示数据库的所有者,创建日期,
大小,可用空间,数据库选项,用户数等基本信息 。 【 维护 】 显示数据库的备份,差异备份,事务日志备份以及维护计划 。 【 已分配的空间 】
数据文件及容量,事务日志文件及容量 。
( 2) 单击 【 表信息 】 选项卡,可以查看该数据库中所有表的基本信息,如图 4-23所示 。
( 3) 单击 【 向导 】 选项卡,可以查看数据库管理工作的所有向导,如图 4-
24所示 。
2009-7-26 上海应用技术学院 74
4-4 查看数据库信息图 4-22 查看数据库的基本信息图 4-23 查看数据库中的表的基本信息 图 4-24 查看数据库管理工作的所有向导
2009-7-26 上海应用技术学院 75
4-4 查看数据库信息
4-4-2 使用 T-SQL语言查看数据库的信息
( 1) 查看数据库定义信息在 SQL Server中每创建一个数据库,系统将在 master数据库的 sysdatabases系统表中添加一条记录。查看数据库定义信息起始就是检索 sysdatabases系统表,使用存储过程(详见第 10章) sp_helpdb可以实现这一功能。
Sp_helpdb的语法结构如下:
Sp_helpdb [ [@dbname=]?name‘]
( 2) 查看数据库数据空间管理员经常需要查看服务器的数据库空间使用,增长情况,这些信息的查询可以通过存储过程 sp_spaceused来实现 。 sp_spaceused的语法结构如下:
sp_spaceused [[@objname=]?name‘][,[@updateusage=]‘updateusage‘]
( 3) 查看数据库日志空间查看数据库日志文件可以使用 DBCC SQLPERF语句 。
DBCC SQLPERF语句的语法结构如下:
DBCC SQLPERF(LOGSPACE)
2009-7-26 上海应用技术学院 76
4-4 查看数据库信息
( 4) 查看数据库的文件信息可以使用系统存储过程 Sp_helpfile 来显示当前数据库中的文件信息。其语法结构如下:
sp_helpfile [[@filename =] 'name']
( 5) 查看数据库的文件组信息可以使用存储过程 Sp_helpfilegroup来显示当前数据库中文件组信息。其语法结构如下:
Sp_helpfilegroup [[@filegroupname=]‘name‘]
2009-7-26 上海应用技术学院 77
4-5 压缩数据库
4-5-1 使用企业管理器压缩数据库
( 1)企业管理器中,鼠标右击要压缩的数据库,从弹出的快捷菜单中的 【 所有任务 】 中选择 【 收缩数据库 】 选项
( 2)当点击 【 收缩数据库 】 选项,此时系统会出现如图 4-32所示的 【 收缩数据库 】 的对话框。用户可以选择压缩数据库的方式,也可以选择压缩计划或压缩单个文件 。
4-5-2 使用 Transact-SQL语言压缩数据库
( 1) 使用 DBCC SHRINKDATABASE命令压缩数据库,其语法结构如下:
DBCC SHRINKDATABASE ( database_name
[,target_percent ] [,{ NOTRUNCATE | TRUNCATEONLY } ])
( 2) 使用 DBCC SHRINKFILE压缩当前数据库中的文件,其语法结构如下:
DBCC SHRINKFILE
( {file_name | file_id }{ [,target_size ] |
[,{ EMPTYFILE | NOTRUNCATE | TRUNCATEONLY }]})
注:只有 db_owner内的成员或者具有 sysadmin fixed database 角色的用户才有权执行 DBCC SHRIKFILE命令,而且权限不能转移 。
2009-7-26 上海应用技术学院 78
4-6 删除数据库当数据库不再被使用或者因为数据库有损坏而无法正常运行时,用户可按需从数据库系统中删除数据库。删除数据库的操作很简单,但是删除数据库一定要慎重,因为删除数据库后,与数据库有关联的文件及存储在系统数据库中的关于该数据库的所有信息都会从服务器上的磁盘中被永久删除。
4-6-1 使用企业管理器删除数据库
( 1) 在企业管理中删除数据库,执行下列操作之一:
1:右击要删除的数据库,从弹出的快捷菜单中选择 【 删除 】 选项,如图。
2:先选中要删除的数据库,然后选择 【 操作 】 菜单中的 【 删除 】 命令
3:先选中要删除的数据库,然后单击工具栏中 【 删除 】 图标 。
2009-7-26 上海应用技术学院 79
4-6 删除数据库
( 2)此时会出现 【 删除数据库 】 的对话框,可以选择是否同时删除数据库备份以及历史纪录。单击 【 是 】 按钮即可删除数据库,如图 4-37所示。
图 4-37 删除数据库的确认对话框 示例在查询分析器中的运行结果
4-6-2 使用 Transact-SQL语言删除数据库
Transact-SQL中用于删除数据库的语句为 DROP DATABASE语句。 DROP DATABASE 命令可以从 SQL Server 中一次删除一个或几个数据库。其语法结构如下:
DROP DATABASE database_name1,database_name2...
2009-7-26 上海应用技术学院 80
4-7 本章小结本章主要介绍了管理数据库和对数据库进行操作的基本知识 。 首先介绍了数据库的存储结构,读者应重点掌握数据库文件和文件组的概念,了解数据库规划和数据库文件的空间分配的基本知识 。
在接下来的几节内容中,主要讨论了如何使用企业管理器和 Transact-SQL语言分别创建数据库,修改数据库,查看数据库,压缩数据库以及删除数据库 。 通过这几节的学习,读者应熟练掌握这两种方法对数据库进行的各种操作,熟悉操作过程中关于数据库以及数据库文件的各种属性的含义 。
2009-7-26 上海应用技术学院 81
本章习题
1:使用 CREATE DATABASE创建一个 student数据库,所有参数均取默认值 。
2.创建一个 Student1数据库,该数据库的主文件逻辑名称为 Student1_data,
物理文件名为 Student1.mdf,初始大小为 10MB,最大尺寸为无限大,增长速度为 10%;数据库的日志文件逻辑名称为 Student1_log,物理文件名为 Student1.ldf,初始大小为 1MB,最大尺寸为 5MB,增长速度为 1MB。
3,创建一个指定多个数据文件和日志文件的数据库 。 该数据库名称为
students,有 1个 10MB和 1个 20MB的数据文件和 2个 10MB的事务日志文件 。
数据文件逻辑名称为 student1和 student2,物理文件名为 student1.mdf
和 student2.ndf。 主文件是 student1,由 primary指定,两个数据文件的最大尺寸分别为无限大和 100MB,增长速度分别为 10%和 1MB。 事务日志 文 件 的 逻 辑 名 为 studentlog1 和 studentlog2,物 理 文 件 名 为
studentlog1.ldf studentlog2.ldf,最大尺寸为 50MB,文件增长速度为 1MB。
2009-7-26 上海应用技术学院 82
本章习题
4,利用企业管理器向数据库 Student1中添加一个文件组,其包括两个数据文件:它们的逻辑名称为 Student1_data1,Student1_data2,物理文件名为 Student1_1.ndf,Student1_2.ndf。 初始大小都为 5MB,最大尺寸为 50MB,增长速度为 2MB。 并将其设臵为默认文件组 。
5,利用 Transact-SQL语言对数据库 students进行修改 。 将事务日志文件的大小增加到 15MB,将数据文件 student1和 student2分别增加到 15MB和
30MB。 同时增加两个文件组 data1和 data2,分别包含一个数据文件,逻辑文 件名为 student3和 student4,物理文 件名为 student3.ndf和
student4.ndf,它们初始大小都为 20MB,最大尺寸无限制,增长速度为
15%;增加一个 10MB事务日志文件,最大尺寸无限制,增长速度为 10%。
6,使用企业管理器查看数据库 Student1的基本信息;使用 Transact-SQL语言查看 students中所有文件组和文件的信息 。
7,使用企业管理器删除数据库 student;使用 Transact-SQL语言同时删除数据库 Student1和 students。
2009-7-26 上海应用技术学院 83
第 5章 数据完整性
5-1 数据完整性概述
5-2 数据完整性分类与实施
5-3 约束
5-4 规则
5-5 默认值本章主要介绍如何确保数据完整性,以便使数据库中的数据更加严谨。我们除了介绍数据完整性的基本概念之外,
还将指导用户使用各种实施数据完整性的方法,主要包括规则、约束和默认值的创建、绑定和删除。
2009-7-26 上海应用技术学院 84
5-1 数据完整性概述
―数据完整性,是指存放在数据库中数据的一致性和准确性,通俗地将就是限制数据库表中可输入的数据。它是为了防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
保证数据库的数据完整性,在数据库管理系统中是十分重要的,它是衡量数据库中的数据质量的重要标志。满足数据完整性的数据具有以下特点:
数据正确无误;数据的存放必须确保同一表格数据之间的和谐关系;数据的存放必须维护不同表格之间的和谐关系 。
5-2-1数据完整性分类
( 1)实体完整性
( 2)域完整性
( 3)参照完整性
( 4)用户定义完整性
5-2-2 数据完整性的实施
( 1)声明式数据完整性( Declarative Data Integrity) ( 2)程序化数据完整性( Procedural Data Integrity)
2009-7-26 上海应用技术学院 85
5-3 约束约束是 SQL Server 提供的自动保持数据库完整性的一种方法,它是通过限制列中数据、行中数据和表之间数据来保持数据完整性。
约束是独立于表结构的,作为数据库定义部分在 CREATE
TABLE语句中声明,可以在不改变表结构的基础上,通过
ALTER TABLE语句添加或者删除。当表被删除时,表所带的所有约束定义也随之被删除。
在 SQL Server 中主要有下列 5 种约束:
主键约束( Primary Key Constraint)
外键约束( Foreign Key Constraint)
唯一性约束( Unique Constraint)
检查约束 (Check Constraint)
默认值约束( Default Constraint)
2009-7-26 上海应用技术学院 86
5-4 规则规则就是创建一套准则,并将其结合到表的列或用户自定义数据类型上,添加完之后它会检查添加的数据或者对表所作的修改是否满足所设值的条件。规则也是一种独立的数据库对象,正是由于它的独立性,可以将它用在用户自定义数据类型上,而不仅仅是表的列上。规则可以绑定到一列或者多列上,也可以绑定到用户自定义数据类型上。
5-4-1 创建规则
( 1)用 Transact-SQL语言创建规则。
( 2)使用企业管理器创建规则。
5-4-2 绑定规则创建规则后,规则仅仅只是一个存在于数据库中的对象,并未发生作用。需要将规则与数据库表或用户自定义数据类型进行绑定,才能使规则生效。所谓绑定就是指定规则作用于哪个表的哪一列或哪个用户自定义数据类型,此后列或用户自定义数据类型的所有数值必须满足此规则。
绑定规则一般使用两种方法:
1:使用 Transact-SQL语言
2:使用企业管理器绑定规则。
2009-7-26 上海应用技术学院 87
5-4 规则
5-4-3 解除与删除规则
( 1) 解除规则 。 Transact-SQL语言中的存储过程 Sp_unbindrule 可解除规则与列或用户自定义数据类型的绑定 。 其语法如下:
sp_unbindrule [@objname =] 'object_name'[,'futureonly']
其中参数的含义和绑定规则是的参数的含义相同,不再赘述。
在企业管理其中也可以解除规则,操作正好和绑定规则是相反。
( 2) 删除规则 。 可以在企业管理器中选择规则,单击右键,从快捷菜单中选择
【 删除 】 选项删除规则,也可用 DROP RULE命令删除当前数据库中的一个或多个规则 。 其语法如下:
DROP RULE { rule_name } [,...n]
在删除一个规则前,必须先将与其绑定的对象解除绑定。
5-5 默认值默认值是一种数据库对象,可以绑定到一列或者多列上,也可以绑定到用户自定义数据类型上,其作用类似于默认( DEFAULT)约束,但两者略有区别。
默认约束时在 ALTER TABLE 或 CREATE TABLE语句中定义的,嵌入了被定义的表的结构,也就是说删除表的时候默认约束也随之被删除了。默认值的使用需要用 CREATE DEFAULT语句进行定义。作为一种单独的数据库对象,它是独立于表的,删除表并不能删除默认数值,而是需要使用 DROP DEFAULT命令才能删除。
2009-7-26 上海应用技术学院 88
5-5 默认值
5-5-1 创建默认创建默认值的方法有两种:使用 Transact-SQL语言与使用企业管理器创建默认值 。
( 1)使用 Transact-SQL语言创建默认值
CREATE DEFAULT default_name AS constant_expression
( 2)使用企业管理器创建默认在企业管理器中选择数据库对象中的 【 默认 】,单击右键,从快捷菜单中选择 【 新建默认 】 选项(如图 5-6所示),即会弹出如图 5-7所示的创建默认值属性对话框。在 【 名称 】 和 【 值 】 后面的文本框里分别输入默认值名称和表达式之后,
单击 【 确定 】 按钮,完成默认值的创建。
图 5-6 使用企业管理器创建默认 图 5-7 默认值属性对话框
2009-7-26 上海应用技术学院 89
5-5 默认值
5-5-2 绑定默认
(1)使用 Transacr-SQL语言绑定默认在 Transacr-SQL语言中使用存储过程 Sp_bindefault绑定默认值,它可以绑定一个默认值到表的一个列或一个用户自定义数据类型上,其语法如下:
sp_bindefault [@defname =] 'default_name',[@objname =] 'object_name' [,'futureonly']
( 2)使用企业管理器绑定默认
①在企业管理器中,选择要进行绑定的默认值,单击右键,从快捷菜单中选择 【 属性 】
选项,即会出现如图 5-8 所示的默认值属性对话框。图中 【 绑定 UDT】 按钮用于绑定用户自定义的数据类型,【 绑定列 】 按钮用于绑定表的列。
②单击 【 绑定 UDT】 按钮,会出现如图 5-9所示的对话框。如果要绑定默认值,选择用户自定义数据类型在 【 绑定 】 栏的复选框,如果要求默认值只对以后输入的数据有效,可以选择用户自定数据类型后面的 【 仅将来 】 复选框。
③单击 【 绑定列 】 按钮会出现如图所示的对话框。在 【 表 】 后面的下拉表单选择类所属的表。单击 【 添加 】 按钮将列与默认值进行绑定。
2009-7-26 上海应用技术学院 90
5-5 默认值图 5-9 默认值与用户自定义数据类型间的绑定 图 5-10 管理默认值与表列之间的绑定
2009-7-26 上海应用技术学院 91
5-5 默认值
5-5-3 解除与删除默认
( 1)使用 Transact-SQL语言解除默认存储过程 Sp_unbindefault 可解除缺省值与表的列或用户自定义数据类型的绑定。其语法如下,Sp_unbindefault [@objname =] 'object_name' [,'futureonly']
( 2)删除默认解除默认值的绑定后,默认值并没有消失,仍然在数据中。如果要删除可以使用企业管理器或者 Transact-SQL语言。
可在企业管理器中删除默认,右键单击要删除的默认,从弹除得快捷菜单中选择
【 删除 】 选项即可删除默认。使用 DROP DEFAULT命令也可以删除当前数据库中的一个或多个默认值。其语法如下,DROP DEFAULT {default_name} [,...n]
5-6本章小结
数据完整性工具的应用是 SQL Server 的一大特点,它通过在数据库端使用特定的规定来管理流入与输出系统的信息。而不是由应用程序本身来控制信息的类型,这使得数据独立与应用程序成为开放的数据库系统。
通过本章的学习,读者应该熟练掌握数据完整性的基本概念和实施数据完整性的基本方法,重点学习约束、规则和默认值三中实施数据完整性的方法,掌握这三种数据库对象的创建、绑定、解除和删除。
2009-7-26 上海应用技术学院 92
本章习题
1:什么是数据完整性?实施数据完整性的方法由哪些以及它们之间的性能比较。
2:创建二个数据库表:产品(产品号,产品名称,供应商号,
价格,库存量);供应商(供应商号,供应商名称,城市,
电话)。产品表中关键字是产品号,外键供应商号,每个字段都非空,且库存量的默认值为 0;供应商表中关键字是供应商号,每个字段都非空。
3:给产品表中的库存量字段绑定一个名称为,KUNCUN_RULE‖
的规则,限制库存量不能大于 1000;给供应商表中的城市字段绑定一个名称为,CITY_RULE‖的规则,限制城市只能是南京、上海、北京、苏州、广州中的一个。
4:给供应商表中的城市字段绑定一个名称为,CITY_DEFA‖、
值为,南京,的默认值。
5:删除以上创建的所有的规则和默认值 。
2009-7-26 上海应用技术学院 93
§ 6.1 创建表
§ 6.2 修改表
§ 6.3 删除表
§ 6.4 表属性与更名
§ 6.5 表数据管理
§ 6.6 索引
表是 SQL Server中一种重要的数据库对象,它存储数据库中的所有数据,管理好表也就管理好了数据库 。 本章主要介绍表的创建,修改和删除,另外还将介绍对表数据的管理和索引的创建,查看,删除等方面的知识 。
第 6章 数据表管理
2009-7-26 上海应用技术学院 94
§ 6.1 创建表创建表的过程就是定义表的列的各种属性的过程 。 在 SQL Server中创建表的方法一般有两种:
使用企业管理器创建表
使用 Transact-SQL语言创建表
6-1-1 使用企业管理器创建表使用企业管理器创建表的具体步骤:
( 1)打开企业管理器,连接数据库服务器,展开数据库,单击展开 TestDB数据库,右击 【 表 】 图标,从快捷菜单中选择 【 新建表 】 选项。
( 2) 在打开的表设计器中根据设计好的表结构输入各个 字 段的名称,数据类型,长度,精度和是否为空,结果为,学生表结构设计图,对话框 。
( 3) 单击工具栏中的保存图标,即出现如图 6-3所示的输入新建表名的对话框 。
( 4) 输入新表名后,单击 【 确定 】 按钮,即会将表保存到数据库中 。
6-1-2 使用 Transact-SQL语言创建表
CREATE TABLE [database_name.] [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} ]
2009-7-26 上海应用技术学院 95
§ 6.2 修改表修改表的结构一般有两种方法:使用企业管理器和使用 Transact-SQL语言修改表 。
在企业管理器中选择要进行修改的表,单击右键,从快捷菜单中选择 【 设计表 】
选项,则可以在对话框中修改列的数据类型、名称等属性或添加、删除列,也可以指定表的主关键字约束。
Transact-SQL语言中修改表结构的语法格式如下:
ALTER TABLE table_name { [ALTER COLUMN column_name
{ new_data_type [ (precision[,scale] ) ] [ COLLATE < collation_name > ]
[ NULL | NOT NULL ] | {ADD | DROP} ROWGUIDCOL } ] }
| ADD { [ <column_definition> ] | column_name AS
computed_column_expression}[,...n]
| [WITH CHECK | WITH NOCHECK] ADD { <table_constraint> }[,...n]
| DROP { [CONSTRAINT] constraint_name | COLUMN column }[,...n]
| {CHECK | NOCHECK} CONSTRAINT {ALL | constraint_name[,...n]}
| {ENABLE | DISABLE} TRIGGER {ALL | trigger_name[,...n]}}
§ 6.3 删除表
2009-7-26 上海应用技术学院 96
§ 6.3 删除表当数据库中的某些表失去作用时,可以删除表,以释放数据库空间,节省资源。删除表的同时,也就从数据库中永久的删除了表的结构定义、数据、全文索引、约束和索引。
如果要删除通过 FROEIGN KRY 和 UNIQUE或者 PRIMARY KEY约束相关的表时,必须首先删除具有 FROEIGN KRY约束的表。删除表一般使用两种方法:
使用企业管理器删除表。
使用 Transact-SQL 语言删除表。
§ 6.4 表属性与更名
1、查看表属性
使用企业管理器查看表属性
使用 Transact-SQL语言中的 sp_help查看表的定义信息
sp_help [@objname=]name
2、更改表的名称可以使用 Transact-SQL语言中的 sp_rename存储过程修改表名,其语法格式如下:
sp_rename [@objname =] 'object_name',[@newname =] 'new_name' [,[@objtype =]
'object_type']
2009-7-26 上海应用技术学院 97
§ 6.5 表数据管理创建表后,最需要做的是在表中进行数据操作。表数据管理主要包括表数据的插入、修改和删除。
6-5-1 表数据的插入
Transact-SQL语言中主要使用 INSERT语句向表或视图中插入新的数据行。
6-5-2 表数据的修改
Transact-SQL语言中的 UPDATE语句用于修改表中的数据,该语句可以一次修改表中一行或多行数据。
6-5-3 表数据的删除
T-SQL语言中的 DELETE和 TRUNCATE TABLE语句均可以删除标中的数据。
§ 6.6 索引
6-6-1 索引的特点和用途索引是一个单独的、物理的数据库结构,它能对表中的一个或者多个字段建立一种排序关系,以加快在表中查询数据的速度。索引是依赖于表建立的,它提供了数据库中编排表中数据的内部方法。一个表的存储是由两部分组成的,一部分用来存放表的数据页面,另一部分存放索引页面。索引就存放在索引页面上。
2009-7-26 上海应用技术学院 98
§ 6.6 索引索引和关键字及约束有较大的联系 。 关键字可以分为两类:一种是逻辑关键字;另一种是物理关键字,它用来定义索引的列,也就是索引 。
6-6-2 索引分类
SQL Server中索引包括簇索引,非簇索引和唯一索引三种类型 。
1,簇索引簇索引中行的物理存储顺序和索引顺序完全相同,每个表只允许建立一个簇索引 。
2,非簇索引非簇索引具有与表的数据完全分离的结构,它不改变行的物理存储顺序 。
3,唯一索引唯 —索引可以确保所有数据行中任意两行的被索引列不包括 NULL在内的重复值 。 如果是复合唯一索引 (有多列 ),则该索引可以确保索引列中每个组合都是唯一的 。
6-6-3 创建索引
SQL Server中可使用企业管理器创建索引,也可以使用 Transact-SQL语言创建索引
※ 使用索引向导创建索引 ※ 使用企业管理器创建索引 ※ Transact-SQL语言创建索引
6-6-4 查看索引
※ 使用企业管理器查看索引 ※ 使用 Transact-SQL语言查看索引
※ 修改索引的名称
2009-7-26 上海应用技术学院 99
§ 6.6 索引 1
可以使用企业管理器来修改索引的名称,右击要修改的索引所属的表,从快捷菜单中选择 【 设计表 】,出现如图 6-4所示的对话框,然后选择工具栏上的 【 管理关系 】
按钮,选择 【 索引 /键 】 选项,出现如图 6-7所示的对话框 。 在,索引名,后面的文本框中可以修改现有索引的名称 。
Transact-SQL语言中的 sp_rename存储过程也可以修改索引的名称,其语法格式如下:
Sp_rename oldname,newname
6-6-5 删除索引
使用企业管理器删除索引
使用 Transact-SQL语言删除索引 其语法如下:
DROP INDEX 'tablename.indexname' [,...n]
【 例 6-14】 删除学生表中名称为“学生 _index_02‖的索引。
DROP INDEX 学生,学生 _index_02
运行结果:
-------------------------
命令已成功完成。
6-7 本章小结 本章重点介绍了 SQL Server数据库中的表的管理和索引的管理两部分内容。前者应该能够熟练地使用企业管理器和 Transact-SQL语言来创建表、修改表、删除表;了解修改表的一些属性和名称的方法;后者首先应该理解索引的概念和用途,然后理解几种不同的索引的区别,能够分别使用企业管理器和 Transact-SQL
语言创建索引、查看和删除索引。
2009-7-26 上海应用技术学院 100
第 7章 视图
§ 7.1 视图的概述
§ 7.2 创建视图
§ 7.3 修改视图
§ 7.4 删除视图
§ 7.5 使用视图
本章主要介绍 SQL Server 2000中视图 ( View) 的创建,修改,删除和使用 。 要求重点掌握使用 Transact-SQL语言创建视图以及使用视图操纵表数据,如对表数据的插入,修改和删除等 。
2009-7-26 上海应用技术学院 101
§ 7.1 视图的概述视图是从一个或多个表(物理表)中导出的虚拟表(简称虚表),包括数据列和数据行,这些数据列和数据行来源于其所引用的表(称作视图的基表),
用户通过视图来浏览表中感兴趣的部分或全部数据,而数据的物理存放位臵仍然在视图所引用的基表中,视图中的保存的只是 SELECT查询语句,
使用视图具有以下一些优点:
简化数据操作。
提供安全保护功能。
定制数据。
有利于数据交换操作。
易于合并或分割数据。
§ 7.2 创建视图若要创建视图,用户必须具有“创建视图”权限和在视图所引用的表、视图和表值函数上具有,SELECT”权限,在视图所唤醒调用的标量值函数上具有
,EXECUTE”权限。
SQL Server 2000提供了使用 SQL Server 企业管理器和 Transact-SQL 命令两种方法来创建视图。
在创建或使用视图时,应该注意到以下情况( 7点)。
2009-7-26 上海应用技术学院 102
§ 7.2 创建视图
7-2-1 使用企业管理器创建视图启动 SQL SERVER 企业管理器( Enterprise Manager),登录到指定的服务器。 在企业管理器中展开选定的数据库,鼠标右击视图图标或右面窗格,在弹出菜单中选择 【 新建视图 … 】
7-2-2 使用 Transact-SQL语言创建视图在 Transact-SQL语言中,可以用 CREATE VIEW 语句来创建视图 。
1,CREATE VIEW语法格式,
CREATE VIEW [ < database_name >,] [ < owner >,] view_name [ ( column [,..,n ] ) ]
[ WITH < view_attribute > [,..,n ] ] AS
select_statement
[ WITH CHECK OPTION ]
< view_attribute >,:={ ENCRYPTION | SCHEMABINDING | VIEW_METADATA }
2,CREATE VIEW语句的使用
【 例 7-1】 基于学生表建立用来显示学生姓名,性别,校名等信息的学生信息视图
CREATE VIEW 学生信息视图
AS
SELECT 姓名,性别,校名 FROM 学生
2009-7-26 上海应用技术学院 103
§ 7.3 修改视图
3,视图存储过程语句在 SQL SERVER 中有三个关键存储过程语句:
sp_depends( 用来确定数据库对象的相关性信息,sp_depends 数据库对象名称 )
sp_help( 用来返回有关数据库对象的详细信息,sp_help 数据库对象名称 )
sp_helptext( 显示规则,默认值,未加密的存储过程,用户定义函数,触发器或视图的文本 。 其语法为,sp_helptext 数据库对象名称 )
7-2-3 使用向导创建视图
§ 7.3 修改视图
7-3-1使用企业管理器修改视图
l 基于视图 【 属性 】 进行修改 。
7-3-2 使用 Transact-SQL语言修改视图使用 ALTER VIEW 语句修改视图定义 。
语法格式为:
ALTER VIEW [ < database_name >,] [ < owner >,] view_name [ ( column [,...n ] ) ]
[ WITH < view_attribute > [,...n ] ] AS
select_statement
[ WITH CHECK OPTION ]
< view_attribute >,:= { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }
2009-7-26 上海应用技术学院 104
§ 7.3 修改视图
7-3-3视图的更名在企业管理器中可对视图更名,也可使用系统过程 sp_rename来对视图更名 。 sp_rename
主要用于更改当前数据库中用户创建对象 ( 如表,列或用户定义数据类型 ) 的名称 。 其语法格式为:
sp_rename [ @objname = ] 'object_name',[ @newname = ] 'new_name'
[,[ @objtype = ] 'object_type' ]
【 例 7-2】 将学生信息视图 1重命名为学生基本信息视图。
EXEC sp_rename ‘学生信息视图 1’,‘学生基本信息视图’
§ 7.4 删除视图在创建视图后,如果不再需要该视图,或想清除视图定义及与之相关联的权限,可以删除该视图 。 删除视图后,表和视图所基于的数据并不受到影响 。
7-4-1使用企业管理器删除视图
7-4-2 使用 Transact-SQL语言删除视图执行 DROP VIEW语句可以删除一个无用的视图 。 DROP VIEW语句的语法格式为:
DROP VIEW {view_name} [,… n]
【 例 7-1】 删除学生信息视图 1。
DROP VIEW 学生信息视图 1
2009-7-26 上海应用技术学院 105
§ 7.5 使用视图
7-5-1使用视图插入表数据
SQL Server中不仅可以通过视图检索基表中的数据,而且还能够向基表中插入或修改数据 。 但是,所插入的数据也必须符合基表中各种约束和规则的要求 。
【 例 7-1】 通过学生基本信息视图向学生表中插入一行数据 。
INSERT INTO 学生基本信息视图
VALUES ('040202','李华 ','男 ','东华大学 ')
7-5-2使用视图修改表数据
【 例 7-2】 下面语句对刚插入的行进行修改 。
UPDATE 学生基本信息视图
SET 性别 =‘女 ’ WHERE 学号 ='040202'
在查询分析器中执行上述语句,可看到刚通过视图插入到学生表中的数据行被修改了 。
7-5-3使用视图删除表数据
【 例 7-3】 下面语句对刚插入的行进行删除 。
DELETE 学生基本信息视图
WHERE 学号 ='040202'
执行上面语句,我们可以看到刚通过视图插入到表中的数据行被删除 。
2009-7-26 上海应用技术学院 106
7-6 本章小结本章主要介绍了 SQL Server 中极为重要的一个概念:视图。视图是从一个或多个表(物理表)中导出的查询结果集,虽然仍与表具有相似的结构,但它是一张虚表。和表一样,视图包括数据列和数据行,这些数据列和数据行来源于其所引用的表(称作视图的基表),用户通过视图来浏览表中感兴趣的部分或全部数据,而数据的物理存放位臵仍然在视图所引用的基表中,视图中的保存的只是 SELECT查询语句。
习题七什么是视图?视图可以用来执行哪些功能? 哪些方案可以使用视图?
3,在建立视图的时候,至少要遵循哪 5条限制?
4,SQL Server提供了哪些方法建立视图?
5,应该使用什么 Transact-SQL语句来改变视图的定义或者从数据库中删除视图?
6,如果希望查看 Northwind数据库中 AuthorNames视图中的所有数据,应该使用哪个 Transact-SQL语句?
应该使用哪些 Transact-SQL语句在视图中插入、修改和删除数据?
请问如何利用 Transact-SQL语句通过视图将数据装载到表?试以一个 INSERT语句指定一个视图名为例加以说明。
如果在数据库中有一个 学生基本信息视图,请问使用企业管理器和 Transact-
SQL语句如何删除该视图?
2009-7-26 上海应用技术学院 107
第 8章 Transact-SQL 语言
§ 8.1 程序设计基础与事务
§ 8.2 Transact-SQL 语法规则
§ 8.3 变量
§ 8.4 运算符
§ 8.5 程序流控制语句
Transact-SQL程序设计对于 SQL Server 2000系统而言是至关重要的,是使用 SQL Server 2000的主要形式 。 本章主要介绍了 Transact-SQL程序设计基础,事务机制,Transact-SQL语法规则,SQL Server 2000的变量和程序控制流语句等 。
2009-7-26 上海应用技术学院 108
§ 8.1 程序设计基础与事务
SQL Sever 2000中的编程语言就是 Transact-SQL 语言,这是一个非过程化的高级语言,我们可以使用 Transact-SQL语句编写服务器端的程序。一般而言,一个程序是由以下要素组成:
注释。
批处理。
程序中使用的变量。
改变批中语句的执行顺序的流控制语言。
错误和消息的处理。
1,注释语句
,--‖(双连字符),表示单行注释,从双连字符开始到行尾均为注释。
/*,.,*/(正斜杠 +星号对),用于多行(块)注释。
2,批处理批处理是从客户机传递到服务器上的一组完整的数据和 SQL指令。
3,GOTO 语句
GOTO 语句用来改变程序执行的流程,使程序跳到标有标识符的指定的程序行再继续。
4,RETURN语句
RETURN语句用于在任何时候从过程、批处理或语句块中结束当前程序、
无条件退出,而不执行位于 RETURN 之后的语句,返回到上一个调用它的程序,
在括号内可指定一个返回值。
2009-7-26 上海应用技术学院 109
§ 8.3 Transact-SQL 语法规则
5,PRINT命令
PRINT 命令向客户端返回一个用户自定义的信息,即显示一个字符串、局部变量或全局变量,如果变量值不是字符串的必须先用数据类型转换函数 CONVERT
将其转换为字符串其中 string_expression 是可返回一个字符串的表达式。
8-2-1 事务
1.事务 2.事务属性
8-2-2 事务模式
SQL Server 的事务模式可以分为显式事务、隐式事务与自动提交事务三种模式。
8-3 Transact-SQL 语法规则
8-4 变量变量是 SQL Server 2000 中由系统或用户定义并可对其赋值的实体,其可分为两种变量,一种是全局变量( Global Variable),另外一种是局部变量 (Local Variable)。
全局变量由系统定义和维护,局部变量由用户定义和赋值。
8-4-1 局部变量局部变量是用户可自定义的变量,它的作用范围仅在程序内部(作用域局限在一定范围的 Transact-SQL对象)。
1.声明局部变量
DECLARE @变量名 变量类型 [,@变量名变量类型 ……]
2009-7-26 上海应用技术学院 110
§ 8.4 变量
2,局部变量的赋值在 Transact-SQL 中局部变量的赋值不同于一般程序语言的形式:变量 =变量值,
而必须使用 SELECT 或 SET 命令来给局部变量赋值,其语法如下
SELECT @局部变量 =变量值
SET @局部变量 =变量值
【 例 8-12】 声明局部变量 gh,xm并赋值,并引伸各种赋值形式。
DECLARE @gh char(4),@xm char(8)
SELECT @gh = '0014'
SET @xm=?上官云珠’ Go
8-4-2 全局变量全局变量是 SQL Server 系统内部使用的由 SQL Server系统提供并赋值的变量,是用来记录 SQL Server服务器活动状态的一组数据。
SQL Server提供的全局变量分为两类:
与每次同 SQL Server 连接和处理相关的全局变量 。 如,@@ROWCOUNT,示返回受上一语句影响的行数 。
与内部管理所要求的关于系统内部信息有关的全局变量。如,@@VERSION表示返回 SQL Server当前安装的日期、版本和处理器类型。
2009-7-26 上海应用技术学院 111
§ 8.4 运算符运算符是一种符号,用来指定要在一个或多个表达式中执行的操作,执行列、常量或变量键的数学运算和比较操作。而表达式则是标识符、值和运算符的组合。简单的表达式可以是一个常量、函数、列名、变量与子查询。可以用运算符将两个或更多的简单表达式联接起来组成复杂的表达式。 SQL Server
2000 中的运算符包括:算术运算符、位运算符、比较运算符、逻辑运算符、赋值运算符、字符串串联运算符和一元运算符。
8-5-1 算术运算符算术运算符用于执行数字型表达式的算术运算,SQL Server 2000支持的算术运算及其可操作的数据类型如表 8-4所示。加 (+) 和减 (–) 运算符也可用于对
datetime 及 smalldatetime 值执行算术运算。
2009-7-26 上海应用技术学院 112
8-5-2 位运算符位运算符可以对整型或二进制字符数据进行按位与(&)、按位或( |)、按位异或(^)与求反( ~)运算。位运算符的具体含义如表 8-5。
8-5-3 比较运算符比较运算符用来比较两个表达式的大小 。 它们能够比较除 text,ntext和 image数据类型之外的其他数据类型表达式 。 SQL Server 2000支持的比较运算符包括:
( 1) >:大于 。
( 2) =:等于 。
( 3) <:小于 。
( 4) >=:大于或等于 。
( 5) <=:小于或等于 。
( 6) <> ( != ),不等于 。
( 7) !>:不大于 。
( 8) !<:不小于 。
【 例 8-14】 设计一个用比较表达式作为过滤条件,列出 Northwind数据库 Products表中所有 ProductID等于 10的产品记录 。 其中,在 WHERE 子句中使用带有布尔数据类型的表达式,可以筛选出符合搜索条件的行 。
USE Northwind /DECLARE @MyProduct int
SET @MyProduct = 10
IF (@MyProduct <> 0)
SELECT * FROM Products WHERE ProductID = @MyProduct /GO
2009-7-26 上海应用技术学院 113
8-5-4 逻辑运算符逻辑运算符用来测试逻辑条件进行测试,以获得其真实情况 。 它与比较运算符一样,根据测试结果返回布尔值,True,False或 Unknown。 逻辑运算符有:
AND,OR,NOT,BETWEEN和 LIKE等,运算内涵与结果如表 8-7所示 。
8-5-5 字符串连接符字符串连接符 ( + ) 用于实现字符串之间的连接操作 ( 如将 'abc' + 'def' 存储为 'abcdef') 。
8-5-6 赋值运算符
SQL Server 2000中的赋值运算符为等号 ( =),附加 SELECT 或 SET 命令来进行赋值,它将表达式的值赋给一个变量,或为某列指定列标题 。
USE Northwind
GO
SELECT FirstColumnHeading = '网络 ',
SecondColumnHeading = ProductID
FROM Products
GO
2009-7-26 上海应用技术学院 114
8-5-7 运算符的优先级
SQL Server中的运算符具有不同的优先级,同一表达式中包含有不同运算符时,运算符的优先级决定了表达式的计算和比较操作顺序 。
SQL Server中各种运算符的优先级顺序为:
( 1) 括号,( ) 。
( 2) 正,负或取反运算,+,—,~。
( 3) 乘,除,求模运算:*,/,% 。
( 4) 加,减,字符连接运算,+,—,+。
( 5) 比较运算:=,>,<,>=,<=,<>,!=,!>,!< 。
( 6) 位运算:^,&,|。
( 7) 逻辑非运算,NOT。
( 8) 逻辑与运算,AND。
( 9) ALL,ANY,BETWEEN,IN,LIKE,OR,SOME等运算 。
( 10)赋值运算:=。
2009-7-26 上海应用技术学院 115
8-6 程序流控制语句流控制语句用于控制 Transact-SQL语句、语句块或存储过程的执行流程,它与常见的程序设计语言类似。 SQL Server 2000中提供的流控制语句及功能如表 8-10所示。
2009-7-26 上海应用技术学院 116
8-6-1 IF ELSE
在 SQL Server 2000中,为了控制程序的执行方向,引进了 IF… ELSE条件判断结构 。
IF… ELSE语法格式:
IF <条件表达式 >
<SQL语句或语句块 1>
[ELSE
<SQL语句或语句块 2>]
8-6-2 BEGIN END
BEGIN… END用来定义一个语句块 ( 类似与其他高级语言中的复合句 ),
位于 BEGIN和 END之间的 Transact-SQL语句都属于这个语句块,可视作一个单元来执行 。 执行 BEGIN… END 经常在条件语句 ( 如 IF… ELSE) 中使用,在
BEGIN… END中可嵌套,使用另外的 BEGIN END 来定义另一程序块 。 典型实例如图 8-1所示 。
BEGIN… END语法格式,BEGIN
<SQL语句或语句块 >
END
2009-7-26 上海应用技术学院 117
8-6-3 CASE结构
1,简单 CASE表达式简单 CASE表达式将一个测试表达式与一组简单表达式进行比较,如果某个简单表达式的值相等,则返回相应表达式的值 。 简单 CASE表达式格式如下:
CASE <表达式 >
WHEN <表达式 > THEN <表达式 >
[[WHEN <表达式 > THEN <表达式 >][… ]]
[ELSE <表达式 >]
END
2,搜索 CASE表达式搜索 CASE表达式的格式为:
CASE
WHEN <布尔表达式 > THEN <运算式 >
[[WHEN <布尔表达式 > THEN <表达式 >][… ]]
[ELSE <运算式 >]
END
2009-7-26 上海应用技术学院 118
8-6-3 CASE结构
【 例 8-21】 从信息管理数据库的学生表与成绩表中将成绩划分为五个等级 ( 详见程序 ),并输出结果 。 运行结果如图 8-3所示 。
use 信息管理
select a.学号,姓名,校名,学分,b.课程名,b.成绩,成绩等级 =
case
when 成绩 <60 then?不及格 ’
when 成绩 >=60 and 成绩 <70 then?及格 ’
when 成绩 >=70 and 成绩 <80 then?中 ’
when 成绩 >=80 and 成绩 <90 then?良 ’
when 成绩 >=90 then?优 ’
end
from 学生 as a,成绩 as b
where a.学号 =b,学号
go
2009-7-26 上海应用技术学院 119
8-6-3 CASE结构
8-6-4 WHILE 循环结构
WHILE语句通过 布尔表 达式设置重复执行 SQL 语句或语句块的循环条件。 WHILE
命令在设定的条件成立时会重复执行 SQL语句或程序块。可以使用 BREAK 和
CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。 WHILE 语句也可以嵌套。
WHILE循环 语法格式:
WHILE 布尔表达式 >
BEGIN
<SQL语句或程序块 >
[BREAK]
[CONTINUE]
[SQL语句或程序块 ]
END 8-6-5 WAITFOR
WAITFOR语句指定延迟一段时间 ( 时间间隔或一个时刻 ) 来执行 ( 触发 )
一个 Transact-SQL语句,语句块,存储过程或事务 。
2009-7-26 上海应用技术学院 120
8-7 本章小结
SQL Server 2000 中运用 Transact-SQL 语言可进行一系列的程序设计,其中涉及到用于说明的注释语句,由一组 Transact-SQL语句组成的批处理,用来改变程序执行流程的 GOTO 语句,返回语句 ( RETURN),
PRINT命令,事务机制,Transact-SQL语法规则等 。 SQL Server 2000的变量和程序控制流语句 ( IF… ELSE条件判断结构,BEGIN… END语句块,
CASE结构,WHILE循环结构与 WAITFOR延迟等待语句 ) 可用于数据类型设置,变量与函数的设置运用及控制 Transact-SQL语句,语句块或存储过程的执行流程 。
在 SQL Server 2000中,每个列、局部变量、表达式和参数都有一个相关的数据类型,数据类型系指以数据的表现方式和存储结构来划分的数据种类(具体见附录)。在 SQL Server 中数据有两种表示特征:类型和长度。本章讲述了运算符和两种变量(局部变量和全局变量)。运算符是一种符号,用来指定要在一个或多个表达式中执行的操作,执行列、
常量或变量键的数学运算和比较操作。运算符包括算术运算符、位运算符、比较运算符、逻辑运算符、赋值运算符、字符串运算符和一元运算符等。
2009-7-26 上海应用技术学院 121
§ 9.1 SELECT语句基础
§ 9.2 简单查询
§ 9.3 分类汇总
§ 9.4 联接
§ 9.5 嵌套查询的使用
§ 9.6 数据更新的运用
SQL Server 2000提供了基于 "Select-From-Where‖语句的数据查询功能 。
本章主要介绍了对数据库内容进行操作时经常要用到的 Select-From-
Where语句结构,给出了 SELECT语句的语法格式,并介绍了如何在查询分析器中执行 SELECT语句,进而对 SELECT语法中各主要子句进行分析等 。
第 9章 数据查询
2009-7-26 上海应用技术学院 122
§ 9.1 SELECT语句基础在数据库应用中,数据查询是通过 SELECT语句来完成的,SELECT语法提供了丰富的查询能力,可以查询一个或多个表;对查询列进行筛选,计算;对查询行进行分组,分组过滤,排序;甚至可以在一个 SELECT语句中嵌套另一个
SELECT语句 。
9-1-1 SELECT语句的语法格式
SELECT 语句从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列 。
SELECT语句的主要结构如下:
SELECT select_list [ INTO new_table ] FROM table_source
[ WHERE search_condition ] [ GROUP BY group_by_expression ]
[ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ]
[COMPUTE 子句 ][FOR 子句 ] [OPTION 子句 ]
SELECT各子句执行顺序及功能简介:
( 1) SELECT子句:用于指定输出列 ( 字段 ),也可求值输出 。
( 2) INTO子句:将检索结果存储到新表或视图中 。
( 3) FROM子句:用于指定检索数据的源表或视图 。
( 4) WHERE子句:指定选择行 ( 记录 ) 的过滤条件 。
2009-7-26 上海应用技术学院 123
9-1-1 SELECT语句的语法格式
( 5) GROUP BY:子句对检索到记录进行分组 。 如:,学生,表在,区域,列中有五个值 。,GROUP BY 区域,子句可将结果集分成五组,每组对应于,区域,
的一个值 。
( 6) HAVING子句:系指定记录辅助过滤条件,从分组的结果中筛选行,即选取满足条件的那些组 。 逻辑上讲,HAVING 子句从中间结果集 ( 由 SELECT 语句中的 FROM,WHERE 或 GROUP BY 子句创建的 ) 对行进行筛选 。 HAVING
子句通常与 GROUP BY 子句一起使用,如果不使用 GROUP BY 子句,
HAVING 的行为与 WHERE 子句一样 。
( 7) ORDER BY子句:是对检索到数据进行排序; ASC 和 DESC 关键字用于指定行是按升序还是按降序排序,默认升序 。
( 8) 其它几个子句功:
UNION 运算符:将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行 。 可以在查询之间使用 UNION 运算符,以将查询的结果组合成单个结果集 。
COMPUTE 子句:生成合计作为附加的汇总行附加在结果集的最后 。 当与
BY 一起使用时,COMPUTE 子句在结果集内生成控制中断,明细和分类汇总 。
可在同一查询内指定 COMPUTE BY 和 COMPUTE。
FOR语句:指定数据的返回形式 。 OPTION 子句:指定应在整个查询中使用所指定的查询提示 。
2009-7-26 上海应用技术学院 124
9-1-2 SELECT语句的执行方式
1,通过查询设计器辅助生成和执行 SELECT语句
2,通过查询分析器执行 SELECT语句
9-2 简单查询在 SELECT语法中,通过 SELECT,FROM和 WHERE子句来指定结果集的前三个属性,结果集的第四个属性通过 ORDER BY 子句指定。
在 关系数据库中,通常用选择、连接和投影三个术语来表示前三项,即
SELECT,FROM和 WHERE子句分别对应于关系数据库术语中的选择、连接和投影。
【 例 9-1】 使用 SELECT 语句查找学分超过 300的学生的学号,姓名以及学分,并按学分升序排列 。
SELECT 学号,姓名,学分
FROM 学生 WHERE (学分 > 300)
ORDER BY 学分 ASC
9-2-1 FROM 子句
9-2-2 SELECT子句
2009-7-26 上海应用技术学院 125
9-3 分类汇总
9-2-1 FROM 子句
9-2-3 WHERE子句
9-2-4 ORDER BY 子句
9-3 分类汇总在 SELECT 语句中,可以使用统计函数,GROUP BY 子句和 COMPUTE BY 子句对查询结果进行分类汇总 。
9-3-1 常用统计函数为了有效地进行数据集分类汇总,求平均值等统计,SQL
Server 2000提供了一系列统计函数 ( 也称聚合函数或集合函数 ),如 SUM,AVG等,
通过他们可在查询结果集中生成汇总值 。 常用统计函数如表 9-4所示 。
2009-7-26 上海应用技术学院 126
9-3-2 使用 GROUP BY分组
GROUP BY 子句的语法格式为:
GROUP BY [ ALL ] group_by_expression [,...n ][ WITH { CUBE | ROLLUP } ]
【 例 9-15】 按区域,校名及平均学分分类查询满足学分 >100的行记录,并分组过滤平均学分 >280的 。 运行结果如图 9-6所示 。
SELECT 区域,校名,AVG(学分 ) as 平均学分 FROM 学生 WHERE 学分 >100
GROUP BY 区域,校名 having AVG(学分 )>280 ORDER BY 校名
9-3-3 使用 COMPUTE BY汇总
COMPUTE BY 子句使用户得以用同一 SELECT 语句既查看明细行,又查看汇分类总行;而 COMPUTE子句使用户得以用同一 SELECT 语句既查看明细行,又查看总计行。
COMPUTE 子句需要下列信息:可选的 BY 关键字,该关键字可对一列计算指定的行统计;行统计函数名称;例如,SUM,AVG,MIN,MAX 或 COUNT; 要对其执行行统计函数的列 。
【 例 9-16】 计算结果集中成绩的汇总值 。
SELECT TOP 2 学号,课程名,成绩
FROM 成绩
COMPUTE sum(成绩 )
SELECT TOP 2 学号,课程名,成绩
FROM 成绩
ORDER BY 学号
COMPUTE sum (成绩 ) BY 学号
2009-7-26 上海应用技术学院 127
§ 9.4 联接联接,可以根据各个表之间的逻辑关系从两个或多个表中检索数据 。 联接表示如何使用一个表中的数据来选择另一个表中的行 。
联接条件通过以下方法定义两个表在查询中的关联方式:
( 1) 指定每个表中要用于联接的列 。 典型的联接条件在一个表中指定外键,
在另一个表中指定与其关联的键 。
( 2) 指定比较各列的值时要使用的逻辑运算符 ( =,<> 等 ) 。
联接条件可在 FROM 或 WHERE 子句中指定,建议在 FROM 子句中指定联接条件,有助于将联接条件与 WHERE 子句中可能指定的其它搜索条件分开。
联接可分为内联接、外联接和交叉联接。
9-4-1 内联接内联接是用比较运算符比较要联接列的值的联接。方法为:
1.相等联接和自然联接
2.使用等号以外的运算符的联接
9-4-2 外联接而外联接会返回 FROM 子句中提到的至少一个表或视图的所有行,只要这些行符合 WHERE 或 HAVING 搜索条件 。 将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行 。
1,使用左向外联接
2009-7-26 上海应用技术学院 128
9-4-2 外联接左向外联接的结果集包括 LEFT OUTER JOIN 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行 。 如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值 。
2,使用右向外联接右向外联接是左向外联接的反向联接 。 将返回右表的所有行 。
3,使用完整外部联接若要在联接结果中保留不匹配的行,可使用完整外部联接 。 不管另一个表是否有匹配的值,完整外部联接都包括两个表中的所有行 。
9-4-3 交叉联接不含 WHERE 子句的交叉联接将产生两个表的笛卡尔积,第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小 。
9-4-4 自联接表可以通过自联接与自身联接 。 自联接中一个表被引用两次,必须在 FROM 子句中使用别名区分两个引用 。 自联接相当于两个内容完全一样的表的联接 。
9-4-5 多表联接虽然每个联接规范只联接两个表,但 FROM 子句可包含多个联接规范 。
这样一个查询可以联接若干个表 。
2009-7-26 上海应用技术学院 129
§ 9.5 嵌套查询的使用
【 例 9-25】 从三个表中查找学生学习信息 。
SELECT 学生,姓名,成绩,课程名,成绩,成绩,课程,学分
FROM 学生 INNER JOIN
成绩 ON 学生,学号 = 成绩,学号 INNER JOIN
课程 ON 成绩,课程号 = 课程,课程号
§ 9.5 嵌套查询的使用
9-5-1 子查询基础子查询是一个 SELECT 查询,它返回单个值且嵌套在 SELECT,INSERT、
UPDATE,DELETE 语句或其它子查询中。
9-5-2 EXIST与 IN子查询 9-5-3 子查询的活用
【 例 9-26】 是一个小于等于 (<=) 联接,从成绩表中得到高等数学的名次及学号,结果集略 。
SELECT 成绩,学号,COUNT(*) AS 名次 FROM 成绩 INNER JOIN
§ 9.6 数据更新的运用
9-6-1使用 INSERT 添加行
INSERT 语句可给表添加一个或多个新行 。 由于 SQL Server 2000自动为以下类型的列生成值,INSERT 语句将不为这些类型的列指定值:
具有 IDENTITY 属性的列,该属性为列生成值,计算列 。
有默认值的列,该列用 NEWID 函数生成一个唯一的 GUID 值 。
2009-7-26 上海应用技术学院 130
§ 9.6 数据更新的运用
9-6-2 使用 UPDATE更新数据
UPDATE 语句可以更改表或视图中单行、行组或所有行的数据值。引用某个表或视图的 UPDATE 语句每次只能更改一个基表中的数据。
UPDATE 语句包括 SET,WHERE和 FROM三个主要子句:
使用 SET子句更改数据
使用 WHERE 子句更改数据
使用 FROM 子句更改数据
9-6-3使用 DELETE删除行
DELETE 语句可删除表或视图中的一行或多行,不带参数则将删除表中所有行 。
【 例 9-30】 删除成绩 1表中课程名是‘高等数学’的所有行,然后删除该表中所有行。
UPDATE 成绩 1
SET 成绩 = 90
UPDATE 成绩 1 SET 成绩 = 95
WHERE 课程名 ='高等数学 '
UPDATE 成绩 1 SET 成绩 = 成绩,成绩 FROM 成绩
WHERE 成绩 1.学号 =成绩,学号 AND 成绩 1.课程名 =成绩,课程名 AND
成绩 1.课程名 ='高等数学 '
2009-7-26 上海应用技术学院 131
9-6-3 使用 DELETE删除行
DELETE FROM 成绩 1 WHERE 成绩 1.课程名 ='高等数学 '
Go
DELETE 成绩 1
9-7 本章小结
SELECT语句可以查询一个或多个表;对查询列进行筛选,计算;对查询行进行分组,分组过滤,排序;甚至可以在一个 SELECT语句中嵌套另一个
SELECT语句 。 虽然 SELECT 语句的完整语法较复杂,但只要掌握了 SELECT主要子句的执行顺序及功能就基本掌握了 SELECT语句 。 SELECT子句指定输出列
( 字段 ) ; INTO子句将检索结果存储到新表中; FROM子句用于指定检索数据的来源; WHERE指定选择行 ( 记录 ) 的过滤条件; GROUP BY子句对检索到记录进行分组; HAVING子句系指定记录辅助过滤条件 ( 需与 ORDER BY子句一起用 ) ; ORDER BY子句是对检索到记录进行排序 。
INSERT 语句可给表添加一个或多个新行,UPDATE 语句可以更改表或视图中单行,行组或所有行的数据值 。 DELETE 语句可删除表或视图中的一行或多行 。 利用 Transact-SQL( T-SQL) 和利用企业管理器进行数据的查询与更新各有利弊 。 使用企业管理器比较直观 。 如利用企业管理器中的查询设计器可以很直观地生成简单的 SELECT语句,如果操作不正确,企业管理器会显示错误讯息或是提供建议 。 而使用 T-SQL更灵活一些,同时可以保留一份 T-SQL操作记录 。
2009-7-26 上海应用技术学院 132
习题九
1,简述 SELECT主要子句的功能 。
2,没有 FROM子句的 SELECT语句有什么作用?
3,在查询分析器中选择信息管理数据库中成绩表中所有学生的学号和高等数学成绩 。
4,举例说明如何在 SELECT和 FROM子句中为列和表指定别名 。
5,举例说明 WHERE和 HAVING子句的相同点和不同点 。
6,举例说明内联接,外联接,交叉联接和自联接 。
7,举例说明 GROUP BY子句 。
8,举例说明 COMPUTER BY子句 。
9,使用 INSERT语句有几种方法插入行? 试举例说明 。
10,使用 UPDATE语句有几种方法插入行? 试举例说明 。
11,先用一句命令删除成绩表中所有数据,再用一句命令删除成绩表 。
2009-7-26 上海应用技术学院 133
教材、参考书及说明教 材,虞益诚,SQL Server 2000数据库 技术,北京:中国铁道出版社,2004
参考书:
1,于松涛等编,精通 SQL Server 2000数据库管理与开发,人民邮电出版社,2003.10
2,李赫雄等,SQL Server 2000应用程序开发,人民邮电出版社,2001.3
3,闫华等,SQL Server 2000与 ASP WEB 数据库编程技术编,北京大学出版社,2002.1
4,P.Dusan著,吕静华等译,SQL Server 2000 基础教程,清华大学出版社,2002.8
5,高艳春,李韶瑾等译,即时应用 SQL Server 2000中文版,人民邮电出版社,2001.12
6,U.Craig著 宫丽杰等译,SQL Server 2000 WEB应用开发指南,清华大学出版社,2001.10
7,周绪,管丽娜,白海波,SQL Server 2000中文版入门与提高,清华大学出版社,2001.5
8.袁连海,董文,张志亮,SQL Server 2000应用开发实例教程,机械工业出版社,2002.1
9.向中凡,SQL Server 2000实用操作与技巧,西安电子科技大学出版社,2001.3
10.卫海,快速学习 SQL Server 2000中文版,中国铁道出版社,2001.9
11,闪四清编,SQL Server 2000系统管理指南,清华大学出版社,2001.1