第7章 SQL Server 2000高级应用
第七章 SQL Server 2000高级应用
练习,在SC(SNo,CNo,Score)表中查询S1学生 的平均成绩,如果大于或等于80分则输出 ‚获得奖学金‛,否则输出‚没有获得‛ If (select avg(score) from sc where sno='s1')>=80 print '获得奖学金' else print '没有获得'
WHILE…BREAK…CONTINUE语句 格式: WHILE 条件 [BEGIN] 循环体 [BREAK] [CONTINUE] [END] BREAK语句用于退出本层循环。 CONTINUE语句,结束本次循环,跳转到下 一次循环条件的判断。
练习,使用T-SQL求10的阶乘 declare @i int, @mul int set @i=1 set @mul=1 while @i<=10 begin set @mul=@mul*@i set @i=@i+1 end select @mul
返回表达式的绝对值 测试参数的正负号,返回0、1或-1 返回值为π,即3.1415926535897936 返回0到1之间的随机浮点数
1. ROUND ( 数字 , 小数位数 [ ,操作类型 ] ) 例,查询所有学生的学号sno和成绩score,将 成绩小数部分四舍五入显示 select sno, round(score, 0) from sc 2. RAND ( [种子值] ) RAND( ) :系统自行选择种子值 如果用同一种子值多次调用 RAND,它将返 回相同的生成值 例,生成并输出0-1随机数的值 declare @i float set @i=3 select rand(@i)
使用SQL SERVER 2000联机帮助
企业管理器
第7章 SQL Server 2000管理与应用开发教程
3.删除文件
在CREATE DATABASE语句中,REMOVE FILE从数据库系统表中删除文件 描述并删除物理文件。只有在文件为空时才能删除。 【例7.5】要将hrdb4从HrSystem2数据库中删除,可以使用以下命令: ALTER DATABASE HrSystem2 REMOVE FILE hrdb4 GO 运行结果显示:
SQL Server 2000管理及
应用开发教程
授课教师: 职务:
第7章
课程描述
常用数据定义语言(DDL)来自在第3章中,已经介绍了 SQL Server数据库的创建 和维护。但是这些数据库 操作都是在SQL Server企 业管理器中手工进行的。 这种操作方式非常简单直 观,便于学习和掌握。但 是,它不能将工作的过程 保存下来,每次操作都需 要重复进行,操作量大的 时候不易使用。
检查“HrSystem2属性”
2.添加日志文件
在ALTER DATABASE语句中,ADD LOG FILE子句指定要将日志文件添加到指定的 数据库。 【例7.4】要在数据库HrSystem2中添加一个日志文件hrdblog3,可以使用以下命令 : ALTER DATABASE HrSystem2 ADD LOG FILE ( NAME = hrdblog3, FILENAME = 'c:\program files\microsoft sql server\mssql\data\hrdblog3.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) GO 运行结果显示: 以 100.00 MB 为单位在磁盘 'hrdblog3' 上扩展数据库。
【例7.9】
SQLSERVER2000教程
SQLSERVER2000教程SQL Server 2000是微软公司开发的关系型数据库管理系统(RDBMS),是SQL Server系列的一部分。
它提供了强大的数据管理和处理功能,可以用于构建和管理大型数据库系统。
SQL Server 2000教程将引导您了解SQL Server 2000的基本概念和功能,以及如何使用SQL Server 2000来管理和操作数据。
以下是一个简单的SQL Server 2000教程。
第一部分:入门1. 介绍SQL Server 2000:讲解SQL Server 2000的基本概念,包括数据库和表的概念。
2. 安装SQL Server 2000:介绍如何安装SQL Server 2000并配置数据库服务器。
3.创建数据库:讲解如何创建新的数据库以及添加表。
第二部分:基本操作1.创建表:介绍如何创建新的表,包括定义列和设置约束。
2.插入数据:讲解如何向表中插入数据。
3.查询数据:介绍如何使用SELECT语句从表中检索数据。
4.更新数据:讲解如何使用UPDATE语句更新现有数据。
5.删除数据:介绍如何使用DELETE语句删除现有数据。
第三部分:高级功能1.查询语句:讲解如何使用聚合函数、子查询和连接来进行复杂的查询。
2.索引:介绍如何创建索引以提高查询性能。
3.事务:讲解如何使用事务来确保数据的完整性和一致性。
4.触发器:介绍如何创建触发器以响应数据库中的事件。
5.存储过程:讲解如何创建和使用存储过程来执行常用的数据库操作。
第四部分:管理和维护1.用户管理:介绍如何创建和管理用户以及设置用户权限。
2.备份和恢复:讲解如何备份和恢复数据库以及如何进行数据库恢复。
3.性能优化:介绍如何识别和解决数据库性能问题。
4. 跨服务器操作:讲解如何在多个SQL Server 2000实例之间共享数据。
5. 定时任务:介绍如何使用作业和调度器来定期执行一些SQLServer 2000任务。
《SQL Server 2000》网络课程同步练习与模拟试题
同步练习题第1章数据库基础知识一、单项选择题1. 通常所说的数据库系统(DBS)、数据库管理系统(DBMS)、和数据库(DB)三者之间的关系是A. DBMS包含DB和DBSB. DB包含DBS和DBMSC. DBS包含DB和DBMSD.三者无关答案:A2.数据是信息的载体,信息是数据的A. 符号化表示B. 载体C. 内涵D. 抽象答案:C3. 下列说法不正确的是A. 数据库避免了一切数据重复B. 数据库减少了数据冗余C. 数据库数据可为经DBA认可的用户共享D. 控制冗余可确保数据的一致性答案:A4.在数据库中,产生数据不一致的根本原因是A. 没有严格保护数据B. 数据存储量太大C. 数据间联系弱D. 数据冗余答案:D5.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为A. 数据定义功能B. 数据管理功能C. 数据操纵功能D. 数据控制功能答案:C6.E-R模型是数据库设计的工具之一,它一般适用于建立数据库的A. 概念模型B. 结构模型C. 物理模型D. 逻辑模型答案:A7. 当实体中有多个属性可作为键而选定其中一个时,称为该实体的A. 外部键B. 候选键C. 主键D. 主属性答案:C8. 如某属性虽非该实体主键,却是另一实体的主键,称此属性为A. 外部键B. 候选键C. 主键D. 主属性答案:A9.自然连接是构成新关系的有效方法。
一般情况下,当对关系R和S使用自然联接时,要求R和S含有一个或多个共有的A. 元组B.行C. 记录D.属性答案:D10.关系模型中的关系模式至少是A.1NF B.2NFC.3NF D.BCNF答案:A11.候选关键字中的属性称为A.非主属性B.主属性C.复合属性D.关键属性答案:B12.关系模式中各级模式之间的关系为A.3NF⊂2NF⊂lNF B.3NF⊂lNF⊂2NFC.1NF⊂2NF⊂3NF D.2NF⊂lNF⊂3NF答案:A13. 数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作的是A. 建立库结构B.扩充功能C. 加载数据D.系统调试答案:B14.从E-R模型向关系模型转换,一个M:N的联系转换成关系模式时,该关系模式的键是A. M端实体的键B. N端实体的键C. M端实体键与N端实体键组合D. 重新选取其他属性答案:C15.数据库逻辑设计的主要任务是A. 建立E-R图和说明书B.创建数据库模式C. 建立数据流图D. 把数据送入数据库答案:B二、填空题1.要满足基本应用,一个数据库系统通常应提供给用户使用的基本语言有和。
SQLSERVER2000数据库及应用第7章 Transact-SQL语言
7.5.2 字符串函数
字符串函数可以对二进制数据、字符串
和表达式执行不同的运算,可以在 SELECT语句的SELECT和WHERE子句 及表达式中使用字符串函数。
7.5.2 字符串函数
例7-9 使用RTRIM函数删除字符型字段中的尾
部空格。 程序清单如下: USE BOOKS GO ---使用字符串函数RTRIM去掉尾部空格 SELECT COL_LENGTH('图书基本信息表', '书 名') AS '书名字段的长度', 书名, DATALENGTH(RTRIM(书名)) AS '书名字段的实际数据长度' FROM 图书基本信息表
7.4.7 运算符的优先级
运算符的优先等级从高到低如下所示:
括号:();
乘、除、求模运算符:*,/,%; 加减运算符:+,-;
比较运算符:=,>,<,>=,<=,
<>,!=,!>,!<; 位运算符:^,&,|; 逻辑运算符:NOT; 逻辑运算符:AND; 逻辑运算符:OR。 如果优先级相同,则按照从左到右的顺序运算。
1.局部变量的定义
局部变量使用DECLARE命令进行定义,
在定义和引用时要在其名称前加上标志 “@”。定义局部变量的语法形式如下: DECLARE {@local_variable data_type} […n]
1.局部变量的定义
各个参数的含义如下: @local_variable:用于指定局部变量的名称,
3.局部变量使用举例
SQLServer2000使用指南资料
1. SQL Server 2000使用指南1.1 SQL Server 2000简介SQL Server是微软公司开发的企业级关系型数据库管理系统,其目前的最高级版本是SQL Server 2000。
该数据库管理系统通过对高端硬件平台以及最新网络和存储技术的支持,为最大的Web站点和企业级的应用提供了可扩展性和高可靠性。
SQL Server 2000可以将数据库连接到Internet,并通过Web浏览器显示数据操作,因此它是一个真正的客户机/服务器结构的管理系统。
它具有完全的Web功能,支持扩展标记语言(XML)并且拥有一个新的、集成的数据挖掘引擎,使用户可以快速创建下一代的可扩展电子商务和数据仓库解决方案。
SQL Server 2000还可与Microsoft的其他产品以及第三方产品方便地实现无缝操作,具有良好的兼容性,因此它深得用户青睐,成为数据库产品中的杰出代表。
1.基于图形的管理工具作为一个SQL Server的初学者,图形化管理工具使得在SQL Server中管理服务器变得非常容易。
主要图形用户接口工具是SQL Enterprise Manager。
这个工具利用了微软管理控制台(MMC)的功能。
MMC是微软发布的用来从一个位置管理所有运行于Windows NT的服务的工具。
它可利用单个应用程序管理Windows NT、Internet Information Server 、SQL Server和其他产品。
2.集中式的管理不管SQL Server服务器相距多远,都可以在中心位置使用SQL Enterprise Manager 来管理服务器。
例如,有十台服务器,相距数百里,但是能使用一台计算机来管理所有的服务器。
这将大大降低维护多台服务器的费用,因为这只需一名管理员来管理所有服务器。
3.支持多客户应用程序SQL Server提供了一组标准应用程序,可以用它们来管理服务器和修改数据。
SQL Server还提供了一组标准,例如 Open Database Connectivity(开放式数据库连接,ODBC)。
SQLServe讲义r2000第7章
操作员获得通知后及时排除故障。如此在任
务、操作员、警报三者之间既相互独立,又 相互联系、相互补充,构成了自动完成某些
上一页
任务的有机整体。
下一页
返回首页
第7章 SQL Server代理服务
7.1 SQL Server代理服务配置
SQL Server代理服务配置步骤 :
1. 打开企业管理器,展开指定的服务 器并打开管理文件夹,启动SQL Server 代 理。用右键单击SQL Server 代理图标,从 快捷菜单中选择properties(属性)选项, 则出现SQL Server 代理属性对话框,选择 常规页框,如图7-1所示。
上一页 下一页 返回首页
第7章 SQL Server代理服务
7.3 作业管理
一般来说,如果要创建作业,必须执行以 下三个步骤:
定义作业步。
如果该作业不是用户指定执行,创建作业
执行的调度时间。 通知操作员作业的状态。
上一页
下一页
返回首页
第7章 SQL Server代理服务
7.3.1 作业步定义
一个作业可以含有一步或多步,有不同定义作 业的方法:
置作业执行状态通知,用右键单击指定的作业,
从快捷菜单中选择properties选项,出现作业属性
对话框,如图7-8所示,然后选择通知页框,如图
7-13所示 。
上一页
下一页
返回首页
第7章 SQL Server代理服务
上一页
图7-13 新建作业属性—通知页框
下一页
返回首页
第7章 SQL Server代理服务
类型下拉框含有的选项及含义如下:
ActiveX脚本:运行一个脚本语言程序。
操作系统命令:执行.exe、.cmd、.bat文件。
SQL Server2000实用教程_第7章
7.2 创建视图
7.2.1 使用企业管理器创建视图 7.2.2 使用Transact-SQL语句创建视图 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 } 本章首页 7.2.3 使用向导创建视图
7.3
查看视图信息
7.3.1 使用企业管理器查看视图信息 7.3.2 使用系统存储过程查看视图信息 sp_help 数据库对象名称 sp_helptext 视图(触发器、存储过程) sp_depends 数据库对象名称
本章首页
7.4
修改和重命名视图
7.4.1 修改视图 1.使用企业管理器修改视图 2.使用Transact-SQL语句修改视图 ALTER VIEW view_name [(column[,...n])] [WITH ENCRYPTION] AS select_statement [ Biblioteka ITH CHECK OPTION ]
7.5
使用视图
7.5.1 插入数据记录 1.使用企业管理器在视图中插入记录 2.使用Transact-SQL语句通过视图插入 记录 7.5.2 更新数据记录 1.使用企业管理器在视图中更新记录 2.使用Transact-SQL语句通过视图更新 记录
sql server实验指导第四版
sql server实验指导第四版SQL Server实验指导第四版第一章:SQL Server的介绍SQL Server是由Microsoft开发的一种关系型数据库管理系统(RDBMS)。
它具有强大的数据管理和分析功能,被广泛应用于企业级应用程序和数据仓库中。
本章将介绍SQL Server的概述、特点以及应用领域,帮助读者了解SQL Server的基本知识。
第二章:SQL Server的安装和配置在使用SQL Server之前,需要先进行安装和配置。
本章将详细介绍SQL Server的安装步骤和配置选项,包括选择适当的版本、设置数据库引擎和其他组件,以及配置网络和安全设置等。
读者将学会如何正确地安装和配置SQL Server。
第三章:SQL Server的基本操作本章将介绍SQL Server的基本操作,包括创建数据库、创建表、插入数据、更新数据和删除数据等。
通过实际操作,读者将学会如何使用SQL Server进行数据库的基本管理和数据操作。
第四章:SQL Server的高级操作本章将深入介绍SQL Server的高级操作,包括查询数据、排序数据、过滤数据、连接表和子查询等。
读者将学会如何使用SQL语句来实现复杂的数据查询和分析。
第五章:SQL Server的性能优化本章将介绍SQL Server的性能优化技术,包括索引优化、查询优化、存储过程优化和服务器配置优化等。
通过掌握这些技术,读者将能够提高SQL Server的性能和响应速度。
第六章:SQL Server的备份和恢复在数据库管理中,备份和恢复是非常重要的任务。
本章将详细介绍SQL Server的备份和恢复技术,包括完整备份、差异备份、事务日志备份和数据库恢复等。
读者将学会如何使用SQL Server来保护数据库的安全和可靠性。
第七章:SQL Server的高可用性在企业级应用中,数据库的高可用性是至关重要的。
本章将介绍SQL Server的高可用性技术,包括故障转移集群、数据库镜像、数据库复制和Always On可用性组等。
第7章 sql server2000数据库管理系统
此外,SQL Server 2000还有桌面引擎(Desktop Engine) 和Windows CE版,用户可以根据实际情况选择所要安装的 SQL Server 2000版本。 SQL Server 2000不同的版本,对操作系统的要求不完全相 同。企业版必须运行于安装Windows 2000 Advanced Server以及更高版本的操作系统下;标准版必须运行于安 装Windows 2000 Server以及更高版本的操作系统下;个人 版可在多种操作系统下运行,如可运行于Windows XP或 Windows 2000的服务器版或工作站版的操作系统下。
7.3
数据库的创建与管理
数据库的存储结构分为逻辑存储结构和物理存储结构两种。 数据库的逻辑存储结构指数据库由哪些性质的信息组成。SQL Server的数据不只是存储数据,还存储所有与数据处理操作相关的信 息。SQL Server的数据库由表、视图、索引等各种不同的数据库对象 组成,分别用来存储特定信息并支持特定功能,构成数据库的逻辑存 储结构。 数据库的物理存储结构则是讨论数据库文件如何在磁盘上存储。数 据库在磁盘上是以文件为单位存储的,在SQL Server 2000中,数据库 由数据文件和日志文件组成,一个数据库至少应包含一个主数据文件 和一个日志文件。每个文件都有操作系统使用的物理文件名和数据库 管理系统使用的逻辑文件名。 数据文件是SQL Server用于存储用户输入数据库的所有信息和在数 据库中建立的所有对象的文件。这些文件可以按所设臵的格式,根据 需要变大或缩小。 日志文件是SQL Server用来存储数据库事务日志的文件。事务日志 用来维护数据库的一致性并保证对数据库的所有修改要么被完整地执 行,要么被取消。如果服务器在意外事件中被破坏,SQL Server将检 查事务日志来保证用户所有的数据修改都是完整的。
第7章 SQL Server 2000
BOOK),在弹出的菜单中选择“设计表”命令, 这时弹出的设计表窗口与图7-13所示的新建表窗口非 常类似。
(3)在设计表窗口中进行表结构的修改。修改的
内容包括为表添加字段、删除已有字段、修改已有 字段的定义、为字段添加约束等。
(4)修改完成后单击工具栏中的保存按钮,退出
。
返回本节
7.3.3 数据库视图的操作
返回本节
7.3.2 数据表的基本操作
1.系统表和用户表 2.查看表结构
3.查看数据表的数据
4.利用企业管理器创建数据表
5.修改表结构
通常,创建一个表需要注意考虑以下问题:
确定表将包括什么类型的数据。 确定表中需要哪些列,每列的数据类型是什么。 确定哪些列可以接收NULL值。 确定是否使用约束、默认和规则;如果要使用,在
3.修改数据库
修改数据库包括以下的内容:
修
改 已 有 文 件 的 SIZE、MAXSIZE 和 FILEGROWTH。
增加数据/日志文件。 删除数据/日志文件。 增加文件组。 删除文件组。
图7-8 数据库属性对话框
4.删除数据库
注意:删除数据库时一定要特别慎重,因为
在删除数据库后,与此数据库有关联的数据 文件和日志文件及其信息都会被删除。当数 据库处于以下状态时不能被删除:数据库正 在使用;数据库正在被恢复;数据库包含用 于复制的已经出版的对象。
(1)选择要创建视图的数据库BookSys。
(2)展开BookSys数据库,选择“视图”,用鼠标
右键单击,在弹出的菜单中选择“新建视图”命令 ,出现如图7-16所示的新建视图窗口。
(3)用鼠标右键单击“表区”,在弹出菜
单中选择“添加表”命令,则出现“添加表 ”对话框,选择要创建视图的基表或视图, 单击“添加”按钮,将表或视图添加到表区 域 。 本 例 将 BOOK、READER 和 BORROW 三个表全部添加。
Microsoft SQL SERVER 2000使用手册
Microsoft SQL SERVER 2000使用手册在网络环境下进行数据库系统的应用开发,需要选择具体的DBMS。
本章首先介绍当前流行的关系数据库系统Microsoft SQL Server的基本知识,接着以Microsoft SQL Server 2000为背景,介绍数据库系统设计的方法和SQL Server的高级应用技术。
1 SQL Server简介Microsoft SQL Server是高性能、客户/服务器的关系型数据库管理系统RDBMS,能够支持大吞吐量的事务处理,也能在Microsoft Windows 2000 Server网络环境下管理数据的存取以及开发决策支持应用程序。
由于Micriosoft SQL Server是开放式的系统,其他系统可以与它进行完好的交互操作。
1.1 SQL Server 2000的特点(1)对操作系统的要求低SQL Server 2000除了继续支持Windows 2000 Server外,还新增了SQL Server 2000桌面版(Desktop Edition),此版本可以安装在Windows 95/98/2000专业版上,用来建立数据库,这使得SQL Server 2000变得非常通用,可以在任何大小的计算机上运行,包括膝上机、台式机和高档服务器。
(2)管理自动化许多关键性的工作、数据库调整和最佳化处理等都由系统自动完成,减少了人为手工调整。
例如,系统会动态调整内存需求,自动缩减库和增加数据库所占文件的空间大小,自动更新统计数据等等。
(3)新的Enterprise Manager它以MMC(Microsoft Management Console)为基础加以设计,其界面和其他微软服务器产品一致,看上去很像Windows的资源管理器。
(4)简化了SQL Server 2000数据库与Windows文件系统之间的关系,具有更好的可伸缩性在SQL Server 2000中,数据库驻留在操作系统文件上,而不再位于SQL Server的逻辑设备中,取消了以前必须先建立设备(Device),再在设备上建立数据库的观念,现在仅使用CREA TE DA TABASE 语句即可创建数据库及其所有文件,从而简化了数据库设计和管理的工作。
SQL Server高级应用
第七章 SQL Server高级应用 高级应用
7.1.4 读取游标数据
打开游标之后,就可以用游标读取数据了。 打开游标之后,就可以用游标读取数据了。 利用T-SQL读取游标的语法如下: 读取游标的语法如下: 利用 读取游标的语法如下 fetch [ first | prior | next | last]|[absolute t n | relative n] from 游标名 [into 变量名表 变量名表] 语法注释: 语法注释: 关键字声明的游标, (1)使用 )使用scroll关键字声明的游标,具有以下所有的取数功能: 关键字声明的游标 具有以下所有的取数功能: first 取第一行数据 prior 取前一行数据 next 取下一行数据 last 取最后一行数据 absolute <n> 按绝对位置取数据,从游标中取出第 行记录 按绝对位置取数据,从游标中取出第n行记录 relative <n> 按相对位置取数据,读出从游标当前位置向后第行记录。 按相对位置取数据,读出从游标当前位置向后第行记录。 变量名表] 使用into 子句对变量赋值时,变量的数量、类型、顺序必须 子句对变量赋值时,变量的数量、类型、 (2)[into 变量名表 使用 ) 和声明游标时使用的select语句输出的列项一一对应。 语句输出的列项一一对应。 和声明游标时使用的 语句输出的列项一一对应
本章提要
第7章 SQL Server高级应用 章 高级应用
本章通过大量实例介绍SQL语句的高级应用,包 语句的高级应用, 本章通过大量实例介绍 语句的高级应用 括游标、存储过程、触发器、 括游标、存储过程、触发器、事务处理的功能及基本 操作。它们是网络数据库编程的重要内容, 操作。它们是网络数据库编程的重要内容,是开发网 网络数据库编程的重要内容 关键技术。 络数据库应用程序的关键技术 络数据库应用程序的关键技术。
SQL SERVER2000教程
SQL SERVER2000教程第一章第一节简介SQL Server 2000是微软公司开发的采用SQL语言的关系型数据库管理系统,它拥有高弹性与多元化的结构,不仅符合业界的需要,更能与现今的互联网紧密集成,而对Windows CE/98/NT/2000/XP/2003等操作系统的全面支持的优越性得到最终程序开发人员的普遍认可。
SQL Server2000是服务器级的数据库管理系统,不论是客户机/服务器、多层结构,还是Database Web应用程序,SQL Server 2000都起着后端数据库的角色。
可以说,SQL Server 2000是所有数据的汇总与管理中心,是整个应用系统的枢纽。
第二节数据库分类逻辑数据库(1)系统数据库:系统数据库作为SQLSERVER默认安装的一部分而安装,由系统表和存储过程组成。
系统数据库、表以及存储过程共同为您提供了设计、创建、部署和维护世界级SQLSERVER数据库的工具和支持。
a)Master数据库:是追踪所有其它数据库和配置信息的关键数据库。
它控制着用户数据库和SQLSERVER的操作。
Master数据库对你的信息绝对重要,所以你应该总是保留Master数据库的最近备份。
b)Msdb数据库:是SQLSERVERAgent的主要支持。
SQLSERVERAgent负责复制、任务调度、警报、系统操作员信息以及备份信息。
因此,Msdb也是非常重要的,哪怕你不使用SQLSERVERAgent,在Msdb中的备份信息也有助于数据库的恢复。
c)Model数据库:是一个创建新数据库的模板,它包含了应该出现在每个用户数据库中的系统表。
在创建一个数据库时,SQLSERVER会把Model数据库的全部内容复制到新数据库中。
因此,如果你想每次创建数据库时自动地创建某些对象、权限和用户,你就可以把它们放在Model数据库中。
d)Tempdb数据库:保存所有临时表和临时存储过程。
临时表可以被程序员显示的创建。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.2.2 创建存储过程
当创建存储过程时, 当创建存储过程时,需要确定存储过程的三个组成 部分: 部分:
(1)所有的输入参数以及传给调用者的输出参数。 )所有的输入参数以及传给调用者的输出参数。 (2)被执行的针对数据库的操作语句,包括调用其他存储 )被执行的针对数据库的操作语句, 过程的语句。 过程的语句。 (3)返回给调用者的状态值以指明调用是成功还是失败。 )返回给调用者的状态值以指明调用是成功还是失败。
/*Transact-SQL程序的实例 程序的实例*/ 程序的实例 USE Teach /*将教学管理数据库 将教学管理数据库Teach置为当前数据库 将教学管理数据库 置为当前数据库 */ GO DECLARE @AvgScore DECIMAL /*定义变量 定义变量AvgScore */ 定义变量 SET @AvgScore=60 /*给变量 给变量AvgScore赋值初值 赋值初值*/ 给变量 赋值初值 IF(SELECT AVG(Score) FROM SC WHERE SNo='S1')>=@AvgScore --输出结果 输出结果 PRINT '课程平均成绩超过 课程平均成绩超过' 课程平均成绩超过 +CONVERT(VARCHAR(10),@AvgScore) ELSE --输出结果 输出结果 PRINT '课程平均成绩不超过 课程平均成绩不超过' 课程平均成绩不超过 +CONVERT(VARCHAR(10),@AvgScore) --执行批处理 执行批处理 GO
Transact-SQL程序的批处理 程序的批处理
程序内两个“ 在Transact-SQL程序内两个“GO”标记符之间的 程序内两个 ” 代码称为一个“ 代码称为一个“批”。 SQL Server对Transact-SQL程序的编译和执行是 对 程序的编译和执行是 按照“ 为单位来进行的,称为批处理 批处理。 按照“批”为单位来进行的,称为批处理。 一个Transact-SQL程序内可以包含多个“批”。 程序内可以包含多个“ 一个 程序内可以包含多个
[例7-5] 从学生表 中,选取 例 从学生表S中 选取SNo,Sex,如果 , ,如果Sex 则输出“ ” 如果为“ 输出“ ” 为“男”则输出“M”,如果为“女”输出“F”。 SELECT SNo, Sex= CASE Sex WHEN '男' THEN 'M' 男 WHEN '女' THEN 'F' 女 END FROM S
[例7-4] 从S数据表中读取学号为 同学的数据记录,如果 例 数据表中读取学号为S1同学的数据记录 数据表中读取学号为 同学的数据记录, 存在,则输出“存在学号为S1的学生 的学生” 否则输出“ 存在,则输出“存在学号为 的学生”;否则输出“不存 在学号为S1的学生 的学生” 在学号为 的学生”。 USE Teach /*将教学管理数据库 将教学管理数据库Teach置为当前 将教学管理数据库 置为当前 数据库*/ 数据库 GO DECLARE @message VARCHAR(255) /*定义变量 定义变量 message */ IF EXISTS (SELECT * FROM S WHERE SNo='S1') SET @message='存在学号为 的学生 存在学号为S1的学生 存在学号为 的学生' ELSE SET @message='不存在学号为 的学生' 不存在学号为S1的学生 不存在学号为 的学生 PRINT @message GO
[例7-8] 等待 小时 分零 秒后才执行 例 等待1小时 分零3秒后才执行 小时2分零 SELECT语句。 语句。 语句 WAITFOR DELAY '01:02:03' SELECT * FROM S [例7-9] 指定在 指定在11:24:00时间点时开始执行 例 时间点时开始执行 SELECT语句。 语句。 语句 WAITFOR TIME '11:24:00' SELECT * FROM S
7.2 存储过程
7.2.1 存储过程的概念、优点及分类 存储过程的概念、
存储过程是一组为了完成特定功能的SQL语句集 。 语句集 存储过程是一组为了完成特定功能的 存储过程的优点 :
模块化的程序设计 高效率的执行 减少网络流量 可以作为安全机制使用
存储过程的分类: 存储过程的分类:
系统存储过程 用户自定义存储过程 扩展存储过程 xp_cmdshell 'dir *.exe'
标准的注释符“ ” 用于单行注释; (1)ANSI标准的注释符“- -”:用于单行注释; ) 标准的注释符 语言相同的程序注释符, ……*/” (2)与C语言相同的程序注释符,即“/*…… ”,“/*”用 ) 语言相同的程序注释符 …… ” 于注释文字的开头, 于注释文字的开头,“*/”用于注释文字的结尾,可在程序 ”用于注释文字的结尾, 中标识多行文字为注释。 中标识多行文字为注释。
[例7-7] 以下程序计算 ~100之间所有能被 整除的数的个数及总和。 例 以下程序计算1~ 之间所有能被3整除的数的个数及总和 之间所有能被 整除的数的个数及总和。 DECLARE @s SMALLINT,@i SMALLINT,@nums SMALLINT SET @s=0 SET @i=1 SET @nums=0 WHILE (@i<=100) BEGIN IF (@i%3=0) BEGIN SET @s=@s+@i SET @nums=@nums+1 END SET @i=@i+1 END PRINT @s PRINT @nums
用CREATE PROCEDURE命令创建存储过程 命令创建存储过程
CREATE PROCEDURE procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ]
DECLARE @id char(8) SELECT @id='10010001'
[例7-2] 查询学号为“S7”的学生的学号与 例 查询学号为“ ” 姓名,并存储到变量@sno和@sn中。 姓名,并存储到变量 和 中
DECLARE @sno varchar(10) DECLARE @sn varchar(10) SELECT @sno = SNo,@sn = SN FROM s WHERE SNo = 'S7'
[例7-6] 从SC表中查询所有同学选课的成绩情况,凡成绩为空的输出 例 表中查询所有同学选课的成绩情况, 表中查询所有同学选课的成绩情况 未考” 小于60分的输出 不及格” 分的输出“ 分至70分的输出 “未考”、小于 分的输出“不及格”、60分至 分的输出“及格”、 分至 分的输出“及格” 70分至 分的输出“良好”、大于或等于 分的输出“优秀”。 分至90分的输出 分的输出“ 分至 分的输出“良好” 大于或等于90分的输出 优秀” SELECT SNo,CNo, Score= CASE WHEN Score IS NULL THEN '未考 未考' 未考 WHEN Score<60 THEN '不及格 不及格' 不及格 WHEN Score>=60 AND Score<70 THEN '及格 及格' 及格 WHEN Score>=70 AND Score<90 THEN '良好 良好' 良好 WHEN Score>=90 THEN '优秀 优秀' 优秀 END FROM SC
一个Transact-SQL程序与一般的高级语言的语法要素是基本一致的, 程序与一般的高级语言的语法要素是基本一致的, 一个 程序与一般的高级语言的语法要素是基本一致的 主要含有注释 变量与常量、各种运算符、函数与表达式、 注释、 主要含有注释、变量与常量、各种运算符、函数与表达式、流程控制 语句、批处理等 语句、批处理等。
[例7-10] 求1+2+3+…+10的总和。 例 的总和。 … 的总和 DECLARE @s SMALLINT,@i SMALLINT SET @i=1 SET @s=0 BEG: IF (@i<=10) BEGIN SET @s=@s+@i SET @i=@i+1 GOTO BEG END PRINT @s
全局变量
全局变量由系统定义和维护的, 全局变量由系统定义和维护的,只能使用预先说明 及定义的全局变量。 及定义的全局变量。 全局变量对用户而言是只读的, 全局变量对用户而言是只读的,用户无法对它们进 例如: 行修改或管理 。例如:@@DBTS系统时间戳 系统时间戳
注释符
中可以使用两类注释符: 在Transact-SQL中可以使用两类注释符: 中可以使用两类注释符
BEGIN <命令行或程序块 命令行或程序块> 命令行或程序块 END
[例7-3] 从SC数据表中求出学号为 同学的 例 数据表中求出学号为S7同学的 数据表中求出学号为 平均成绩,如果此平均成绩大于或等于60分 平均成绩,如果此平均成绩大于或等于 分, 则输出“ 则输出“Pass!”信息。 ”信息。 IF (SELECT AVG(Score) FROM SC WHERE SNo='S7' GROUP BY SNo)>=60 BEGIN PRINT 'Pass!' END
7.1.3 流程控制命令