无名商城论坛

搜索
查看: 292|回复: 0

[其他技术] 【LSP】30道MySQL基础题

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 17:04:22 | 显示全部楼层 |阅读模式


什么是存储过程?
一条或多条sql语句集合,有以下一些特点:

存储过程能实现较快的执行速度。
存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。
存储过程可被作为一种安全机制来充分利用。
存储过程能够减少网络流量
delimiter 分隔符
create procedure|proc proc_name()
begin
    sql语句
end 分隔符
delimiter ;    --还原分隔符,为了不影响后面的语句的使用
--默认的分隔符是;但是为了能在整个存储过程中重用,因此一般需要自定义分隔符(除\外)

show procedure status like ""; --查询存储过程,可以不适用like进行过滤
drop procedure if exists;--删除存储过程
存储过程和函数好像差不多,你说说他们有什么区别?
存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。

相同点

存储过程和函数都是为了可重复的执行操作数据库的 SQL 语句的集合。

存储过程和函数都是一次编译后缓存起来,下次使用就直接命中已经编译好的 sql 语句,减少网络交互提高了效率。

不同点

标识符不同,函数的标识符是 function,存储过程是 procedure。

函数返回单个值或者表对象,而存储过程没有返回值,但是可以通过OUT参数返回多个值。

函数限制比较多,比如不能用临时表,只能用表变量,一些函数都不可用等,而存储过程的限制相对就比较少。

一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强

函数的参数只能是 IN 类型,存储过程的参数可以是IN OUT INOUT三种类型。

存储函数使用 select 调用,存储过程需要使用 call 调用。

总结一下
本文是 MySQL 系列的第二篇,以面试问答形式总结了一系列面试常见的基础知识点,都是非常基础的内容,但越是基础越显得重要。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表