db-chapter08数据库编程.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《db-chapter08数据库编程.ppt》由用户(hwpkd79526)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- db_chapter08 数据库 编程
- 资源描述:
-
1、普通高等教育十五规划教材普通高等教育十五规划教材数据库系统概论数据库系统概论 张中军张中军第第8章章 数据库编程数据库编程 2023年4月29日星期六数据库系统概论3第第8章章 数据库编程数据库编程标准标准SQL是高度非过程化的关系数据库操纵语言,具有操作是高度非过程化的关系数据库操纵语言,具有操作统一、面向集合、功能丰富、使用简单等多项优点。统一、面向集合、功能丰富、使用简单等多项优点。缺点:缺乏流程控制能力,难以实现应用业务中的逻辑控制,缺点:缺乏流程控制能力,难以实现应用业务中的逻辑控制,SQL编程技术可以有效克服标准编程技术可以有效克服标准SQL语言实现复杂应用方面的语言实现复杂应用方
2、面的不足,提高应用系统和不足,提高应用系统和RDBMS之间的互操作性。之间的互操作性。在实践中,使用在实践中,使用SQL编程技术来访问和管理数据库中数据的编程技术来访问和管理数据库中数据的方式主要有:嵌入式方式主要有:嵌入式SQL(ADO.NET和和JDBC等)、等)、Oracle系系统中使用的统中使用的PL/SQL、SQL Server系统中使用的系统中使用的T-SQL等等2023年4月29日星期六数据库系统概论4第第8章章 数据库编程数据库编程n8.1 常量与变量常量与变量n8.2 运算符与表达式运算符与表达式n8.3 SQL SERVER 函数函数n8.4 流程控制语句流程控制语句n8.
3、5 游标游标n8.6 存储过程存储过程2023年4月29日星期六数据库系统概论5第第8章章 数据库编程数据库编程8.1 常量与变量常量与变量2023年4月29日星期六数据库系统概论68.1 常量与变量常量与变量J 常量常量n 字符串常量字符串常量ASCII字符串常量:字符串常量:单引号单引号界定的字符串界定的字符串 如如 china,中国人中国人 Unicode字符串常量:前缀字符字符串常量:前缀字符N+单引号界定的字符串单引号界定的字符串 如如 Nchina,N中国人中国人 注:如果字符串中包括单引号,使用两个单引号表示嵌注:如果字符串中包括单引号,使用两个单引号表示嵌入的单引号入的单引号
4、如如 china 区别:区别:ASCII字符占用存储空间字符占用存储空间1个字节,个字节,unicode字符字符占用占用2个字节个字节2023年4月29日星期六数据库系统概论7常量与变量(续)常量与变量(续)n数值常量数值常量 直接按照数值型数据定义的规则和范围书写数据即可直接按照数值型数据定义的规则和范围书写数据即可 n 日期时间常量日期时间常量 使用使用单引号单引号将日期时间字符串界定。将日期时间字符串界定。SQL Server 2000可以识别的日期时间格式如下:可以识别的日期时间格式如下:字母日期格式:字母日期格式:April 25,2005 数字日期格式:数字日期格式:2005-03
5、-05、03-05-2006(年月日、年月日、月日年格式月日年格式)不分割的字符格式:不分割的字符格式:20031008(年月日格式年月日格式)时间格式:时间格式:20:25:05、04:30:AM2023年4月29日星期六数据库系统概论8常量与变量(续)常量与变量(续)J 变量变量 n 全局变量全局变量 由系统提供,通过在变量名字前增加两个由系统提供,通过在变量名字前增加两个前缀区前缀区别于局部变量;别于局部变量;T-SQL全局变量由全局变量由SQL Server系统提系统提供并赋值;供并赋值;用户不能建立也不能为全局变量赋值。用户不能建立也不能为全局变量赋值。通通常将全局变量的值赋给局部变
6、量,以便保存和处理。常将全局变量的值赋给局部变量,以便保存和处理。(获取系统的状态数据,根据状态信息决定下一步走获取系统的状态数据,根据状态信息决定下一步走向。向。)Rowcount:返回最近一个语句影响的行数:返回最近一个语句影响的行数 error:保存了最近执行操作的错误状态:保存了最近执行操作的错误状态 version:当前:当前SQL Server版本信息版本信息2023年4月29日星期六数据库系统概论9常量与变量(续)常量与变量(续)n 局部变量局部变量 用于保存单个数据值;在变量名前面增加一个用于保存单个数据值;在变量名前面增加一个符号表示符号表示局部变量或参数。用途:保存运算的中
7、间结果,作为循环局部变量或参数。用途:保存运算的中间结果,作为循环变量使用等。变量使用等。局部变量作用域局限在一定范围内的局部变量作用域局限在一定范围内的T-SQL对象。一般来对象。一般来说,局部变量在一个批处理中被声明,然后这个批处理内说,局部变量在一个批处理中被声明,然后这个批处理内的的SQL语句就可以使用或者设置该变量的值。语句就可以使用或者设置该变量的值。局部变量声明:局部变量声明:declare 变量名变量名 数据类型数据类型 局部变量赋值:局部变量赋值:set 变量名变量名 =值表达式值表达式 变量值显示:变量值显示:select 变量变量名名2023年4月29日星期六数据库系统概
8、论10常量与变量(续)常量与变量(续)DECLARE book CHAR(12),price FLOATSET book=三国三国SET price=51SELECT book,priceGO例如:我们声明两个变量例如:我们声明两个变量book,price,分别是字符串类,分别是字符串类型和浮点型,并赋值,最后将变量值显示出来。型和浮点型,并赋值,最后将变量值显示出来。2023年4月29日星期六数据库系统概论11常量与变量(续)常量与变量(续)例如:要查询学生例如:要查询学生-课程数据库中的学生表中的学生信息,假课程数据库中的学生表中的学生信息,假如想查看性别如想查看性别=女女的学生学号和姓名
9、。的学生学号和姓名。使用一般的查询我们会这样写:使用一般的查询我们会这样写:SELECT Sno,SnameFROM StudentWHERE Ssex=女女如果使用如果使用DECLARE 语句来查看该信息呢?语句来查看该信息呢?DECLARE SEX CHAR(2)SET SEX=女女SELECT Sno,SnameFROM StudentWHERE Ssex=SEX2023年4月29日星期六数据库系统概论12第第8章章 数据库编程数据库编程8.2 运算符与表达式运算符与表达式2023年4月29日星期六数据库系统概论138.2 运算符与表达式运算符与表达式SQL2000提供多种运算符:提供多
10、种运算符:n算术运算符算术运算符n赋值运算符赋值运算符n比较运算符比较运算符n逻辑运算符逻辑运算符n字符串连接运算符字符串连接运算符n一元运算符一元运算符n位运算符位运算符2023年4月29日星期六数据库系统概论14算术运算符算术运算符n算术运算符在两个表达式上执行数学运算,这两个表达式算术运算符在两个表达式上执行数学运算,这两个表达式可以是任意数字数据类型。可以是任意数字数据类型。n算术运算符包括:算术运算符包括:+(加)、(加)、-(减)、(减)、*(乘)、(乘)、/(除)和(除)和%(取模)(取模)n+(加)、(加)、-(减)运算符还可以用于对(减)运算符还可以用于对DATETIME值执
11、行值执行算术运算算术运算n例如:在学生表中有学生年龄列,但没有出生年份,怎么例如:在学生表中有学生年龄列,但没有出生年份,怎么求学生出生年份呢?求学生出生年份呢?2023年4月29日星期六数据库系统概论15算术运算符(续)算术运算符(续)首先声明一个变量首先声明一个变量n,并将其赋值为当前日期,并将其赋值为当前日期,再在再在SELECT语句中使用语句中使用datepart()函数,()函数,最后将两个值相减。最后将两个值相减。DECLARE nSET n=GETDATE()SELECT Sname,Sage,DATEPART(YEAR,n)-Sage AS YEAR_OF_BIRTHFROM
12、Student2023年4月29日星期六数据库系统概论16位运算符位运算符n位运算符可以对两个表达式进行位操作,这两个表达式可位运算符可以对两个表达式进行位操作,这两个表达式可以是整形数据或者二进制数据。以是整形数据或者二进制数据。n位运算符包括:位运算符包括:&(与)(与):两个均为两个均为1时,结果为时,结果为1,否则为,否则为0|(或):只要有一个为(或):只要有一个为1,结果为,结果为1,否则为,否则为0 (异或):两者不同时为(异或):两者不同时为1或或0时,结果为时,结果为1,否则为,否则为0 在系统中,在系统中,T-SQL首先把整数数据转换成二进制数据,然首先把整数数据转换成二进
13、制数据,然后对二进制数据进行位运算后对二进制数据进行位运算例如:定义两个变量,分别求两者的与、或、异或运算结果。例如:定义两个变量,分别求两者的与、或、异或运算结果。2023年4月29日星期六数据库系统概论17位运算符(续)位运算符(续)DECLARE A INT,B INTSET A=5SET B=10SELECT A&B AS A&B SELECT A|B AS A|B SELECT AB AS AB 2023年4月29日星期六数据库系统概论18比较运算符和逻辑运算符比较运算符和逻辑运算符n比较运算符又称关系运算符,用于测试两个表达式的值之比较运算符又称关系运算符,用于测试两个表达式的值之
14、间的关系。间的关系。n比较运算符有:比较运算符有:=、=、=、或或!=、!n 用户可根据不同的情况使用运算符用户可根据不同的情况使用运算符n逻辑运算符是对某个条件进行测试,运算结果是逻辑运算符是对某个条件进行测试,运算结果是TRUE或或FALSEn逻辑运算符有:逻辑运算符有:AND、OR、NOT、ALL、ANY、BETWEEN、EXISTS、IN、LIKE、SOMEn例如:查询某学生平均成绩,如果平均成绩大于某分数线,例如:查询某学生平均成绩,如果平均成绩大于某分数线,则提示则提示“恭喜,可获奖学金恭喜,可获奖学金”,否则,提示,否则,提示“很遗憾,继很遗憾,继续努力续努力”2023年4月29
15、日星期六数据库系统概论19比较运算符和逻辑运算符(续)比较运算符和逻辑运算符(续)DECLARE STU_ID CHAR(10),LINE SMALLINTSET STU_ID=2009001SET LINE=85IF EXISTS(SELECT AVG(Grade)FROM SC GROUP BY Sno HAVING Sno=STU_ID AND AVG(Grade)LINE)PRINT 恭喜,可获奖学金!恭喜,可获奖学金!ELSE PRINT 很遗憾,继续努力很遗憾,继续努力2023年4月29日星期六数据库系统概论20字符串连接运算符字符串连接运算符n字符串连接运算符为字符串连接运算符为
16、“+”,可以将两个或多个字符串合并,可以将两个或多个字符串合并或连接成一个字符串,还可以连接二进制字符串。或连接成一个字符串,还可以连接二进制字符串。例如:例如:SELECT(ABC+DEF)SELECT(中国中国+是我们的祖国是我们的祖国)SELECT(5+8)SELECT(8+15)SELECT(+空格空格)结果会是什么呢?结果会是什么呢?2023年4月29日星期六数据库系统概论21字符串连接运算符(续)字符串连接运算符(续)n例如:显示学生例如:显示学生-课程数据库中学生表内女生信息课程数据库中学生表内女生信息SELECT(Sname+STR(Sage)+岁岁 +专业专业 +Sdept)
17、AS 女女生信息生信息FROM StudentWHERE Ssex=女女2023年4月29日星期六数据库系统概论22一元运算符一元运算符n一元运算符包括:一元运算符包括:+(正)、(正)、-(负)和(负)和(按位取反)(按位取反)n正负大家已经熟悉,按位取反是将整数转换成正负大家已经熟悉,按位取反是将整数转换成16进制,再进制,再将其求反。将其求反。例如例如a的值是的值是12,16进制即进制即0000 0000 0000 1100 而而a的值为的值为1111 1111 1111 00112023年4月29日星期六数据库系统概论23运算符的优先次序运算符的优先次序n复杂表达式或混合运算中,复杂表
18、达式或混合运算中,运算符优先级决定运算先运算符优先级决定运算先后次序后次序n执行次序影响运算结果执行次序影响运算结果n优先级相同时优先级相同时n 一元运算符一元运算符 从右向左从右向左 如如 +an 二元运算符二元运算符 从左向右从左向右n 有有括号括号的,先运算括号里的,先运算括号里面的表达式,多层括号嵌面的表达式,多层括号嵌套的,先对嵌套最深的括套的,先对嵌套最深的括号求值号求值运算符运算符优先级优先级+(正)、(正)、-(负负)、(按位取反)(按位取反)1*(乘)(乘)/(除)(除)%(取模)(取模)2+(加加)+(字符串连接)(字符串连接)-3=!=!4(异或异或)&(与与)|(或或)
19、5NOT6AND7ALL ANY BETWEEN IN LIKE OR SOME 8=(赋值赋值)92023年4月29日星期六数据库系统概论24第第8章章 数据库编程数据库编程8.3 SQL SERVER 函数函数2023年4月29日星期六数据库系统概论258.3 SQL SERVER 函数函数n数学函数数学函数n字符串函数字符串函数n日期函数日期函数n用户定义函数用户定义函数2023年4月29日星期六数据库系统概论26数学函数数学函数n数学函数对数学函数对SQL SERVER提供的数字数据进行数学运算并提供的数字数据进行数学运算并返回运算结果返回运算结果nABSn 语法格式:语法格式:ABS
展开阅读全文