mysql数据库实用教程教学课件作者郑明秋项目6数据库编程

上传人:E**** 文档编号:102556927 上传时间:2019-10-03 格式:PPTX 页数:61 大小:853.43KB
返回 下载 相关 举报
mysql数据库实用教程教学课件作者郑明秋项目6数据库编程_第1页
第1页 / 共61页
mysql数据库实用教程教学课件作者郑明秋项目6数据库编程_第2页
第2页 / 共61页
mysql数据库实用教程教学课件作者郑明秋项目6数据库编程_第3页
第3页 / 共61页
mysql数据库实用教程教学课件作者郑明秋项目6数据库编程_第4页
第4页 / 共61页
mysql数据库实用教程教学课件作者郑明秋项目6数据库编程_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《mysql数据库实用教程教学课件作者郑明秋项目6数据库编程》由会员分享,可在线阅读,更多相关《mysql数据库实用教程教学课件作者郑明秋项目6数据库编程(61页珍藏版)》请在金锄头文库上搜索。

1、项目6,数据库编程,1,本项目通过了解MySQL中常量、变量的定义与使用,自定义函数、存储过程的定义及使用方法,触发器的定义及触发机制,使学生掌握三种数据库对象的作用和实际应用。 存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别是:create procedure和create function。使用call语句来调用存储过程,只能用输出变量返回值。函数可以从语句外调用(即通过引用函数名),也能返回标量值。,学习目标,2,6.1.1 常量 MySQL中的常量主要分为数值型常量、字符串常量、日期型常量、布尔型常量。 1.数值型常量 MySQL支持整型和浮点型的数值型常

2、量。 【例6.1】执行如下语句,分别输出整型常量3254、浮点型常量3.1415926及十六制常量0xffff。,6.1 常量和变量,3,6.1.1 常量 2.字符串常量 字符串是指用单引号或双引号括起来的字符序列,如hello world、“你好世界”,每个汉字字符使用2个字节存储,而每个ASCII码字符用一个字节存储。 【例6.2】输出带引号的字符串。,6.1 常量和变量,4,6.1.1 常量 3.日期时间常量 日期时间常量由单引号将表示日期时间的字符串括起来构成。 需要特别注意的是,MySQL是按“年-月-日”的顺序表示日期的,中间的间隔符“-”也可以使用如“”或“%”等特殊符号。,5,

3、6.1 常量和变量,6.1.1 常量 3.日期时间常量 日期时间常量由单引号将表示日期时间的字符串括起来构成。 需要特别注意的是,MySQL是按“年-月-日”的顺序表示日期的,中间的间隔符“-”也可以使用如“”或“%”等特殊符号。,6,6.1 常量和变量,6.1.1 常量 4.布尔型常量 布尔值只包含两个值:true和false。false的数字值为“0”,true的数字值为“1”。,6.1 常量和变量,7,6.1.2 变量 变量用于临时存放数据,变量中的数据随着程序的运行而变化。变量有变量名及数据类型两个属性,变量名用于标识该变量,变量的数据类型确定了该变量存储值的格式及允许的运算。MySQ

4、L中根据变量的定义方式,可分为用户变量、局部变量和系统变量。,6.1 常量和变量,8,6.1.2 变量 1.用户变量 用户可以在表达式中使用自己定义的变量,这样的变量叫做用户变量。 语法格式: set 用户变量表达式;,6.1 常量和变量,9,6.1.2 变量 1.用户变量 【例6.4】创建用户变量t1,赋值为100,t2赋值为“test”,t3赋值为“中国”。 set t1=100,t2=“test“,t3=“中国“; 【例6.5】创建用户变量v1,赋值为10,用户变量v2的值为v1的值加5。 set v1=10,v2=v1+5; 【例6.6】创建用户变量sid,赋值为1523105,根据s

5、id的值查询显示该学号对应的学号及成绩信息。 set sid=1523105;select stuid,score from score where stuid=sid; 【例6.7】使用SQL语句为变量赋值。 select a:=(a:=3.14)+2;,6.1 常量和变量,10,6.1.2 变量 2.局部变量 MySQL中的局部变量只可以在存储程序(函数、触发器、存储过程及事件中)中使用,一般定义在存储程序的beginend语句块之间。 语法格式: declare 变量名 数据类型 default 默认值;,6.1 常量和变量,11,6.1.2 变量 2.局部变量 为变量赋值,语法格式:s

6、et 变量名=表达式或值; 例:定义局变量v1,v2,v3类型均为int类型,并通过set关键字为其赋值。 declare v1,v2,v3 int;set v1=10,v2=20; set v3=v1+v2; 通过selectinto为一个或多个变量赋值,语法如下: select 字段名称 into 变量名 from 表名;,6.1 常量和变量,12,6.1.2 变量 3.系统变量 系统变量是MySQL的一些特殊设置。当MySQL数据库服务启动时,这些设置被引入并初始化为默认值,这些设置即为系统变量。 【例6.8】获得MySQL的版本号。 mysql select version; +-+

7、| version | +-+ | 5.6.24 | +-+,6.1 常量和变量,13,6.1.2 变量 3.系统变量 【例6.9】获取当前用户名称及系统当前时间。 mysql select current_user,current_time; +-+-+ | current_user | current_time | +-+-+ | rootlocalhost | 21:50:44 | +-+-+ MySQL中系统变量有很多,使用show variables语句可以得到系统变量的清单。 【例6.10】查看MySQL系统变量 mysql show variables;,6.1 常量和变量,14

8、,MySQL提供了简单的流程控制语句,其中包括条件控制语句以及循环语句。这些流程控制语句通常放在begin.end语句块中使用。 条件控制语句分为两种,一种是if语句,另一种是case语句。,6.2 流程控制语句,15,6.2.1 条件控制语句 1.if语句 if语句用来进行条件判断,根据不同的条件执行不同的操作。 语法格式: if 条件表达式1 then 语句块1; elseif 条件表达式2 then 语句块2; else 语句块n; end if;,6.2 流程控制语句,16,6.2.1 条件控制语句 1.if语句 【例6.11】定义用户变量scroe并赋初值,根据score的值判断该成

9、绩的等级,成绩90-100为优秀,80-89为良好,70-79为中等,60-69为及格,59以下为不及格。,6.2 流程控制语句,17,6.2.1 条件控制语句 2.case语句 case语句是另一个进行多条件判断的语句,用于存储程序中,语法格式如下: case 表达式 when 值1 then 语句序列1 when 值2 then 语句序列2 else 语句序列n end case,6.2 流程控制语句,18,6.2.1 条件控制语句 2.case语句 case语句是另一个进行多条件判断的语句,用于存储程序中,语法格式如下: case 表达式 when 值1 then 语句序列1 when

10、值2 then 语句序列2 else 语句序列n end case,6.2 流程控制语句,19,6.2.1 条件控制语句 2.case语句 【例6.12】根据数字0-6分别输出星期一至星期日,6.2 流程控制语句,20,6.2.2 循环语句 MySQL提供了三种循环语句,分别是while、repeat以及loop。除此以外,MySQL还提供了iterate语句以及leave语句用于循环的内部控制。 1.while语句 语法格式: 循环标签while 条件表达式 do 循环体; end while循环标签;,6.2 流程控制语句,21,6.2.2 循环语句 MySQL提供了三种循环语句,分别是w

11、hile、repeat以及loop。除此以外,MySQL还提供了iterate语句以及leave语句用于循环的内部控制。 1.while语句 语法格式: 循环标签while 条件表达式 do 循环体; end while循环标签;,6.2 流程控制语句,22,6.2.2 循环语句 【例6.14】利用程序控制语句,实现求1+2+100之和。,6.2 流程控制语句,23,6.2.2 循环语句 2.leave语句 leave语句用于跳出当前循环,语法格式如下: leave 循环标签; 说明:leave循环标签后必须以“;”结束。 【例6.15】利用程序控制语句,实现求1+2+100之和,其中add_

12、sum为循环标签。,6.2 流程控制语句,24,6.2.2 循环语句 3.iterate语句 iterate语句用于跳出本次循环,继而进行下次循环。 语法格式:iterate 循环标签; 说明:iterate循环标签后必须以分号结束。 【例6.16】利用程序控制语句,实现求1+2+100的偶数之和,其中add_sum为循环标签。,6.2 流程控制语句,25,6.2.2 循环语句 4.repeat 语句 在循环语句中,当条件表达式的值为false时,反复执行循环,直到条件表达式的值为true,语法格式如下: 循环标签:repeat 循环体; until 条件表达式 end repeat循环标签;

13、 【例6.17】利用程序控制语句,实现求1+2+100之和。,6.2 流程控制语句,26,6.2.2 循环语句 5.loop语句的语法格式 循环标签:loop 循环体; if 条件表达式 then leave 循环标签; end if; end loop; 【例6.18】 利用程序控制语句,实现求1+2+100之和,其中add_sum为循环标签。,6.2 流程控制语句,27,在MySQL中,服务器处理语句时是以分号为结束标志的,但是在创建存储过程时,存储过程体中可能包含多个SQL语句,每个SQL语句都是以分号为结尾的,这个时候服务器处理程序遇到第1个分号会认为程序结束,导致程序不能正常执行,此

14、时可以使用delimiter命令将MySQL语句结束符标志修改为其他符号。语法格式: delimiter /; 语法说明:/是用户定义的结束符,通常该符号可以是一些特殊符号,如:2个#或两个$,如果想要恢复使用分号;作为结束符,只需要运行以下命令即可: delimiter ;,6.3 重置命令结束标记,28,计算机函数是一个固定的程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理;所谓出口,就是指函数的返回值,在计算机求得之后,由此口带回给调用它的程序。 函数的特点:

15、 函数没有输出参数,因为存储函数本身就是输出参数; 函数在SQL语句中直接调用; 函数中必须包含一条return语句。,6.4 自定义函数,29,6.4.1 自定义函数的创建 语法格式: create function 函数名(参数列表) returns返回值类型 函数体 【例6.19】创建一个自定义函数f_hello(),无参数,函数返回“hello ,I am Jenny!”。,6.4 自定义函数,30,6.4.2 自定义函数的应用 自定义函数的应用与系统函数一样,通过函数名传递参数即可调用。 【例6-19】f_hello()可以如下调用: select f_hello(); 【例6.20

16、】在stuMIS数据库中创建一个函数f_Isjg(),包含一个数值类型参数,函数体内判断输入成绩值是否及格。并查询学号为1511102的学生成绩是否及格。,6.4 自定义函数,31,6.4.2 自定义函数的应用 【例6.21】基于数据库stuMIS中的学生表(student)表中年龄列定义一个函数f_Iscn(),函数有一个整型参数,根据给定的年龄值,返回该学生是否成年。,6.4 自定义函数,32,6.4.2 自定义函数的应用 【例6.22】基于数据库stuMIS中的学生成绩表(score)的成绩列,定义一个函数f_Dengji(),函数有一个数值类型的参数,返回成绩对应的等级(A、B、C、D、E、F)。,6.4 自定

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号