系统运维系列 之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的主要内容,如果未能解决你的问题,请参考以下文章

系统运维系列 之MySQL部分学习整理2

系统运维系列 之MySQL部分学习整理4

系统运维系列 之MySQL部分学习整理5

系统运维系列 之MySQL部分学习整理5

系统运维系列 之Clickhouse数据库学习集锦(接查询优化问题整理)

系统运维系列 之Clickhouse数据类型整理