8 数据库编程.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《8 数据库编程.ppt》由会员分享,可在线阅读,更多相关《8 数据库编程.ppt(131页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库系统原理数据库系统原理Principles of Database Systems第八章第八章数据库编程数据库编程上一章主要内容上一章主要内容v数据库的设计过程数据库的设计过程需求分析需求分析概念结构设计概念结构设计逻辑结构设计逻辑结构设计物理设计物理设计实施实施运行维护运行维护设计过程中往往还会有设计过程中往往还会有许多反复许多反复。2Principles of Database Systems上一章主要内容上一章主要内容(续续)v数据库各级模式的形成数据库各级模式的形成数据库的各级模式是在设计过程中逐步形成的数据库的各级模式是在设计过程中逐步形成的需求分析阶段综合各用户的应用需求(现
2、实世界的需求)需求分析阶段综合各用户的应用需求(现实世界的需求)概念设计阶段形成独立于机器特点、独立于各个概念设计阶段形成独立于机器特点、独立于各个DBMS产产品的品的概念模式概念模式(信息世界模型),用(信息世界模型),用E-R图来描述。图来描述。在逻辑设计阶段将在逻辑设计阶段将E-R图转换成具体的数据库产品支持的图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库数据模型如关系模型,形成数据库逻辑模式逻辑模式。然后根据用。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(必要的视图(VIEW)形成数据的)形成数
3、据的外模式外模式。在物理设计阶段根据在物理设计阶段根据DBMS特点和处理的需要,进行物理特点和处理的需要,进行物理存储安排,设计索引,形成数据库存储安排,设计索引,形成数据库内模式内模式。3Principles of Database SystemsSQL和和Transact-SQL vSQL语言是关系型数据库的标准语言,而本章所讲语言是关系型数据库的标准语言,而本章所讲的的TransactSQL语言则是一种编程语言,与语言则是一种编程语言,与SQL查查询语言相比,它多了许多编程的成分,比如常量和询语言相比,它多了许多编程的成分,比如常量和变量,系统函数和用户自定义函数,流程控制语句,变量,系
4、统函数和用户自定义函数,流程控制语句,While、For、Case语句等。语句等。vT-SQL语言的基本成分是语言的基本成分是语句语句,由一个或多个语句,由一个或多个语句可以构成一个可以构成一个批处理批处理,由一个或多个批处理可以构,由一个或多个批处理可以构成一个成一个查询脚本查询脚本(以(以sql作为文件扩展名)并保存到作为文件扩展名)并保存到磁盘文件中,供以后需要时使用。磁盘文件中,供以后需要时使用。4Principles of Database SystemsTransact-SQL语言语言vTransact-SQL语言是微软公司在语言是微软公司在MicrosoftSQLServer系统
5、系统中使用的语言,是对中使用的语言,是对SQL语言的一种扩展形式。语言的一种扩展形式。vTransact-SQL语言是一种交互式查询语言,具有功能强大、语言是一种交互式查询语言,具有功能强大、简单易学的特点。该语言既允许用户直接查询存储在数据库简单易学的特点。该语言既允许用户直接查询存储在数据库中的数据,也可以把语句嵌入到某种高级程序设计语言中来中的数据,也可以把语句嵌入到某种高级程序设计语言中来使用使用vTransact-SQL语言有语言有4个特点:个特点:一是一体化的特点,集数据定义语言、数据操纵语言、数据控制语言、一是一体化的特点,集数据定义语言、数据操纵语言、数据控制语言、事务管理语言
6、和附加语言元素为一体。事务管理语言和附加语言元素为一体。二是有两种使用方式,即交互使用方式和嵌入到高级语言中的使用方二是有两种使用方式,即交互使用方式和嵌入到高级语言中的使用方式。式。三是非过程化语言,只需要提出三是非过程化语言,只需要提出“干什么干什么”,不需要指出,不需要指出“如何干如何干”,语句的操作过程由系统自动完成。,语句的操作过程由系统自动完成。四是,类似于人的思维习惯,容易理解和掌握。四是,类似于人的思维习惯,容易理解和掌握。5Principles of Database SystemsTransact-SQLTransact-SQL语言的特点和执行方式语言的特点和执行方式v在在
7、MicrosoftSQLServer2005系统中,根据系统中,根据Transact-SQL语言的功能特点,可以把语言的功能特点,可以把Transact-SQL语言分为语言分为5种类型,即数据定义语言、数据操纵种类型,即数据定义语言、数据操纵语言、数据控制语言、事务管理语言和附加的语言语言、数据控制语言、事务管理语言和附加的语言元素。元素。v在在MicrosoftSQLServer2005系统中,主要使用系统中,主要使用SQLServerManagementStudio工具来执行工具来执行Transact-SQL语言编写的查询语句。除此之外,还语言编写的查询语句。除此之外,还可以使用可以使用s
8、qlcmd实用工具来执行实用工具来执行Transact-SQL语句。语句。6Principles of Database Systems第八章第八章 数据库编程数据库编程v8.1批处理、脚本和注释批处理、脚本和注释v8.2常量和变量常量和变量v8.3系统函数系统函数v8.4流程控制语句流程控制语句v8.5用户自定义函数用户自定义函数v8.6游标及其应用游标及其应用v8.7存储过程存储过程v8.8小结小结7Principles of Database Systems8.1 8.1 批处理、脚本和注释批处理、脚本和注释v8.1.1批处理批处理v8.1.2脚本脚本v8.1.3注释注释8Princip
9、les of Database Systems8.1.1 8.1.1 批处理批处理v批处理就是一个或多个批处理就是一个或多个Transact-SQL语句的集合,语句的集合,用户或应用程序一次将它发送给用户或应用程序一次将它发送给SQLServer,由由SQLServer编译成一个执行单元,此单元称为执行编译成一个执行单元,此单元称为执行计划,执行计划中的语句每次执行一条。计划,执行计划中的语句每次执行一条。9Principles of Database Systems8.1.1 8.1.1 批处理批处理(续续)v一些一些SQLSQL语句不能放在同一个批处理中执行,它们需语句不能放在同一个批处理
10、中执行,它们需要遵循下述规则要遵循下述规则:1.1.大多数大多数CREATE CREATE 命令要在单个批处理中执行,但命令要在单个批处理中执行,但CREATE DATABASECREATE DATABASE、CREATE TABLECREATE TABLE、CREATE INDEX CREATE INDEX 除除外。外。2.2.调用存储过程时,如果它不是批处理中第一个语句,调用存储过程时,如果它不是批处理中第一个语句,则在它前面必须加上则在它前面必须加上EXECUTEEXECUTE。3.3.不能把规则和默认值绑定到用户定义的数据类型上后,不能把规则和默认值绑定到用户定义的数据类型上后,在同一
11、个批处理中使用它们。在同一个批处理中使用它们。4.4.不能在给表字段定义了一个不能在给表字段定义了一个CHECKCHECK约束后,在同一个约束后,在同一个批处理中使用该约束。批处理中使用该约束。5.5.不能在修改表的字段名后,在同一个批处理中引用该不能在修改表的字段名后,在同一个批处理中引用该新字段名。新字段名。10Principles of Database Systems8.1.1 8.1.1 批处理批处理(续续)v建立批处理如同编写建立批处理如同编写SQL语句,区别在于它是多条语句,区别在于它是多条语句同时执行的,用语句同时执行的,用GO语句作为一个批处理的结语句作为一个批处理的结束。束
12、。v例例8-1:利用查询分析器,查询客户购买商品的信息,新建:利用查询分析器,查询客户购买商品的信息,新建客客户订单视图户订单视图。11Principles of Database Systems8.1.1 8.1.1 批处理批处理(续续)createview客户订单视图客户订单视图asselecta.编号编号,a.姓名姓名,a.电话电话,b.货品编码货品编码,b.订货日期订货日期from客户信息客户信息ainnerjoin订单信息订单信息bona.编号编号=b.客户编号客户编号goselect*from客户订单视图客户订单视图Gov 由于由于CREATEVIEW建立视图语句不能和其他使用语句
13、建立视图语句不能和其他使用语句放在同一个批处理中,所以需要放在同一个批处理中,所以需要GO命令将命令将CREATEVIEW语句与其下的语句语句与其下的语句SELECT分成两个批处理。否则分成两个批处理。否则SQLServer将报错。将报错。12Principles of Database Systems8.1.1 8.1.1 批处理批处理(续续)客户信息客户信息客户信息客户信息订单信息订单信息订单信息订单信息13Principles of Database Systems客户订单视图客户订单视图客户订单视图客户订单视图8.1.1 8.1.1 批处理批处理(续续)14Principles of
14、Database Systems8.1.2 8.1.2 脚本脚本v数据库应用过程中,经常需要把编写好的数据库应用过程中,经常需要把编写好的SQL语句(例如创语句(例如创建数据库对象、调试通过的建数据库对象、调试通过的SQL语句集合)保存起来,以便语句集合)保存起来,以便下一次执行同样(或类似)操作时,调用这些语句集合。这下一次执行同样(或类似)操作时,调用这些语句集合。这样可以省去重新样可以省去重新编写调试编写调试SQL语句的麻烦,提高工作效率。语句的麻烦,提高工作效率。这些用于执行某项操作的这些用于执行某项操作的T-SQL语句集合称为脚本。语句集合称为脚本。T-SQL脚本存储为文件,带有脚本
15、存储为文件,带有sql扩展名。扩展名。v使用脚本文件对重复操作或几台计算机之间交换使用脚本文件对重复操作或几台计算机之间交换SQL语语句是非常有用的。句是非常有用的。15Principles of Database Systems8.1.2 8.1.2 脚本脚本(续续)v脚本是批处理的存在方式,将一个或多个批处理组脚本是批处理的存在方式,将一个或多个批处理组织到一起就是一个脚本织到一起就是一个脚本。例如我们在查询分析器中。例如我们在查询分析器中执行的各个实例都可以称为一个脚本。执行的各个实例都可以称为一个脚本。生成脚本有两种方法:生成脚本有两种方法:1.在查询分析器中保存脚本;在查询分析器中保
16、存脚本;2.在企业管理器中创建数据库对象脚本。在企业管理器中创建数据库对象脚本。v脚本可以在查询分析器中执行,也可以在脚本可以在查询分析器中执行,也可以在ISQL或或OSQL实用程序中执行。实用程序中执行。查询分析器是编辑、调查询分析器是编辑、调试和使用脚本的最好环境。试和使用脚本的最好环境。16Principles of Database Systems8.1.3 8.1.3 注释注释v脚脚本本文文件件除除了了含含有有T-SQLT-SQL语句句外外,还包包含含有有对SQLSQL语句句进行行说明明的的注注释。注注释是是不不能能执行行的的文文字字字字符符串串,或或暂时禁用的部分禁用的部分语句。句
17、。v为程程序序加加注注释不不仅能能使使程程序序易易懂懂,更更有有助助于于日日后后的的管理和管理和维护。v注注释通通常常用用于于记录程程序序名名、作作者者姓姓名名和和主主要要的的程程序序更更改改日日期期,也也用用于于描描述述复复杂的的计算算或或解解释编程程方方法法等。等。vSQL SQL ServerServer支支持持两两种种形形式式的的注注释语句句:行行内内注注释与与块注注释。17Principles of Database Systems8.1.3 8.1.3 注释注释(续续)2块注释块注释块注释的语法格式为:块注释的语法格式为:/*注释文本注释文本*/或:或:/*注释文本注释文本*/1
18、1行内注释行内注释行内注释行内注释行内注释的语法格式为:行内注释的语法格式为:行内注释的语法格式为:行内注释的语法格式为:注释文本注释文本注释文本注释文本18Principles of Database Systems第八章第八章 数据库编程数据库编程v8.1批处理、脚本和注释批处理、脚本和注释v8.2常量和变量常量和变量v8.3系统函数系统函数v8.4流程控制语句流程控制语句v8.5用户自定义函数用户自定义函数v8.6游标及其应用游标及其应用v8.7存储过程存储过程v8.8小结小结19Principles of Database Systems8.2 常量和变量常量和变量v常量和变量是程序设
19、计中不可缺少的元素。变量又常量和变量是程序设计中不可缺少的元素。变量又分为分为局部变量局部变量和和全局变量,全局变量,局部变量是一个能够保局部变量是一个能够保存特定数据类型实例的对象,是程序中各种类型数存特定数据类型实例的对象,是程序中各种类型数据的临时存储单元,用在批处理内据的临时存储单元,用在批处理内SQLSQL语句之间传递语句之间传递数据。局部变量的数据。局部变量的作用域作用域,只在声明它的批处理内,只在声明它的批处理内,一旦批处理结束,局部变量自动消失。一旦批处理结束,局部变量自动消失。全局变量全局变量是是系统给定的特殊变量。系统给定的特殊变量。8.2.1 8.2.1 常量常量8.2.
20、2 8.2.2 局部变量局部变量8.2.3 8.2.3 全局变量全局变量20Principles of Database Systems8.2.1 8.2.1 常量常量vTransact-SQL的常量主要有以下几种。的常量主要有以下几种。1.字符串常量字符串常量2.数值常量数值常量3.日期常量日期常量21Principles of Database Systems1.字符串常量字符串常量v字字符符串串常常量量包包含含在在单单引引号号之之内内,由由字字母母数数字字(如如a-a-z,A-Z,0-9)z,A-Z,0-9)及及特特殊殊符符号号(!,#)(!,#)组组成成。例例如如:SQL SQL SE
21、RVER SERVER 2000.2000.如如果果字字符符串串常常量量中中包包含含有有一一个个单单引引号号,可可以以用用两两个个单单引引号号表表示示这这个个字字符符串串常常量量内内的的单单引引号号,如如 Toms Toms birthdaybirthday,即即可可以以表表示示为为TomsToms birthday birthday22Principles of Database Systems2.数值常量数值常量vBit常量常量:用0或1表示,如果是一个大于1的数,它将被转化为1。vInteger常量常量:整数常量,不包含小数点。如1968。vDecimal常量常量:可以包含小数点的数值常
22、量。例如:123.456。vFloat常量常量和和real常量常量:使用科学计数法表示:101.5E6、54.8E-11等。vMoney常量常量:货币类型,可以包含小数点。v正数前加“+”或不加,负数前加“-”。例如-123.45,$-32.5等。23Principles of Database Systems3日期常量日期常量v使用特定格的字符日期表示,并用单引号括起来。使用特定格的字符日期表示,并用单引号括起来。如:如:2007/11/27 18:49:07.2007/11/27 18:49:07.24Principles of Database Systems8.2.2 8.2.2 局部
23、变量局部变量v局部变量是用户在程序中定义的变量,一次只能保局部变量是用户在程序中定义的变量,一次只能保存一个值,它仅在定义的批处理范围内有效。局部存一个值,它仅在定义的批处理范围内有效。局部变量可以临时存储数值。变量可以临时存储数值。局部变量名总是以局部变量名总是以符号开符号开始,最长为始,最长为128个字符。个字符。v使用使用DECLARE语句语句声明局部变量,定义局部变量声明局部变量,定义局部变量的名字、数据类型,有些还需要确定变量的长度。的名字、数据类型,有些还需要确定变量的长度。25Principles of Database Systems8.2.2 8.2.2 局部变量局部变量(续
24、续)v局部变量的初值为局部变量的初值为NULL,可以使用,可以使用SELECT或或SET语句语句对局部变量进行赋值。对局部变量进行赋值。SET语句一次只能语句一次只能给一个局部变量赋值,而给一个局部变量赋值,而SELECT语句可以同时给语句可以同时给一个或多个变量赋值。一个或多个变量赋值。例例8-28-2:定义两个局部变量,用他们来显示当前的日期。:定义两个局部变量,用他们来显示当前的日期。本例中给出了两种显示方式:本例中给出了两种显示方式:PRINTPRINT显示在显示在“消息消息”框,而框,而SELECTSELECT显示显示在在“网格网格”框。框。declare declare today
25、DatetodayDate char(10),dispStr varchar(20)char(10),dispStr varchar(20)set set todayDatetodayDate=getdategetdate()()set set dispStrdispStr=今天的日期为今天的日期为:print print dispstr+todaydatedispstr+todaydateselect select dispstr+todaydatedispstr+todaydate26Principles of Database Systems8.2.2 8.2.2 局部变量局部变量(续续
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库编程 数据库 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内