学习笔记整理-数据库系统原理复习6-mysql编程基础、存储过程、函数、触发器

本文介绍了MySQL的编程基础,包括注释、变量的使用、流程控制结构。重点讲解了存储过程的概念、优势及组成部分,如何创建、修改和执行存储过程,并涉及带游标的存储过程操作。此外,还提到了函数的分类和自定义函数的创建与使用。最后,讨论了触发器的功能、类型及其在数据管理中的作用。

以下内容为个人的学习笔记整理,如有错误,请指出,谢谢~


一、mysql编程基础

1、注释:#单行、/**/多行

2、定义局部变量(只能在begin/end之间用):declare

3、赋值方式:set age =18;

4、用户变量:mysql中用户变量不需要提前声明,用的时候直接@变量名就可以。其作用域为当前连接。0f0cfac59fdc4bf3add30ed8aa66fd20.pngdb441d4873dc46e6b3585c9a27af64a2.png

 5、流程控制命令:
①if:
217a47ff95ac419584af665f0cabdfb0.png

 ②case:
34e1715c51614c50974565f85ebf1c50.png

③循环:
 f12e1c1a8db74098b0d4af469f76b876.png

二、存储过程

1、存储过程是一组为了完成特定功能的SQL语句集
①优点:模块化程序设计、高效率的执行、减少网络流量、可作为安全机制使用
②存储过程的分类:系统存储过程、用户自定义存储过程

2、存储过程由三个部分组成:
①所有输入的参数以及传给调用者的输出参数。
②被执行的针对数据库的操作语句,包括调用其他存储过程的语句。
③返回给调用者的状态值以指明是否成功。
create procedure创建存储过程。

3、存储过程:
ef68e959a74246c1a1cc5fee19fcdbb2.png

4、带游标的存储过程:
①游标是存放结果集的数据对象,是一种能从包括多条数据记录的结果集中每次提取一条记录操作的机制。存储过程中经常会使用到游标,通过游标可以定位到结果集的某一行,并对该行数据进行特定的操作。
②步骤:声明游标(declare 游标名 cursor for)-打开游标(open 游标名)-从游标中读取数据(fetch 游标名)-关闭游标(close 游标名)

7c17f3693b4f4d9a81f800013d6ea5e2.png

7c6afb89f6ed41aaaf8c87766327a0e2.png

 5、修改存储过程:mysql只能通过alter语句修改存储过程的特征不能修改存储过程体的内容,如需要修改存储过程体,要先删除再重新创建。
删除存储过程:drop procedure 存储名

6、查看存储过程:show procedure status;

7、执行存储过程:call 存储名(传参)

三、函数

1、函数是完成特定功能的sql语句,函数分为内部函数自定义函数

2、自定义函数是由一条或者多条sql语句组成的程序,用于代码封装重复使用。
①可以有0或多个参数。
②必须有且只有一个返回值

3、自定函数创建:
e37c97b273fb403bb2cbfea68ba688ba.png

使用自定义函数:select 函数名(传参);
查看自定义函数:show create function 函数名;
删除自定义函数:drop function 函数名;

四、触发器

1、触发器是一种特殊类型的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程的名字而被直接调用。
①名称:触发器有一个符合标识符命名规则的名称。
②定义的目标:触发器必须定义在表或者视图上。
③触发事件:是update/insert/delete语句。
④触发逻辑:触发之后如何处理。

2、触发器:
①种类:after触发器before触发器
②作用:强化约束、跟踪变化、级联运行和能够找出某一表在数据修改前后状态发生的差异
③缺点:性能稍欠缺。

3、触发器的创建:create trigger 触发器名 触发器时间(after/before) 触发事件(update/insert/deleteon 表明 for each row
例子:在图书管理系统中,若删除书籍信息(bookinfo 表)时,需同时删除所有该书籍的借阅信息(BookLended 表)。创建一个触发器tr_delb,需实现上述功能。
33d360ce3e7d477c98c41599c2f33bbd.png

 4、查看触发器:show triggers;
删除触发器:drop trigger 触发器名
 

 

关系数据库 关系数据库概述 美国IBM公司的E.F.Codd 1970年提出关系数据模型 关系数据库应用数学方法来处理数据库中的数据 典型的实验系统: System R、University INGRES 典型的应用系统: ORACLE、SYBASE、INFORMIX、IBM DB2 关系数据模型 关系模型的数据结构非常简单,只包含单一的数据结构即关系。(我们称为二维表) 二维表格(包含 行和列。每一列的第一行为该列的属性) 基本术语: 表(Table)也称为关系,是一个二维的数据结构,它由表名、构成表的各个列(如学号 、姓名等)及若干个行数据(各个学生的具体信息)组成。每个表有一个唯一的表名, 表中每一行数据描述一条具体的记录值,如一个学生的基本信息。 关系(Relation)一个关系逻辑上对应一张二维表,可以为每个关系取一个名称进行标 识。 列(Column)表中的列,也称作字段(Field)或属性(Attribute)。表中每一列有一 个名称,称为列名、字段名或属性名,每一列表示实体的一个属性,具有相同的数据类 型 属性(Attribute)表中的一列即为一个属性,给每个属性起一个名称即属性名。之同 义的术语是"列"。表中属性的个数称为关系的元或度。列的值称为属性值;属性值的取 值范围称为值域。 行(Row)表中的行也称为元祖(Tuple)或记录(Record) 元祖(Tuple)表中的一行即为一个元祖。 分量(Component)元祖中的一个属性值,称为分量 码或键(Key)如果在一个关系中,存在这样的属性(或属性组),使得在该关系的任何 一个关系状态中的两个元祖,在该属性(或属性组)上值的组合都不相同,即这些属性 (或属性组)的值都能用来唯一标识该关系的元祖,则称这些属性(或属性组)为该关 系的码或键 超码或超键(Super Key)如果在关系的一个码中移去某个属性,它仍然是这个关系的码,则称这样的码或键 为该关系的超码或超键。 候选码或候选键(Candidate Key)如果在关系的一个码或键中,不能从中移去任何一个属性,否则它就不是这个关系 的码或键,则称这样的码或键为该关系的候选码或候选键。 码:1、超码、候选码。候选码并不是码,还有超码 主码或主键(Primary Key)在一个关系的若干个候选码或候选键中指定一个用来唯一标识关系的元祖,则称这 个被指定的候选码或候选键为该关系的主码或主键。 全码或全键(All- Key)一个关系模式的所有属性集合是这个关系的主码或主键,则称这样的主码或主键为 全码或全键 主属性(Primary Attribute)和非主属性(Nonprimary Attribute)关系中包含在任何一个候选码中的属性称为主属性或码属性,不包含在任何 一个候选码中的属性称为非主属性或非码属性 外码或外键(Foreign Key)当关系中的某个属性(或属性组)不是这个关系的主码或候选码,而是另一关系的 主码时,称该属性(或属性组)为这个关系的外码或外键 参照关系(Referencing Relation)和被参照关系(Referenced Relation)参照关系也称为从关系,被参照关系也称为主关系,它们是指以外码相关联 的两个关系。以外码作为主码的关系称为参照关系;外码所在的关系称为参照关系。被 参照关系参照关系是通过外码相联系的,这种联系通常是一对多的联系 域(Domain)表示属性的取值范围 数据类型(Data Type)表中每个列都有相应的数据类型,它用于限制(或容许)该列中存储的数据。每 个字段表示同一类信息,具有相同的数据类型。 关系模式(Relation Schema)同数据模型一样,数据库也有"型"(Type)和"值"(value)之分。在关系数据 库中,关系模型是型,关系是值,即关系模式是对关系的描述。关系模式是静态的、稳 定的,而关系是动态的、随时间不断变化的。 例子:名(值1,值2,值3) 关系数据库(Relation DataBase)是以关系模型作为数据的逻辑模型,并采用关系作为数据组织方式的一类数 据库,其数据库操作建立在关系代数的基础上。 表关系(1:1,1:N,N:M) 基本的关系操作 查询 选择、投影、连接、除、并、交、差、笛卡尔积 数据更新 插入、删除、修改 查询的表达能力很强、是其中最主要的部分 关系操作的特点 集合操作方式,即操作的对象和结果都是集合。 关系数据语言的分类 关系操作的能力可以用两种方式来表示:代数方式和逻辑方式。 代数方式主要有关系代数,它是通过对关系的操作表达查询要求的方式。 逻辑方式主要有关系演算,它是用谓词来表达查询要求的方式。 具有关系代数和关系演算双重特点的语言(典型代表SQL) ---------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aure_xl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值