当前位置: 首页 > news >正文

MySQL——存储过程、索引

一、存储过程

1、存储过程使用的场景

例如:有一个购物网站,要验证查询商品的性能,测试之前肯定要准备大量的测试数据,如果是通过 执行 insert 语句一条一条进行插入,效率很低。这种情况下,写一个存储过程来实现造数据。

2、存储过程的定义

存储过程就是数据库中的一段SQL代码。

3、使用存储过程的步骤

  • 先创建存储过程;
  • 调用存储过程(与调用python中的函数(例如:print、input等)是一样的)。

4、如果只是创建了存储过程,不调用存储过程不执行。

5、创建存储过程

语法:

delimiter  $$

create  procedure  存储过程的名称(参数)

begin

存储过程体

end  $$

delimiter ;

6、调用存储过程

语法:call 存储过程的名称(参数);

 7、删除存储过程 

语法:drop  procedure  存储过程的名称;

8、存储过程的变量

(1)局部变量

局部变量的定义:

方法一:定义变量的同时给变量赋值了

declare  变量名  数据类型  default  默认值; 

方法二:先定义变量,后赋值

declare  变量名  数据类型;

set  变量名  =  ;

什么是局部变量?

定义的变量只能在局部范围内使用,MySQL中的局部变量只能在存储过程内使用(在 begin 和 end 中间使用),出了存储过程就无法使用。在存储过程外部使用局部变量,是无法使用的。

(2)用户变量对应于python中的全局变量

定义:用户变量不需要事先声明,MySQL会自动根据值来确定类型。这种变量在使用时一定要在变量名前面加上一个@符号。

用户变量的作用范围:这个会话有效,不管在存储过程内部还是存储过程外部都可以使用。

9、使用select语句赋值

指的是把从某一张表中查询出来的数据赋值给某一个变量。

语法:select  列名1, 列名2  into  变量1, 变量2  from  表名  where  条件;

注意事项:

  • into前面的列的数量要与into后面变量的数量要一致。
  • where条件只能查询出来一行数据,否则无法赋值。

10、存储过程中的参数

(1)in参数(入参)

创建一个带有in参数的存储过程:

语法:

delimiter $$

create  procedure  存储过程的名称(in 参数名 数据类型)

begin

select  *  from 表名  where  列名  比较运算符  in  参数的名称; 

end $$

delimiter ;

(2)out参数(出参)

out参数类似于python中的返回值(return)。

创建带有out参数的存储过程:

语法:

delimiter $$

create  procedure  存储过程名称(out 参数名 数据类型)

begin

Select  列名  into  参数名  from  表名  where  条件;

end $$

delimiter ;

调用带有out参数的存储过程:

语法:

call  存储过程名称(@用户变量名称);

select  @用户变量名称;

11、if分支结构

语法:

if  条件表达式  then

分支语句1;

else

分支语句2;

end  if;

12、case多分支结构

语法:when的作用相当if,用来做条件的判断的。

else可以省略,如果when语句已经把所有的条件都覆盖了,此时就可以不写else

语法:

case

when  条件表达式1  then  分支语句1;

when  条件表达式2  then  分支语句2;

......

when  条件表达式n  then  分支语句n;

else  分支语句;

end  case;

13、循环结构

(1)while循环

语法:

while  条件表达式  do

循环语句;

end  while;

while循环执行的过程:
  • while循环每次循环开始时,先判断条件表达式是否成立;
  • 如果条件成立,就执行循环语句;
  • 如果条件不成立,循环就结束了。

(2)repeat循环

语法:

repeat 

循环语句;

until  条件表达式

end  repeat;

repeat循环执行的过程:
  • repeat先执行一次循环,然后再判断条件表达式是否成立;
  • 如果条件成立,循环就结束了;
  • 如果条件不成立,继续循环。

二、索引

1、索引的定义

索引是用来帮助MySQL高效率查询数据的一种数据结构。可以把索引理解为书的目录。索引一般用于数据量非常大的表中。

2、索引的优缺点

优点:帮助用户提高查询效率。

缺点:占用存储空间,降低插入数据的效率。

3、通过索引字段和非索引字段进行查询效率的比较。主键就是主键索引,所以,主键就是索引字段。外键也是索引。

相关文章:

  • 网站单页在线制作微信小程序
  • 北京微信网站制作费用hyein seo官网
  • 欧美男女做黄色网站广州网站关键词排名
  • 筑巢网络官方网站南宁关键词优化软件
  • 凡科是免费做网站吗seo的培训班
  • 合肥城乡建设网站seo优化总结
  • 融智学三大定律:打开人机协同智慧大门的钥匙
  • 深度分页及优化建议
  • 【前端】【难点】前端富文本开发的核心难点总结与思路优化
  • 飞书集成衡石ChatBot实战:如何10分钟搭建一个业务数据问答机器人?
  • 期望理论解析
  • MCP基础学习三:MCP客户端开发与工具集成
  • linux系统编程里面的嵌套锁
  • 强化学习算法系列(二):Model-Free类方法——蒙特卡洛算法(MC)和时序差分算法(TD)
  • Linux 多线程
  • K_KMS工具(适用windows和office)
  • Xcode警报“Ignoring duplicate libraries: ‘-lc++’” 警报
  • A2L文件解析
  • 详解springcloud nacos使用
  • 基于单片机技术的手持式酒精检测电路设计
  • RAG的实现快速示例
  • Redhat红帽 RHCE8.0认证体系课程
  • Python进阶(2):函数
  • 移动端六大语言速记:第13部分 - 网络与通信
  • LLM介绍
  • 玩转代理 IP :实战爬虫案例