MySQL的存储过程,触发器,索引,事务和日志

本文详细介绍了MySQL中的存储过程,包括其格式、参数传递方式、流程控制(如if/case、循环结构),以及游标、句柄等概念。此外,还涵盖了索引的种类、事务的特性与日志类型,如错误日志、二进制日志和慢查询日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、存储过程

1.格式

在这里插入图片描述
MySQL中还可以使用select…into语句为变量赋值
在这里插入图片描述

2.存储过程传参

1.in

in 表示传入的参数,可以传入数值或者变量,即使传入变量,并不会更改变量的值。可以内部更改,仅仅作用在函数范围内。
在这里插入图片描述

2.out

out表示从存储过程内部传值给调用者
在这里插入图片描述

3.inout

inout 表示从外部传入的参数经过修改后可以返回的变量,既可以使用传入变量的值也可以修改变量的值(即使函数执行完)
在这里插入图片描述

3.流程控制

1.条件判断

if

在这里插入图片描述

case

在这里插入图片描述

2.循环

  • 循环是一段在程序中只出现一次,但可能会连续运行多次的代码。
  • 循环中的代码会运行特定的次数,或者是运行到特定条件成立时结束循环
    循环分类:
    while
    repeat
    loop

    循环控制:
  • leave类似于break,跳出,结束当前所在的循环
  • iterate类似于continue,继续,结束本次循环,继续下次循环
1.while

在这里插入图片描述

2.repeat

在这里插入图片描述

3.loop

(如果没有 if 判断语句,则就是个死循环)
在这里插入图片描述

4.游标

游标(cursor)是用来存储查询结果集的数据类型,在存储过程和函数中可以使用光标对结果集进行循环的处理。光标的使用包括光标的声明,open,fetch和close。
在这里插入图片描述

5.句柄

MySQL存储过程提供对异常处理的功能:通过定义handler来完成异常声明的实现
在这里插入图片描述

6.存储函数

在这里插入图片描述

二、触发器

在这里插入图片描述

在这里插入图片描述

三、索引

1.普通索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.唯一索引

(在创建索引时加入个unique)
在这里插入图片描述

3.组合索引

  • 组合索引也叫复合索引,指的是我们在建立索引的时候使用多个字段,例如同时使用身份证和手机号建立索引,同样的可以建立为普通索引或者是唯一索引。
  • 复合索引的使用符合最左原则
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

4.空间索引

在这里插入图片描述

5.索引的原理

在这里插入图片描述

6.索引的特点

索引的优点

  • 大大加快数据的查询速度
  • 使用分组和排序进行数据查询时,可以显著减少查询时分组和排序的时间
  • 创建唯一索引,能够保证数据库表中每一行数据的唯一性
  • 在实现数据的参考完整性方面,可以加速表和表之间的连接。

索引的缺点

  • 创建索引和维护索引需要消耗时间,并且随着数据量的增加,时间也会增加
  • 索引需要占据磁盘空间
  • 对数据表中的数据进行增加,修改,删除时,索引也要动态的维护,降低了维护的速度

创建索引的原则

  • 更新频繁的列不应设置索引
  • 数据量小的表不要使用索引
  • 重复数据多的字段不应设为索引
  • 首先应该考虑对where和order by 涉及的列上建立索引

四、事务

查看事务为手动提交还是自动提交
在这里插入图片描述
设置事务为手动提交
自动提交时为 1;
在这里插入图片描述
在这里插入图片描述
事务的四大特性:
在这里插入图片描述
事务的隔离级别:
在这里插入图片描述

五、日志

1.错误日志

在这里插入图片描述

2.二进制日志

在这里插入图片描述
在这里插入图片描述

3.慢查询日志

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值