Json和视图 存储过程

一.简介
1.含义:

JSON是一种轻量级的数据交换格式,全称为JavaScript Object Notation(JavaScript对象表示法)。它以易于阅读和编写的文本格式来表示结构化数据,常用于Web应用程序之间的数据 传输。

2.组成: Json由键值对组成

**对象(object):**用花括号{}表示一个对象 对象由多个键值对组成 键值对之间用逗号分隔

{“key1”:“value1”,“key2”:“value2”,“key3”:“value3”}

数组(Array):

用方括号[]表示一个数组 数组由多个值组成 值之间用逗号分隔

[“value1”,“value2”,“value3”]

二.操作流程

先创建Json字段

插入(增加)数据:

数组:json_array(值1,值2,…)

对象:json_object(键1,值1,键2,值2)

insert into person values (0,“速度”,json_array(“听歌”,“游戏”),json_object(“name”,“老孙”))

insert into 表名 values(值,json_array(值1,值2,…) ,

json_object(键1,值1)

查询数据:

json_extract(字段名,“$.key”) key:键

-> 字段名->“$.key”

json_keys(字段) 查询key

select id,username,hobby,json_extract(friend, “$.name”)from person

select 字段名1,字段名2,字段名3,json_extract(字段名,“$.key”)from 表名

select 字段名1,字段名2,字段名3,->"$.key"from 表名

select json_keys(字段) from 表名

修改

json_set(“字段”,“$.key”,值)

update 表名 set 字段=json_set(“字段”,“$.key”,修改后的值)where 条件

update 表名 set 字段=json_set(“字段”,“$.key”,需要添加的值) where 条件

json_remove(字段,key)

update 表名 set 字段=json_remove(字段,“$.key”)where 条件

搜索

json_contains(字段,值)

json_contains(字段,值,‘$.key’)

select *from 表名 where json_contains(字段,‘“值”’);

selete*from 表名 where json_contains(字段,‘“值”’,‘$.key’)

注意: 值需要另外加引号,否则报错

视图

1.创建视图 格式

create view 视图名称 as sql语句(可以是多表查询)
CREATE VIEW pv as select id,username,hobby,friend from person
CREATE VIEW pv1(uname,gf) as select username,friend from person
CREATE VIEW pv as select id,username,hobby,friend from person WHERE JSON_CONTAINS(hobby, ‘“游戏”’);

2.查看视图

navicat中直接查看

3.修改视图

create or replace view 视图名称 as sql语句

如果存在视图名称则修改视图,如果视图名称不存在,则新增视图

4.插入数据

和普通表插入的格式一样,但是视图改变也会将影响原来的表

insert into 视图名 () vlues ()

insert into pv1 (username,girlfriend,hb) VALUES (‘侯妈’,json_object(“name”,“a”),JSON_ARRAY(“听歌”,“下厨房”))

5.删除数据

和普通表删除数据做法一样

delete from 视图名 where 条件

6.删除视图

drop view if exists 视图名称;

注意: 当我们改变原表的时候,视图表中的内容也会发生改变。

存储过程

1.简介

存储过程是一组预先编译的SQL语句,被命名并存储在数据库中。它们通常由数据库管理员或开发人员编写,并可以包含控制结构(例如条件、循环等)和输入/输出参数。存储过程可以像函数一样被调用,但它可能不返回值,也可以返回多个结果集。

2.使用流程

1.创建存储过程DELIMITER //
CREATE PROCEDURE 存储过程起的名字([输入参数 | 输出参数|既是输入参数,又是输出参数,用于接收值并返回结果] 存储过程参数的名字 参数的数据类型。, …)
BEGIN
– 存储过程的SQL语句
END //
DELIMITER ;

​ 2.存储过程的调用

​ CALL 要调用的存储过程的名称 ([传递给存储过程的参数值, …]);

​ 调用存储过程,并将结果保存到@name变量中
​ CALL GetStudentNameById(10, @name);
​ 查看存储过程返回的结果
​ SELECT @name;

3.查看存储过程

​ SHOW PROCEDURE STATUS WHERE db = ‘数据库名称’;

​ SHOW CREATE PROCEDURE 存储过程的名称;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值