视图、存储过程和新特性

一、什么是Json

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

        json由键值对组成:

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

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

二、操作

        1.创建json字段

        

      2.插入数据

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

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

        insert into person values (0,"老韩",json_array("听歌","游戏"),json_object("name","老孙"))

        

      3.查询

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

        -> 字段名->"$.key"

        json_keys(字段) 查询key

        select id,username,hobby,json_extract(friend,"$.name") from person; select id,username,hobby,friend->"$.name" from person;

        

        4.修改

         json_set("字段","$.key",值)

        update person set friend = json_set(friend,"$.name","侯妈") where id =1

        

        也可以添加属性

        update person set friend = json_set(friend,"$.age","18") where id =1

        

        json_remove(字段,key)

        update person set friend = json_remove(friend,"$.age") where id =1

         

       5.函数搜索

        JSON_CONTAINS (字段,值)

        JSON_CONTAINS (字段,值,'$.key')

        SELECT * FROM person WHERE JSON_CONTAINS(hobby, '"游戏"');

        SELECT * FROM person WHERE JSON_CONTAINS(friend,'"侯妈"','$.name')

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

 三、视图

       1.介绍

  • 视图概念:

    • 视图可以由数据库的一张或者多张表中的数据组成的,可以对视图中的数据进行增删改查操作,视图可以理解成一张虚拟表,当数据库表中的数据发生变化的时候,视图中的数据也跟着发生变化

    • 视图优点

      • 我们可以把经常用的数据放到视图中,无需关心视图对应的数据库表的结构,表之间的关联关系,也不需要关心表之间的业务逻辑,简化开发人员的操作

      • 增加数据的安全性,根据权限对用户进行数据访问的限制,将用户的访问之间限制在视图上,不用访问真实的数据表

        2.使用

                1.创建视图

        

                2.查看视图

                

        3.使用

                修改视图

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

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

create or replace  view pv1 (username,girlfriend,hb) as select username,friend ,hobby from person
select * from pv1

                插入数据

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

        insert into 视图名 () vlues ()

insert into pv1 (username,girlfriend,hb) VALUES ('侯妈',json_object("name","a"),JSON_ARRAY("听歌","下厨房"))

                删除数据

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

        delete from 视图名 where 条件

delete from pv1 where username='侯妈'

               删除视图

        drop view if exists 视图名称;

四、存储过程

        创建存储过程

DELIMITER //
CREATE PROCEDURE GetStudentNameById(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 GetStudentNameById(10, @name);
-- 查看存储过程返回的结果
SELECT @name;

        存储过程的调用

可以使用CALL语句来调用存储过程。调用存储过程时,需要提供传递给存储过程的参数。如果存储过程有输出参数,需要在调用存储过程之前声明这些参数。

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

        查看存储的过程

SHOW PROCEDURE STATUS WHERE db = '数据库名称';

SHOW CREATE PROCEDURE 存储过程的名称;

SHOW PROCEDURE STATUS WHERE db = 'json';
SHOW CREATE PROCEDURE GetStudentNameById

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值