数据库原理与MySQL应用(微课版)教案第1--11章 数据库系统的基本原理---数据库设计.docx
教案第3章MySQL数据库基本操作教学环节复习提问新课讲解课堂实践每课小结布置作业时间分配5681052【课程导入】问题:用户登录界面注册新的用户,怎么将数据添加到数据库中?怎么样 实现用户密码的修改?平台操作演示+练习3.5 表的数据维护派1插入数据1) INSERT 语句当往一个表中添加一行新的数据时,需要使用DML语言中的INSERT语 句。该语句的基本语法格式如下:INSERT INTO表名(列名1,列名2)VALUES (值 1,值 2)2)利用子查询向表中插入数据INSERT INTO 表名(列名 1,列名 2) SELECT 语句2更新数据UPDATE语句的基本语法格式如下:UPDATE 表名SET 歹U名二值,歹U名=值,WHERE 条件3删除数据DELETE语句的基本语法格式如下:DELETE FROM 表名WHERE v条件:数据查询派SELECT语句基本的语法如下:SELECT *|列名|列表达式斗,歹U名|列表达式.FROM表名或视图名,表名或视图名习WHERE行条件表达式GROUP BY分组列名1,分组列名2HAVING v组条件 表达式ORDER BY排序列名 1 ASC| DESC , 排序列名 2 ASC|DESC 3.61基本查询1. SELECT子句的规定SELECT子句用于描述输出值的列名或表达式,其形式如下:SELECT ALL | DISTINCT * |列名或列名表达式序列,2.使用WHERE子句指定查询条件运算符名称符号及格式说明算术比较判 断v表达式1 0 v表达式2。代表的符号有: 、=、=、或!=、=比较两个表达式的值逻辑比较判 断比较表达式i e比较表达式20代表的符号按其优先级由高到低的顺序为:NOT、AND、OR两个比较表达式进行 非、与、或的运算之间判断表达式NOT BETWEEN值 1 AND(值 2搜索(不)在给定范围 内的数据字符串模糊 判断字符串NOTJ LIKE匹配模式,查找(不)包含给定模 式的值空值判断表达式IS NOT NULL判断某值是否为空值之内判断表达式IN (集合)判断表达式的值是否在 集合内3、 分组查询 聚合函数使用聚合函数时,需要注意以下几点:函数说明COUNT(*)COUNT(歹U 名)计算记录的个数对一列中的值计算个数SUM(列名)求某一列值的总和AVG(歹(J 名)求某一列值的平均值MAX(列名)求一列值的最大值MIN(列名)求一列值的最小值 聚合函数只能出现在所查询的列、ORDER BY子句、HAVING子句中, 而不能出现在 WHERE子句、GROUP BY子句中。 除了 COUNT(*)之外,其他聚合函数(包括COUNT(列名)都忽略 对列值为NULL值的统计。4连接查询连接查询时的一些注意事项: 要连接的表都要放在FROM子句中,表名之间用逗号分开,比如FROM detp,empo为了书写方便,可以为表起别名,表的别名在FROM子句中定义,别 名放在表名之后,它们之间用空格隔开。注意,别名一经定义,在整个查询语 句中就只能使用表的别名而不能再使用表名。连接的条件放在 WHERE 子句中,比如 WHERE emp.deptno=dept.deptno。如果多个表中有相同列名的列时,在使用这些列时,必须在这些列的前 面冠以表名来区别,表名和列名之间用句号隔开。【课程小结】本次课主要掌握通过SQL语句实现表数据的插入、删除和更新操作,以及 对表中数据的基本查询、分组查询和连接查询。【课后自我总结分析】数据库语句并不困难,要严格遵从语句格式要求。要引领学生学会分析, 尤其是多表连接查询时,需要用到哪些表,及这些间的连接字段。另外就是要 多加练习,促进灵活应用。授课方式 (请打J)理论课W讨论课口 实践课口习题课口其他口课时 安排2教学单元(教学章、节或主题):第3章MySQL数据库基本操作(第6节+第7节)目的、要求(分了解、熟悉、掌握三个层次):1、掌握数据查询(嵌套查询;集合查询)2、掌握索引创建与删除3、掌握视图(定义、查询、更新视图)重点:1、数据查询(嵌套查询;集合查询)2、索引3、视图难点:数据查询(嵌套查询;集合查询);索引的作用;视图的使用。教学步骤:提问引起思考引入课程精讲课堂内容课堂小结布置作业教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等) 多媒体讲解、举例讲解作业和思考题:作业题:课后习题二-(1、2)练习题:教材第2章课后习题思考题:什么情况下不能使用视图完成对表的插入、删除和更新操作?教学内容(含时间分配)板书或旁注时间分配5681052复习提问新课讲解课堂实践每课小结布置作业教学环节第3章MySQL数据库基本操作【课程导入】问题:QQ注册用户有上亿条,如何能快速的查找到指定用户的信息哪? 怎样让用户只能看到允许他能查看的数据哪?3.6数据查询派4.子查询平台操作演示+练1)使用IN操作符的多值子查询习比较运算符IN的含义为子查询返回列表中的任何一个。IN操作符比较 子查询返回列表中的每一个值,并且显示任何相等的数据行。2)使用ALL操作符的多值子查询ALL操作符比较子查询返回列表中的每一个值。ALL:为小于最小 的;ALL:为大于最大的。3)使用ANY操作符的多值子查询ANY操作符比较子查询返回列表中每一个值。ANY:为小于最大 的;ANY:为大于最小的。4)使用EXISTS操作符的多行查询EXISTS操作符比较子查询返回列表的每一行。使用EXISTS时应注意: 外层查询的WHERE子句格式为:WHERE EXISTS;在内层子查询中必 须有WHERE子句,给出外层查询和内层子查询所使用表的连接条件。5.集合查询当两个SELECT查询结果的结构完全一致时,可以对这两个查询执行 并、交、差的运算,运算符为UNION、INTERSECT和MINUS。集合运算的格式为:SELECT 语句 1UNION|INTERSECT|MINUSSELECT 语句 23.7索引和视图派1 .索引的创建与删除1)通过CREATE INDEX语句在已存在的表上创建索引创建索引的语句格式如下:CREATE INDEX 索弓I名 ON 表名(v歹U名 , 歹U名刁 ) 2)创建表时直接创建索引 CREATE TABLE 表名 (字段名1数据类型,字段名2数据类型,UNIQUE|FULLTEXT|SPATIAL INDEX 索引名(字段名ASCIDESC比字段名ASC|DESC,);3).使用DROP INDEX语句删除索引DROP INDEX 索引名)4)使用ALTER TABLE语句删除索引ALTER TABLE 表名DROP INDEX 索引名;2.视图视图(View)是由SELECT子查询语句定义的一个逻辑表,只有定义 而无数据,是一个“虚表”。1).创建视图CREATE OR REPLACE VIEW 视图名>(< 另 U 名 >,< 别 名刁)AS子查询语句WITH CHECK OPTION CONSTRAINT v约束名 >WITH READ ONLY2)删除视图Drop view 视图名,3)更新视图数据对视图的更新实际上是对表中数据的更新,更新视图是指通过视图对 表中的数据进行插入、删除和修改。【课程小结】本次课主要掌握嵌套查询和合并查询,索引的创建与删除,视图的创 建、修改和删除,及对数据的增、册k改的操作。【课后自我总结分析】1)要让学生能够理解为什么要建索引,因为索引是优化查询的一种方 式。2)视图对应着数据库系统的外模式,是实现数据安全性的一种方式。 这两点一定要让学生知道,对以后数据库的管理有帮助。目的、要求(分了解、熟悉、掌握三个层次):授课方式 (请打J)理论课目讨论课口 实践课口 习题课口 其他口课时安排2教学单元(教学章、节或主题):第4章关系模型基本原理(第1节+第2节)1、了解关系数据库中的关系模型2、熟悉关系数据结构及形式化定义的基本概念(关系、关系模式、关系数据库)3、 3、掌握关系的完整性。重点:1、关系的概念2、关系模式的概念3、关系的完整性难点:关系完整性实现教学步骤:提问引起思考引入课程精讲课堂内容课堂小结布置作业教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等) 多媒体讲解、举例讲解作业和思考题:作业题:课后习题四练习:教材第4章课后习题思考题:关系完整性包括哪三种?分别使用哪些命令短语实现?教学内容(含时间分配)板书或旁注教学环节时间分配 1516811c)|5|2第4章 关系模型基本原理【课程导入】问题:如果表中有多条重复记录会有什么影响?如何控制?【讲授内容】4.1关系模型基本概念4. 1. 1基本术语 关系:是用于描述数据的一张二维表,组成表的行称为元组,组成表 的列称为属性。 域(Domain):指列(或属性)的取值范围。候选键(Candidate Key):也称为候选码。能唯一的标识关系中每一个 元组的最小属性集。 主键(Priamary Key, PK):也称为主码。一个唯一识别关系中元组 的最小属性集合。 主属性:候选键中所有的属性均称为主属性。 非主属性:不包含在任何候选键中的属性称为非主属性。 全码:关系中所有属性的组合是该关系的一个候选码,则该候选码称 为全码。 外键(Foreign Key, FK):关系R中的某个属性K是另一个关系S 中的主键,则称该属性K是关系R的外键。通过外键可以建立两表间的联系。4. 1.2关系的特征 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性 要给予不同的属性名。 各列的顺序在理论上是无序的,即列的次序可以任意互换,但使用时 按习惯考虑列的顺序。 任意两个元组的侯选码不能相同。 行的顺序无所谓,即行的次序可以任意交换。 分量必须取原子值,即每一个分量都必须是不可分的数据项。4.2数据库完整性X4. 2.1三类完整性规则1 .实体完整性规则实体完整性给出了主键的取值的最低约束条件。规则4.1主键的各个属性都不能为空值。2 .参照完整性参照完整性给出了在关系之间建立正确的联系的约束条件。定义4.1设F是关系R的一个或一组属性(但F不是R的主键),K是关 系S的主键。如果F与K相对应,则称F是关系R的外键,并称关系R为参照复习提问新课讲解课堂实践每课小结布置作业关系,关系S为被参照关系。而关系R和关系S可以是同一个关系。规则4.2外键或者取空值(要求外键的每个属性均为空值),或者等于 被参照关系中的主键的某个值。参照完整性规则就是定义外键与主键之间的引用规则。3 .用户定义的完整性根据应用环境的特殊要求,关系数据库应用系统中的关系往往还应该满足 一些特殊的约束条件。规则4. 3属性的取值应当满足用户定义的约束条件。平台操作演示+练习4 . 2.2 MySQL约束控制1 .非空(NOT NULL)约束字段名 数据类型NOT NULL | NULL2 .主键(PRIMARY KEY)约束主键约束主要是针对主键,以保证主键值的完整性。主键约束要求主键值 必须满足两个条件:(1)值唯一;(2)不能为空值。3 .唯一约束唯一约束主要是针对于候选键,以保证候选键值的完整性。唯一约束要求 候选键满足2个条件:(1)值唯一;(2)可有一个且仅有一个空值。4 .检查约束检查约束是通过检查输入到表中的数据来维护用户定义的完整性的,即检 查输入的每一个数据,只有符合条件的数据才允许输入到表中。5 .外键约束外键约束涉及到两个表,即主表和从表,从表是指外键所在的表,主表是 指外键在另一张表中作为主键的表。6 .自增(AUTO_INCREMENT)约束默认情况下,在MySQL中AUTO_INCREMENT的初始值是1,每新增一条记录, 字段值自动加1。一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段 必须为主键的一部分。AUTO.INCREMENT约束的字段可以是任何整数类型,如 TINYINT、SMALL I NT. INT、BIGINT 等。7 .默认值(DEFAULT)约束默认值约束是为表中某列指定默认值。【课程小结】本次课主要掌握数据的三种完整性及其实现。数据库原理与应用课程教案(第4章)授课方式(请打J)理论课因讨论课口 实践课口 习题课口 其他口课时安排教学单元(教学章、节或主题):第4章关系模型基本理论(第3节+第4节)目的、要求(分了解、熟悉、掌握三个层次):1、掌握关系代数传统的集合运算2、掌握关系代数专门的关系运算重点:关系代数的运算难点:组合的关系代数运算教学步骤:提问引起思考引入课程精讲课堂内容课堂小结布置作业教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等) 多媒体讲解、举例讲解作业和思考题:作业题:课后习题三练习:教材第4章课后习题思考题:关系代数五种基本操作的运行符号分别是什么?教 学内容(含时间分配)板书或旁注教学环节复习提问新课讲解课堂实践每课小结布置作业时间分配5681052第4章关系模型基本原理【课程导入】问题:代数中的集合运算包括有什么?它们是实现关系运算增、册k改、 查的数据理论基础。【讲授内容】4.3关系代数4.3.1 关系代数的基本操作.并(Union)设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的所 有元组构成的集合,记为RUS。形式定义如下:RUS=t| teRVtesj关系的并操作对应于关系的插入记录的操作,俗称为“ + ”操作。1 .差(Difference)设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的 元组构成的集合,记为R-S。形式定义如下:R-S=t|teRAt S关系的差操作对应于关系的删除记录的操作,俗称为“一”操作。2 .笛卡儿集(Cartesian Product)设关系R和S的属性个数(即列数)分别为和s, R和S的笛卡儿积是 一个(r+s)列的元组集合,每个元组的前r个列来自R的一个元组,后s个列 来自S的一个元组,记为RxS。形式定义如下:RxS= trts| trRAtsS关系的笛卡儿积操作对应于两个关系记录横向合并的操作,俗称“X”操作。3 .投影(Projection)关系R上的投影是从R中选择出若干属性列组成新的关系。形式定义如下:Ua(R)= tA|teR其中,A为R中的属性列。4 .选择(Selection)关系R上的选择操作是从R中选择符合条件的元组。形式定义如下:(R尸t|t£RAF6=true432关系代数的4个组合操作1 .交(Intersection)设关系R和S具有相同的关系模式,R和S的交是由属于R又属于S的元 组构成的集合,记为RCS。形式定义如下:RAS= t| teRAtes关系的交可以用差来表示,即RCS=R-RS。关系的交操作对应于寻找两关系共有记录的操作,是一种关系查询操作。2 .连接(Join)连接也称为0连接。它是从两个关系的笛卡儿积中选取属性值满足某一。 操作的元组。形式定义如下:RooS= trts|treRAtsesAtrA OtsB也可写成:RooS=dA0B(RXS)3 .除(Division)平台操作演示平台操作演示关系的除操作能用其他基本操作表示,即r-s=nx(R)rix(rix(R)乂 n 丫(S)-R)除操作适合于包含“对于所有的或全部的”语句的查询操作。4.4元组关系演算.原子公式三种形式教 案(首页)课程名称数据库原理与应用课程编码时时时 4 2 2 6 3 3 计课验 总讲、笑学分2类别公共基础课()专业基础课(4 )专业课()选修课()本材主参资 基教和要考料1、教材1数据库原理与MySQL应用.李月军.北京:人民邮电出版社,2022.2、少考书1数据库原理及应用(MySQL版).李月军,付良廷.北京:清华大学出版社,2019.2数据库系统概论(第5版).王珊.北京:高等教育出版社,2014.3数据库系统原理及MySQL应用教程(第2版).李辉.北京:机械工业出版社.2019。4数据库系统工程)市考试全程指导.丁宝康,陈坚.北京:清华大学出版社,2006.3、网上资源蓝墨云班课教学目的要求通过理论授课和上机实践,使学生认识如何合理地组织数据和存储数据、更方便地维 护数据、更严密地控制数据和更有效地利用数据。通过学习了解数据库系统的体系结构与特点、数据库管理系统的功能;了解关系模型 的基本概念;掌握关系代数语言的使用;掌握结构化查询语言(SQL)的用法;掌握关系数 据库规范化理论,能够利用分解算法将关系模式进行合理的分解;掌握数据库设计方法; 了解数据库系统维护的相关概念和方法(数据库恢复、并发控制、安全性控制和完整性控 制等)。能够通过MySQL数据库管理系统实现对数据的存储、管理与维护等操作,将原理 内容通过MySQL语句实现。教学重点难点教学重点:1、数据模型与数据库体系结构2、数据定义、增删改查、索引与视图的SQL语句实现3、数据库完整性及SQL语句实现与关系代数运算4、数据库的安全性及MySQL语句实现5、并发控制及封锁6、数据库备份及恢复策略7、使用E-R模型实现数据库的概念设计8、关系模型的规范化9、数据库设计教学难点:1、SQL语言实现数据复杂查询2、关系代数组合运算3、并发控制4、关系规范化:最小函数依赖集、函数依赖关系、求候选键、关系模式的规范化5、数据库设计:逻辑结构向关系模型的转换(1) R (t)(2) ti 9 sj(3) ti9c 或 cO ti2 .公式的递归定义(1)每个原子公式是公式。其中的元组变量是自由元组变量。(2)如果Pi和P2是公式,那么卜面3个也为公式。 *Pi,如果Pi为真,则一1Pi为假。 P1VP2,如果Pi和P2中有一个为真或者同时为真,则P1VP2为真,仅 当P1和P2同时为假时,P1VP2为假。 P1AP2,如果P1和P2同时为真,则P1AP2才为真,否则为假。(3)如果P是公式,那么(mt)(P)和(X/t)(P)也是公式。其中t是公式P中 的自由元组变量,在(三t)( 2和(V t)( P)中称为约束元组变量。(31)( P)表示存在一个元组t使得公式P为真;(V t)( P)表示对于所有元组t 都使得公式P为真。(4)公式中各种运算符的优先级从高到低依次为:。、三和V、A和 Vo在公式外还可以加括号,以改变上述优先顺序。(5)公式只能由上述4种形式构成,除此之外构成的都不是公式。3 .关系代数中5种基本运算用元组关系演算表达式的表达X(1)并RUS=t|R(t)VS(t)(2)交Rns=t|R(t) AS(t)(3)投影nii,i2,.,ik(R)=t | (3u)(R(u)Atl=uiiAt2=ui2A. Atk=uik) )例如,投影操作是Il2,3(R),那么元组表达式可写成:t | (3u)(R(u)Atl=u2 At2=u3) 。(4)笛卡尔积RxS=t | (3u)(3v)( R(u)AS(v)Atl=u 1At2=u2At3=u3 A t4=vlAt5=v2At6=v3) (5)选择OF(R)=t | R(t) AFF是F的等价表示形式。例如,s=d(R)可写成t|R(t)At2=d。因为差运算也常用,所以下面给出差运算的元组关系演算表达式。(6)差R-S=t|R(t)A-iS(t)【课程小结】本次课主要掌握通过关系代数的四个组合操作写出关系代数表达式,掌握 关系代数,会更有利于对SQL语句的理解记忆。黑板讲解数据库原理与应用课程教案(第5章)授课方式 (请打J)理论课0 讨论课口 实践课口 习题课口 其他口课时 安排2教学单元(教学章、节或主题):第5章存储函数与存储过程(第1节+第2节+第3节)目的、要求(分了解、熟悉、掌握三个层次):1、熟悉常用的系统函数2、掌握MySQL的常量的表示及变量的定义及使用;3、掌握使用控制流语句实现简单及复杂的存储函数;重点:存储函数难点:条件及循环语句在存储函数中的使用教学步骤:提问引起思考引入课程精讲课堂内容课堂小结布置作业教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等) 多媒体讲解、举例讲解作业和思考题:作业题:课后习题三(1)练习:教材第5章课后习题思考题:存储函数的参数区分输入和输出参数吗?教学内容(含时间分配)板书或旁注教学环节复习提问新课讲解课堂实践每课小结布置作业时间分配5681052第5章存储函数与存储过程【课程导入】问题:C或Java语言的判断结构和循环结构及函数作用?【讲授内容】5.1常用系统函数1)字符串函数平台操作演示平台操作演示(1)计算字符串字符数的函数和字符串长度的函数CHAR_LENGTH(str)返回字符串str所包含的字符个数。(2)合并字符串函数C0NCAT(sl,s2,)返回结果为连接参数产生的字符串,如果任何一个参 数为NULL,则返回值为NULL。(3)字符串大小写转换函数LOWER(str)是将字符串str中的字母字符全部转换成小写字母。UPPER(str)是将字符串str中的字母字符全部转换成大写字母。(4)删除空格函数LTRIM(str)返回删除前导空格的字符串str;RTRIM(str)返回删除尾部空格的字符串str;TRIM(str)返回删除两侧空格的字符串stro(5)取子串函数SUBSTRING(str,startJength)返回字符串 str 从 start 开始长度为 length 的子 串。2)数学函数ABS(x)返回x的绝对值。PI()返回圆周率兀的值。SQRT()返回非负数的二次方根。MOD (m,n)返回m被n除后的余数。ROUND(x,y)把x四舍五入到y指定的精度返回。如果y为负数,则将保留 x值到小数点左边y位。3)日期和时间函数(1)获取当前系统的日期及取日期的年、月、日函数CURDATE()返回当前系统日期,格式为YYY-MM-DD。YEAR(d)、MONTH(d)、DAY(d)分别返回日期或日期时间d的年、月、日 的值。(2)获取当前系统日期时间函数CURRENT_TIMESTAMP()> LOCALTIME。、NOW。、SYSDATE()4 个函 数作用相同,均返回当前系统的日期时间,格式为YYYY-MM-DD HH:MM:SS4)系统信息函数USER()返回当前登录的用户名。DATABASE。返回当前使用数据库名。VERSION。返回MySQL服务器版本号。5)条件控制函数IF()函数IF(条件表达式,vl,v2)如果条件表达式是真则函数返回vl值,否则返回v2 的值°CASE。函数CASE表达式WHEN vl THEN rlWHEN v2 THEN r2 ELSE mEND5.2存储函数1 .常量与变量1)常量(1)字符串常量字符串常量指用单引号或双引号括起来的字符序列。在MySQL中推荐使 用单引号。(2)数值常量数值常量可以分为整数常量和小数常量。(3)日期和时间常量日期和时间常量使用特定格式的字符日期值表示,用单引号括起来。如 (2018/07/17*、7018-07-17 10:30:20'。(4)布尔值常量布尔值只有true和false两个值,SQL命令运行结果用1代表true,用0代 表 falseo(5) NULL 值NULL值适用于各种字段类型,通常表示“不确定的值",NULL值参与 的运算,结果仍为NULL值。2)变量(1)局部变量的定义与赋值使用SET语句定义局部变量,并为其赋值。SET语句的语法格式如下:SET 局部变量名=表达式1,局部变量名=表达式2,【注意】SET语句可以同时定义多个变量,中间用逗号隔开即可。(2)局部变量的显示使用SELECT语句显示局部变量。SELECT语句的语法格式如下:SELECT 局部变量名,局部变量名,2)全局变量全局变量是MySQL系统提供并赋值的变量。用户不能定义全局变量,只 能使用。2 .语句块、注释和重置命令结束标记1)语句块BEGIN-END用于定义SQL语句块,其语法格式如下:BEGINSQL语句1 SQL语句块END2)注释(1)单行注释使用“#"符号作为单行语句的注释符,写在需要注释的行或语句后方。(2)多行注释使用/*和*/括起来可以连续书写多行的注释语句。3)重置命令结束标记DELIMITER语句的语法格式如下:DELIMITER 符号3 .存储函数X)存储函数的创建创建存储函数,需要使用CREATE FUNCTION语句,其语法格式如下:CREATE FUNCTION函数名(参数名参数数据类型RETURNS函数返回值的数据类型BEGIN函数体;RETURN 语句;END2)调用存储函数新创建的存储函数,调用方法与系统函数相同,其语法格式如下:SELECT函数名(参数值,)3)删除存储函数当不再需要某个存储函数时,可用DROP FUNCTION语句进行册IJ除,其语 法格式如下:DROP FUNCTION 函数名;5.3程序流程控制语句1) 条件判断语句1)程序中变量的使用(1)声明变量在存储程序(如存储函数、存储过程、触发器等)中需使用DECLARE语 句声明局部变量,其语法格式如下:DECLARE局部变量名,局部变量名,数据类型DEFAULT 默 认值;(2)为变量赋值声明变量后,可用SET命令为变量赋值,其语法格式如下:SET局部变量名=表达式局部变量名-表达式2,;2) IF语句(1)形式一IF条件THENSQL语句块1;ELSESQL语句块2;END IF;(2)形式二IF< 条件THENSQL语句块1;ELSEIF条件 2THENSQL语句块2;ELSESQL语句块n;END IF;3) CASE语句(1)形式一CASE表达式WHEN 表达式值1THEN SQL语句块1;WHEN 表达式值2> THEN SQL语句块2;WHEN 表达式值n> THEN SQL语句块n;ELSESQL 语句块 n+1;END;(2)形式二CASEWHEN 条件 1> THEN SQL 语句块 1;WHEN 条件 2> THEN SQL 语句块 2;WHEN 条件 nTHEN SQL 语句块 n;ELSE SQL 语句块 n+1;END;2.循环语句1) LOOP循环标签:LOOPSQL语句块;IF条件表达式,THENLEAVE标签;END IF;END LOOP;2) WHILE 循环WHILE条件表达式, DOSQL语句块;END WHILE;3) REPEAT 循环REPEATSQL语句块;UNTILE条件表达式,END REPEAT;【课程小结】本次课主要掌握MySQL下的常量、变量及常用的系统函数,使用程序控 制流语句实现存储函数。【课后自我总结分析】注重学生编程逻辑思维能力培养,分析问题的逻辑处理过程,并能用语句 编程解决实现。数据库原理与应用课程教案(第5章)授课方式 (请打J)理论课EJ讨论课口实践课口 习题课口 其他口课时 安排2教学单元(教学章、节或主题):第5章存储函数与存储过程(第4节+第5节)目的、要求(分了解、熟悉、掌握三个层次):1、了解存储过程的优点及游标的作用;2、掌握存储过程的创建及调用;3、掌握游标的使用步骤,通过游标实现对每条记录的不同操作。重点:1、存储过程的创建、调用及删除2、游标的定义与使用难点:带参数的存储过程的创建及调用;结合异常处理的游标应用。教学步骤:提问引起思考引入课程精讲课堂内容课堂小结布置作业教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等) 多媒体讲解、举例讲解作业和思考题:作业:课后习题三(2)练习:教材第5章课后习题思考题:存储过程和存储函数有哪些区别?教学内容(含时间分配)板书或旁注教学环节复习提问新课讲解课堂实践每课小结布置作业时间分配5681052第5章存储函数与存储过程【课程导入】问题:Select查询结果为一批记录,如何实现对查询结果逐条进行处理哪?【讲授内容】4存储过程1 .创建存储过程CREATE PROCEDURE 存储过程名()BEGIN过程体;END.调用存储过程CALL存储过程名();.存储过程的参数CREATE PROCEDURE 存储过程名(IN| OUT| INOUT参数1数据类型,IN| OUT| INOUT参数2 数据类型,)BEGIN过程体;ENDIN参数IN参数为输入参数,该参数值由调用者传入,并且只能够被存储过程读取。1) OUT参数OUT参数为输出参数,该类型的参数值由存储过程写入。OUT类型的参数适用 于存储过程向调用者返回多条信息的情况。2) INOUT 参数INOUT类型的参数同时具有IN参数和OUT参数的特性,在过程中可以读 取和写入该类型参数。3) 删除存储过程DROP PROCEDURE存6者过程名;5. 5游标L声明游标在存储程序中,声明游标与声明变量一样,都需要使用DECLARE语句, 其语法形式如下。DECLARE 游标名 CURSOR FOR SELECT 语句;【说明】1 1)声明游标的作用是得到一个SELECT查询结果集,该结果集中包含 了应用程序中要处理的数据,从而为用户提供逐行处理的途径。2 2 )SELECT语句是对表或视图的查询语句。可以带WHERE条件、ORDERBY或GROUP BY等子句,但不能使用INTO子句。3 .打开游标OPEN 游标名;游标必须先声明后打开。打开游标时,SELECT语句的查询结果就被传送 到了游标工作区,以便供用户读取。4 .提取数据FETCH游标名INTO 变量名1,变量名2;成功打开游标后,游标指针指向结果集的第一行之前。5 .关闭游标CLOSE游标名;游标一旦关闭,游标占用的资源就被释放,用户不能再从结果集中检索数 据,如果想重新检索,必须重新打开游标才能使用。6 .异常处理DECLARE错误处理类型HANDLER FOR错误触发条件自定义错误处 理程序;【说明】(1) 一般情况下,异常处理语句置于存储程序(存储过程或存储函数) 中才有意义;(2)异常处理语句必须放在所有变量及游标定义之后,所有MySQL表达 式之前;(3)错误处理类型。错误处理类型只有CONTINUE和EXIT两种, CONTINUE表示错误发生后,MySQL立即执行自定义错误处理程序,然后忽 略该错误继续执行其它MySQL语句。EXIT表示错误发生后,MySQL立即执 行自定义错误处理程序,然后立刻停止其它MySQL语句的执行。(4)错误触发条件。错误触发条件定义了自定义错误处理程序运行的时 机。错误触发条件的形式如下:SQLSTATE 'ANSI标准错误代码,1 MySQL错误代码1 SQLWARNING1 NOTFOUND1 SQLEXCEPION错误触发条件支持标准的SQLSTATE定义,也支持MySQL的错误代码; SQLWARNING表示对所有以01开头的SQLSTATE代码的速记; NOT FOUND表示对所有以02开头的SQLSTATE代码的速记; SQLEXCEPTION表示对所有没有被SQLWARNING或NOT FOUND捕获 的SQLSTATE代码的速记;(5)自定义错误处理程序。错误发生后,MySQL会立即执行自定义错误 处理程序中的MySQL语句。【课程小结】本次课主要掌握存储过程的创建、调用及删除,尤其需灵活掌握带参数的 存储过程的定义及使用。游标的声明、打开、读取、关闭过程,及使用异常处 理提高代码的鲁棒性。【课后自我总结分析】存储过程是开发时的常用重点内容。游标可以实现逐条