系统运维系列 之MySQL部分学习整理3
Posted 琅晓琳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统运维系列 之MySQL部分学习整理3相关的知识,希望对你有一定的参考价值。
1 存储过程
语法结构:
举例:
无参
CREATE PROCEDURE sql() SELECT VERSION();
调用:CALL sql();
有参
IN:
DELIMITER //(更改执行符号的命令)
参数与语句中的字段不要重复,不要重复!
如果p_id改成id,则会全部删除!
CREATE PROCEDURE removeCID(IN p_id UNSIGNED)
BEGIN
DELECT FROM class_type WHERE id = p_id;
END
//
调用:
CALL removeCID(10);
//
OUT:
CREATE PROCEDURE removeById(IN p_id INT UNSIGNED,OUT p_nums INT UNSIGNED)
BEGIN
DELECT FROM class_type WHERE id = p_id;
SELECT COUNT(id) FROM class_type INTO p_nums;
END
//
调用:
CALL removeById(10,@num);
SELECT @num;
//
@num相当于全局变量。
多个OUT:
区别:
存储过程可以返回多个值,功能更复杂,一般独立执行;
函数只能返回一个值,针对性更强,可以作为其它sql语句的组成部分出现。
2 JSON类型
CREATE TABLE json_tab(
id INT AUTO_INCREMENT PRIMARY KEY,
content JSON NOT NULL);
相关函数:
JSON_ARRAY_INSERT()应用于JSON_ARRAY();
JSON_INSERT()应用于JSON_OBJECT();
SELECT JSON_EXTRACT(content,’
.
i
c
p
′
)
F
R
O
M
j
s
o
n
t
a
b
;
等
价
于
:
S
E
L
E
C
T
c
o
n
t
e
n
t
−
>
′
.icp') FROM json_tab; 等价于: SELECT content->'
.icp′)FROMjsontab;等价于:SELECTcontent−>′.icp’ FROM json_tab;
SELECT JSON_CONTAINS(@a,‘2’,’$[2]’); 字段名,符号,位置
参考资料:
https://www.bilibili.com/video/BV19M4y1u7mF?p=35&spm_id_from=pageDriver 搭建mysql数据存储架构
以上是关于系统运维系列 之MySQL部分学习整理3的主要内容,如果未能解决你的问题,请参考以下文章