[java]JSON

Json

简介

json是一种轻量级的数据交换格式,全程为javaScript Object Notation (javaScript对象表示法)。它以易于阅读和编写的文本格式来表示结构化数据,常用于web应用程序之间的数据传输。
json由键值对组成:

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

对象,hashmap
对象: 属性:值
hashMap:键:值

  • 数组(Array):用方括号[]表示一个数组,数组是由多个值组成,值之间用逗号分隔

操作

1 创建json字段
在这里插入图片描述

2.插入数据

  • 数组:json_array(值1,值2,…)
  • 对象:json_object(键1,值1,键2,值2)

insert into class values(0,‘张三’,json_array(‘游泳’,‘骑车’),json_object(‘name’,‘李四’,‘age’,19))
在这里插入图片描述
3.查询

  • json_extract(字段名,“$.name”)
  • ->:字段名->“$.name”
  • json_keys(字段) 查询name

SELECT id,name,hobby,JSON_EXTRACT(nameb,‘$.name’) from class;

SELECT id,name,hobby,nameb->‘$.name’ from class;
在这里插入图片描述
select JSON_KEYS(nameb) from class
在这里插入图片描述

修改

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

update class set nameb=json_set(nameb,“$.name”,“小红”)where id = 1
在这里插入图片描述

update class set nameb=json_set(nameb,“$.age”,“79”)where id = 4
在这里插入图片描述

update class set
nameb=json_remove(nameb,“$.age”)where id = 5
(remove是删除)
在这里插入图片描述
5.函数搜索

  • json_contalns(字段,值)
  • json_contalns(字段,值, ‘$.key’)

select * FROM class WHERE JSON_CONTAINS(hobby,‘“骑车”’);

select * FROM class WHERE JSON_CONTAINS(nameb,‘“小红”’,‘$.name’)

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

视图

使法

1.创建

  • 格式
    create view v1_class as (select * from class)
    create view v2_class as (select id,name,hobby from class)
    create view v3_class(username,hobb) as (select name,hobby from class)
    create view v4_class as (select id,name,hobby from class WHERE JSON_CONTAINS(hobby,‘“看书”’ ));

2.查看

  • 可以在navicat直接查看

在这里插入图片描述

3.修改

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

CREATE OR REPLACE VIEW v5_class(nameds,hobbys) AS (SELECT name,hobby FROM class )

select * from pv1

  • alter view 视图名称 as sql语句

alter view v5_class(nameds) as(select name from class)

4.插入数据
和普通表插入的格式一样,但是视图改变也会将影响原来的表
insert into 视图名 () vlues ()

insert into v5_class(nameds) values (‘小明’)

5.删除数据
和普通表删除数据做法一样
delete from 视图名 where 条件

delete from v5_class where nameds=‘小明’

存储过程

案例

delimiter//
CREATE PROCEDURE class2(IN student_id INT,OUT student_name VARCHAR(255))
BEGIN
SELECT name INTO student_name FROM student WHERE id = student_id;
END//
delimiter;
调用存储过程,并将结果保存到@name变量中
CALL class2(10,@name);
查看存储过程返回的结果
SELECT @name;

SHOW PROCEDURE STATUS WHERE db = ‘xinzhi666’;
SHOW CREATE PROCEDURE class2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值