资源描述
上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材第1章 SQL Server 关系数据库简介 1.1 SQL Server 特点 1.2 SQL Server的安装和配置 1.3 SQL Server 工具和实用程序 开 始 返 回 目 录 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材SQL Server 关系数据库简介 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。 SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出的最新版本。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.1 SQL Server 特点1真正的客户机/服务器体系结构。2图形化用户界面,使系统管理和数据库管理更加直观、简单。3丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。4SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材 5具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。 6对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。 7SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材SQL Server 2000与以前版本相比较又具有以下新特性 1支持XML(Extensive Markup Language,扩展标记语言)2强大的基于Web的分析3支持OLE DB和多种查询4支持分布式的分区视图 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.2 SQL Server的安装和配置 1.2.1 SQL Server 环境需求 1.2.2 SQL Server 2000的安装 1.2.3 SQL Server 升级 1.2.4 SQL Server 系统数据库简介 1.2.5 SQL Server 系统表简介 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.2.1 SQL Server 环境需求 SQL Server 2000常见的版本 企业版(Enterprise Edition)标准版(Standard Edition)个人版(Personal Edition)开发者版(Developer Edition) 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1、安装、运行SQL Server 2000的硬件需求(1)计算机Inter及其兼容计算机,Pentium 166Mz或者更高处理器或DEC Alpha和其兼容系统。(2)内存(RAM)企业版最少64MB内存,其他版本最少需要32MB内存,建议使用更多的内存。(3)硬盘空间完全安装(Full)需要180MB的空间,典型安装(Typical)需 要170MB的空间,最小安装(Minimum)需要65MB的空间。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2、安装、运行SQL Server 2000的软件需求 SQL Server 2000企业版必须运行于安装Windows NT Server Enterprise Edition 4.0或者Windows2000 Advanced Server以及更高版本的操作系统下。 SQL Server 2000标准版必须运行于安装Windows NT Server Enterprise Edition 4.0、Windows NT Server 4.0、Windows 2000 Server以及更高版本的操作系统下。 SQL Server 2000 个人版可在多种操作系统下运行,如可运行于Windows 9x, Windows NT 4.0或Windows 2000的服务器版或工作站版的操作系统下。 SQL Server 2000 开发者版可运行于上述Windows 9x以外的所有操作系统下。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.2.2 SQL Server 2000的安装SQL Server 2000的安装过程与其它Microsoft Windows系列产品类似。 用户可根据向导提示,选择需要的选项一步一步地完成。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材 1.2.3 SQL Server 升级 如果计算机中安装有旧的SQL Server版本,那么安装SQL Server 2000时需要做以下工作,以确保系统能退回到升级前的状态。1. 检查操作系统是否满足安装要求。2. 检查磁盘空间是否足够安装新的SQL Server 2000版本。3. 备份包括系统数据库在内的所有数据库。4. 备份操作系统的注册表,用于恢复原有的SQL Server。5. 关闭任何与旧的SQL Server相关的应用程序。 6. 安装SQL Server 2000数据库管理系统。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.2.4 SQL Server 系统数据库简介 SQL Server 2000有6个系统数据库 1. Master数据库是SQL Server系统最重要的数据库,它记录了SQL Server系统的所有系统信息。这些系统信息包括所有的登录信息、系统设置信息、SQL Server的初始化信息和其它系统数据库及用户数据库的相关信息。 2. Model数据库是所有用户数据库和Tempdb数据库的模板数据库,它含有Master数据库所有系统表的子集,这些系统数据库是每个用户定义数据库需要的。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材3. Msdb数据库是代理服务数据库,为其警报、任务调度和记录操作员的操作提供存储空间。 4. Tempdb是一个临时数据库,它为所有的临时表、临时存储过程及其它临时操作提供存储空间。 5. Pubs和Northwind数据库是两个实例数据库,它们可以作为SQL Server的学习工具。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.2.5 SQL Server 系统表简介 系统目录是由描述SQL Server 系统的数据库、基表、视图和索引等对象的结构的系统表组成。SQL Server 经常访问系统目录,检索系统正常运行所需的必要信息。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材几个最重要的系统表 1. Sysobjects表SQL Server 的主系统表sysobjects出现在每个数据库中,它对每个数据库对象含有一行记录。2. Syscolumns表系统表syscolumns出现在master数据库和每个用户自定义的数据库中,它对基表或者视图的每个列和存储过程中的每个参数含有一行记录。3. Sysindexes表系统表sysindexes出现在master数据库和每个用户自定义的数据库中, 它对每个索引和没有聚簇索引的每个表含有一行记录,它还对包括文本/图像数据的每个表含有一行记录。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材4. Sysusers表系统表sysusers出现在master数据库和每个用户自定义的数据库中,它对整个数据库中的每个Windows NT用户、Windows NT用户组、SQL Server 用户或者SQL Server 角色含有一行记录。5. Sysdatabases表系统表sysdatabases对SQL Server 系统上的每个系统数据库和用户自定义的数据库含有一行记录,它只出现在master数 据库中。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材6. Sysdepends表系统表Sysdepends对表、视图和存储过程之间的每个依赖关系含有一行记录,它出现在master数据库和每个用户自定义的数据库中。7. Sysconstraints表系统表sysconstraints对使用CREATE TABLE或者ALTER TABLE语句为数据库对象定义的每个完整性约束含有一行记录,它出现在master数据库和每个用户自定义的数据库中。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.3 SQL Server 工具和实用程序 1.3.1 企业管理器1.3.2 服务管理器1.3.3 查询分析器1.3.4 分布式事务处理协调器1.3.5 性能监视器1.3.6 导入和导出数据1.3.7 SQL Server 分析器1.3.8 服务器网络实用工具1.3.9 客户端网络实用工具1.3.10 联机帮助文档 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.3.1 企业管理器企业管理器是基于一种新的被称为微软管理控制台(Microsoft Management Console)的公共服务器管理环境,它是SQL Server中最重要的一个管理工具。企业管理器不仅能够配置系统环境和管理SQL Server,而且由于它能够以层叠列表的形式来显示所有的SQL Server对象,因而所有SQL Server对象的建立与管理都可以通过它来完成。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材利用企业管理器可以完成的操作有 管理SQL Server 服务器;建立与管理数据库;建立与管理表、视图、存储过程、触发程序、角色、规则、默认值等数据库对象,以及用户定义的数据类型;备份数据库和事务日志、恢复数据库;复制数据库;设置任务调度;设置警报;提供跨服务器的拖放控制操作;管理用户帐户;建立Transact-SQL命令语句以及管理和控制SQL Mail。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材 图1-20 SQL Server 企业管理器(Enterprise Manager)界面 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.3.2 服务管理器(Service Manager) SQL Server 服务管理器是在服务器端实际工作时最有用的实用程序,其界面如图1-21所示。服务管理器用来启动、暂停、继续和停止数据库服务器的实时服务,其提供的服务包括:SQL Server、SQL Server Agent、MSDTC(Microsoft Distributed Transaction Coordinator,微软分布式事务协调器)。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材 图1-21 SQL Server 服务管理器(Service Manager)界面 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.3.3 查询分析器(Query Analyzer) SQL Server 2000新的图形化查询分析器用于输入和执行Transaction-SQL语句,并且迅速查看这些语句的结果,以分析和处理数据库中的数据。这是一个非常实用的工具,对掌握SQL语言,深入理解SQL Server的管理工作有很大帮助。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.3.4 分布式事务处理协调器(Distributed Transaction Coordinator 用于提供和管理不同服务器之间的分布式事务处理,这些服务器必须是基于Windows NT或Windows 9x/2000系列操作系统的服务器。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.3.5 性能监视器(Performance Monitor) 它将Windows NT操作系统的性能监视器和SQL Server集成起来,使用它可以查看和统计SQL Server系统的运行情况,查找影响系统性能的主要因素,从而为改进和优化系统、提高系统性能提供依据。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.3.6 导入和导出数据(Imput and Export Data) 导入和导出数据采用DTC 导入/导出向导来完成。此向导包含了所有的DTC(Data Transformation Services)工具,提供了在OLE DB数据源之间复制数据的最简捷的方法。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.3.7 SQL Server 分析器(Profiler)是一个图形化的管理工具,用于监督、记录和检查SQL Server 数据库的使用情况。对系统管理员来说,它是一个连续实时地捕获用户活动情况的间谍。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.3.8 服务器网络实用工具(Server Network Utility)用来配置服务器端网络连接和设置相关参数等。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.3.9 客户端网络实用工具(Client Network Utility) 用来配置客户端的网络连接、管理和测定客户端的网络库等。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1.3.10 联机帮助文档(Books Online) SQL Server 2000提供了大量的联机文档,它具有索引和全文搜索能力,可根据关键词来快速查找用户所需信息。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材第2章 Transact-SQL语言 2.1 数据定义语言(DDL) 2.2 数据操纵语言(DML) 2.3 数据控制语言(DCL) 2.4 系统存储过程 2.5 其它语言元素 上 一 章 返 回 目 录 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材Transact-SQL语言主要组成部分 数据定义语言(DDL,Data Definition Language)数据操纵语言(DML,Data Manipularion Language)数据控制语言(DCL,Data Control Language)系统存储过程(System Stored Procedure)一些附加的语言元素 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2.1 数据定义语言(DDL)数据定义语言是指用来定义和管理数据库以及数据库中的各种对象的语句,这些语句包括CREATE、ALTER和DROP等语句。在SQL Server 2000中,数据库对象包括表、视图、触发器、存储过程、规则、缺省、用户自定义的数据类型等。这些对象的创建、修改和删除等都可以通过使用CREATE、ALTER、DROP等语句来完成。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材程序清单2-1:创建数据库表的一个例子 CREATE TABLE publishers( pub_id char(4) NOT NULL CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED CHECK (pub_id IN (1389, 0736, 0877, 1622, 1756) OR pub_id LIKE 990-90-9), pub_name varchar(40) NULL, city varchar(20) NULL, state char(2) NULL, country varchar(30) NULL DEFAULT(USA) 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材程序清单2-2:修改视图的一个例子 USE pubsGOALTER VIEW yourviewASSELECT title, mycount= ROWCOUNT, ytd_sales FROM titles WHERE type = mod_cookGOSELECT * FROM yourviewGO 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材程序清单2-3:删除触发器的一个例子 /*下面的例子将删除触发器employee_insupd。*/USE pubsIF EXISTS (SELECT name FROM sysobjects WHERE name = employee_insupd AND type = TR) DROP TRIGGER employee_insupdGO 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2.2 数据操纵语言(DML) 数据操纵语言是指用来查询、添加、修改和删除数据库中数据的语句,这些语句包括SELECT、INSERT、UPDATE、DELETE等。在默认情况下,只有sysadmin、dbcreator、db_owner或db_datawriter等角色的成员才有权利执行数据操纵语言。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1、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 clauseFOR BROWSE 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材几种常用语句的用法SELECT子句用于指定所选择的要查询的特定表中的列,它可以是星号(*)、表达式、列表、变量等。INTO子句用于指定所要生成的新表的名称。FROM子句用于指定要查询的表或者视图,最多可以指定16个表或者视图,用逗号相互隔开。WHERE子句用来限定查询的范围和条件。 GROUP BY子句是分组查询子句。HAVING子句用于指定分组子句的条件。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材GROUP BY子句、HAVING子句和集合函数一起可以实现对每个组生成一行和一个汇总值。ORDER BY子句可以根据一个列或者多个列来排序查询结果,在该子句中,既可以使用列名,也可以使用相对列号。ASC表示升序排列,DESC表示降序排列。COMPUTE子句使用集合函数在查询的结果集中生成汇总行。COMPUTE BY子句用于增加各列汇总行。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材 SELECT子句的语法形式如下所示:SELECT ALL | DISTINCT TOP n PERCENT WITH TIES := * | table_name | view_name | table_alias .* | column_name | expression | IDENTITYCOL | ROWGUIDCOL AS column_alias | column_alias = expression ,.n 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材程序清单2-4:显示居住在加利福尼亚州且姓名不为 McBadden 的作者列。 USE pubsSELECT au_fname, au_lname, phone AS TelephoneFROM authorsWHERE state = CA and au_lname McBaddenORDER BY au_lname ASC, au_fname ASC 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材程序清单2-5:使用两个相关子查询查找作者姓名,这些作者至少参与过一本受欢迎的计算机书籍的创作。USE pubsSELECT au_lname, au_fnameFROM authorsWHERE au_id IN (SELECT au_id FROM titleauthor WHERE title_id IN (SELECT title_id FROM titlesWHERE type = popular_comp) 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材程序清单2-6:显示含有本年度截止到现在的当前销售额的行,然后按type以递减顺序计算书籍的平均价格和预付款总额。 USE pubsSELECT CAST(title AS char(20) AS title, type, price, advanceFROM titlesWHERE ytd_sales IS NOT NULLORDER BY type DESCCOMPUTE AVG(price), SUM(advance) BY typeCOMPUTE SUM(price), SUM(advance) 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材程序清单2-7:先删除表T1,然后又创建一个带有四个列的表T1。最后利用INSERT 语句插入一些数据行,这些行只有部分列包含值。 IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = T1) DROP TABLE T1GOCREATE TABLE T1 ( column_1 int identity, column_2 varchar(30) CONSTRAINT default_name DEFAULT (column default), 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材column_3 int NULL, column_4 varchar(40)INSERT INTO T1 (column_4) VALUES (Explicit value)INSERT INTO T1 (column_2,column_4) VALUES (Explicit value, Explicit value)INSERT INTO T1 (column_2,column_3,column_4) VALUES (Explicit value,-44,Explicit value)SELECT * FROM T1 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材程序清单2-8:一个简单的修改语句。 UPDATE publishersSET city = Atlanta, state = GA 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材程序清单2-9:一个带有WHERE条件的修改语句。 UPDATE authors SET state = PC, city = Bay City WHERE state = CA AND city = Oakland 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材程序清单2-10:通过 UPDATE 语句使用来自另一个表的信息,其修改表 titles 中的 ytd_sales 列,以反映表 sales 中的最新销售记录。 UPDATE titles SET ytd_sales = titles.ytd_sales + sales.qty FROM titles, sales WHERE titles.title_id = sales.title_id AND sales.ord_date = (SELECT MAX(sales.ord_date) FROM sales) 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2.3 数据控制语言(DCL)数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1、GRANT语句 GRANT语句是授权语句,它可以把语句权限或者对象权限授予给其他用户和角色。授予语句权限的语法形式为:GRANT ALL | statement,.n TO security_account ,.n 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材授予对象权限的语法形式为: GRANT ALL PRIVILEGES | permission ,.n ( column ,.n ) ON table | view | ON table | view ( column ,.n ) | ON stored_procedure | extended_procedure | ON user_defined_function TO security_account ,.n WITH GRANT OPTION AS group | role 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2、DENY语句 DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。否定语句权限的语法形式为:DENY ALL | statement ,.n TO security_account ,.n 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材否定对象权限的语法形式为: DENY ALL PRIVILEGES | permission ,.n ( column ,.n ) ON table | view | ON table | view ( column ,.n ) | ON stored_procedure | extended_procedure | ON user_defined_function TO security_account ,.n CASCADE 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材3、REVOKE语句 REVOKE语句是与GRANT语句相反的语句,它能够将以前在当前数据库内的用户或者角色上授予或拒绝的权限删除,但是该语句并不影响用户或者角色从其他角色中作为成员继承过来的权限。收回语句权限的语法形式为:REVOKE ALL | statement ,.n FROM security_account ,.n 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材收回对象权限的语法形式为: REVOKE GRANT OPTION FOR ALL PRIVILEGES | permission ,.n ( column ,.n ) ON table | view | ON table | view ( column ,.n ) | ON stored_procedure | extended_procedure | ON user_defined_function TO | FROM security_account ,.n CASCADE AS group | role 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2.4 系统存储过程系统存储过程是SQL Server系统创建的存储过程,它的目的在于能够方便地从系统表中查询信息,或者完成与更新数据库表相关的管理任务或其它的系统管理任务。系统存储过程可以在任意一个数据库中执行。系统存储过程创建并存放于系统数据库master中,并且名称以sp_或者xp_开头。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材系统存储过程的部分示例如下: sp_addtype:用于定义一个用户定义数据类型。sp_configure:用于管理服务器配置选项设置。xp_sendmail:用于发送电子邮件或寻呼信息。sp_stored_procedures:用于返回当前数据库中的存储过程的清单。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材sp_help:用于显示参数清单和其数据类型。sp_depends:用于显示存储过程依据的对象或者依据存储过程的对象。sp_helptext:用于显示存储过程的定义文本。sp_rename:用于修改当前数据库中用户对象的名称。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2.5 其它语言元素 2.5.1 注释 2.5.2 变量 2.5.3 运算符 2.5.4 函数 2.5.5 流程控制语句 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2.5.1 注释 注释是程序代码中不执行的文本字符串(也称为注解)。在SQL Server中,可以使用两种类型的注释字符:一种是ANSI标准的注释符“-”,它用于单行注释;另一种是与C语言相同的程序注释符号,即“/* */”。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2.5.2 变量变量是一种语言中必不可少的组成部分。Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1. 局部变量局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。局部变量可以作为计数器来计算循环执行的次数,或是控制循环执行的次数。另外,利用局部变量还可以保存数据值,以供控制流语句测试以及保存由存储过程返回的数据值等。局部变量被引用时要在其名称前加上标志“”,而且必须先用 DECLARE命令定义后才可以使用。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2. 全局变量 全局变量是SQL Server系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可以随时调用。全局变量通常存储一些SQL Server的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材使用全局变量时应该注意以下几点: 全局变量不是由用户的程序定义的,它们是在服务器级定义的。用户只能使用预先定义的全局变量。引用全局变量时,必须以标记符“”开头。局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2.5.3 运算符 运算符是一些符号,它们能够用来执行算术运算、字符串连接、赋值以及在字段、常量和变量之间进行比较。在SQL Server 2000中,运算符主要有以下六大类:算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符以及字符串串联运算符。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材1算术运算符算术运算符可以在两个表达式上执行数学运算,这两个表达式可以是数字数据类型分类的任何数据类型。算术运算符包括加(+)、减()、乘(*)、除(/)和取模(%)。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2赋值运算符Transact-SQL 中只有一个赋值运算符,即等号(=)。赋值运算符使我们能够将数据值指派给特定的对象。另外,还可以使用赋值运算符在列标题和为列定义值的表达式之间建立关系。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材3位运算符位运算符使我们能够在整型数据或者二进制数据(image 数据类型除外)之间执行位操作。此外,在位运算符左右两侧的操作数不能同时是二进制数据。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材表2-1 位运算符 运 算 符 含 义 number parameterdata_type VARYING=defaultOUTPUT,.n WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION FORREPLICATION AS sql_statement .n 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材用CREATE PROCEDURE创建存储过程的语法参数的意义如下: procedure_name:用于指定要创建的存储过程的名称。 number:该参数是可选的整数,它用来对同名的存储过程分组,以便用一条 DROP PROCEDURE 语句即可将同组的过程一起除去。 parameter:过程中的参数。在 CREATE PROCEDURE 语句中可以声明一个或多个参数。 data_type:用于指定参数的数据类型。 VARYING:用于指定作为输出OUTPUT参数支持的结果集。 Default:用于指定参数的默认值。 OUTPUT:表明该参数是一个返回参数。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材RECOMPILE:表明 SQL Server 不会保存该存储过程的执行计划 。ENCRYPTION :表示 SQL Server 加密了 syscomments 表,该表的text字段是包含 CREATE PROCEDURE 语句的存储过程文本。 FOR REPLICATION:用于指定不能在订阅服务器上执行为复制创建的存储过程。 AS:用于指定该存储过程要执行的操作。sql_statement:是存储过程中要包含的任意数目和 类型的 Transact-SQL 语句。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材5.5.2 执行存储过程 直接执行存储过程可以使用EXECUTE命令来执行,其语法形式如下:EXECUTE return_status= procedure_name;number|procedure_name_var parameter=value|variableOUTPUT|DEFAULT ,.n WITH RECOMPILE 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材例子5-27: 使用 EXECUTE 命令传递单个参数,它执行 showind 存储过程,以 titles 为参数值。showind 存储过程需要参数 (tabname),它是一个表的名称。其程序清单如下:EXEC showind titles当然,在执行过程中变量可以显式命名:EXEC showind tabname = titles如果这是 isql 脚本或批处理中第一个语句,则 EXEC 语句可以省略: showind titles或者showind tabname = titles 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材5.5.3 查看和修改存储过程 查看存储过程 存储过程被创建之后,它的名字就存储在系统表sysobjects中,它的源代码存放在系统表syscomments中。可以使用使用企业管理器或系统存储过程来查看用户创建的存储过程。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材(1)使用企业管理器查看用户创建的存储过程 在企业管理器中,打开指定的服务器和数据库项,选择要创建存储过程的数据库,单击存储过程文件夹,此时在右边的页框中显示该数据库的所有存储过程。用右键单击要查看的存储过程,从弹出的快捷菜单中选择属性选项,此时便可以看到存储过程的源代码。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材(2)使用系统存储过程来查看用户创建的存储过程 可供使用的系统存储过程及其语法形式如下:sp_help:用于显示存储过程的参数及其数据类型sp_help objname= name参数name为要查看的存储过程的名称。 sp_helptext:用于显示存储过程的源代码 sp_helptext objname= name参数name为要查看的存储过程的名称。sp_depends:用于显示和存储过程相关的数据库对象 sp_depends objname=object参数object为要查看依赖关系的存储过程的名称。sp_stored_procedures:用于返回当前数据库中的存储过程列表 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2. 修改存储过程存储过程可以根据用户的要求或者基表定义的改变而改变。使用ALTER PROCEDURE语句可以更改先前通过执行 CREATE PROCEDURE 语句创建的过程,但不会更改权限,也不影响相关的存储过程或触发器。其语法形式如下:ALTERPROCEDUREprocedure_name;number parameterdata_type VARYING=defaultOUTPUT,.n WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTIONFORREPLICATION AS sql_statement .n 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材例子5-29: 创建了一个名为 Oakland_authors 的过程,默认情况下,该过程包含所有来自加利福尼亚州奥克兰市的作者。随后授予了权限。然后,当该过程需更改为能够检索所有来自加利福尼亚州的作者时,用 ALTER PROCEDURE 重新定义了该存储过程。其程序清单如下: 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材5.5.4 重命名和删除存储过程 1. 重命名存储过程修改存储过程的名称可以使用系统存储过程sp_rename,其语法形式如下: sp_rename 原存储过程名称,新存储过程名称另外,通过企业管理器也可以修改存储过程的名称。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材2. 删除存储过程删除存储过程可以使用DROP命令,DROP命令可以将一个或者多个存储过程或者存储过程组从当前数据库中删除,其语法形式如下:drop procedure procedure ,n当然,利用企业管理器也可以很方便地删除存储过程。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材5.6 触发器 5.6.1 创建触发器 5.6.2 查看、修改和删除触发器 5.6.3 触发器的应用 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材触发器触发器是一种特殊类型的存储过程,它不同于前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被直接调用。触发器是一个功能强大的工具,它使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以用于 SQL Server 约束、默认值和规则的完整性检查。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材 触发器主要优点如下:v触发器是自动的:当对表中的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。 v触发器可以通过数据库中的相关表进行层叠更改。 v触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材5.6.1 创建触发器 创建触发器应该考虑以下几个问题:CREATE TRIGGER 语句必须是批处理中的第一个语句。创建触发器的权限默认分配给表的所有者,且不能将该权限转给其他用户。 触发器为数据库对象,其名称必须遵循标识符的命名规则。 虽然触发器可以引用当前数据库以外的对象,但只能在当前数据库中创建触发器。 虽然不能在临时表或系统表上创建触发器,但是触发器可以引用临时表。 上 一 页 下 一 页 返 回 本 章 首 页 第1章 SQL Server 关系数据库简介SQL Server 2000数据库简明教材在含有用 DELETE 或 UPD
展开阅读全文