文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql(6)-mysql的视图功能和存储过程

2024-04-02 19:55

关注

       本篇博客介绍的mysql的视图功能和存储过程以及它们的作用和实例说明 !


 一 . MySQL视图VIEW


1.视图简介

在MySQL中视图功能就比较类似于Exel中的筛选功能

通俗理解就是将一张表中经常要查询的列和记录创建成一张虚拟的表 , 其实viewer视图中存放的是select语句 . 视图中看到的数据会随着原始表格的更新而动态更新 .

定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少.
视图是存储在数据库中的SQL查询语句,它主要出于原因有: 安全原因,视图可以隐藏一些数据,如:一些敏感的信息使复杂的查询易于理解和使用。

  

2. 创建视图

语法 : CREATE [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE} ]  
          VIEW 视图名 [(字段1,字段2…)]
          AS  SELECT语句
          [WITH [CASCADED | LOCAL] CHECK OPTION ];

示例 : 创建一个名为view_user 的视图 , 功能为查询mysql库中的user表中的user , host , password 字段信息

CREATE VIEW view_user AS SELECT user,host,password FROM mysql.user;

mysql(6)-mysql的视图功能和存储过程

      

上述示例为单表视图 , 视图也可以创建多表视图 , 例 :

在test库中创建两张表 ,一张产品表product , 用来存放商品名字和对应的价格 ; 一张采购purshase表 , 用来存放产品信息和数量

product表准备:

mysql(6)-mysql的视图功能和存储过程

purchase表准备:

mysql(6)-mysql的视图功能和存储过程

 创建多表视图 :

mysql> create view purchase_detail 
        as select
        product.name as name, product.price as price, 
        purchase.quantity as quantity, 
        product.price * purchase.quantity as  total_value
        from product,purchase
        where product.name = purchase.name;      #等值连接(即name相同的记录进行组合)

mysql(6)-mysql的视图功能和存储过程


3. 查看视图

           示例 : show  create  view  视图名\G

           示例 : desc  视图名


4. 修改视图

方法一 : 直接删除视图再新建视图

方法二 : alter修改视图

       语法:

             ALTER VIEW 视图名
             AS  SELECT语句;
       示例:
            ALTER VIEW view_user
            AS  SELECT user,password FROM mysql.user;


5. 删除视图

语法 : DROP VIEW view_name




 二 . MySQL存储过程

     

作用 : 定义数据存储过程 , 存储过程中允许对库 , 表 , 记录做增删改查等操作 , 类似于shell中的函数作用


简介:

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。


语法:

        create  procedure  存储过程名()

        BEGIN

             一定功能的sql语句集

        END


        call  存储过程名();           #调用存储过程

实例 :

要求 :      

创建一个名称为dba的库文件,在dba库中创建一张名称为tb1的表,表中有id、name这两个字段。创建一个名称为ad1的存储过程,ad1存储过程的功能是插入三条记录到tb1表中。

1.步骤 , 创建tb1表

mysql(6)-mysql的视图功能和存储过程 

2.创建ad1存储过程

mysql(6)-mysql的视图功能和存储过程

 3.查看tb1表后调用存储过程 , 在次查看tb1表看看有什么不同

mysql(6)-mysql的视图功能和存储过程


存储过程(procedure)和函数(function)的主要区别:

存储过程是针对表中的数据记录进行处理的SQL语句集合,就类似于shell脚本。
函数通常是针对记录中的某个字段的值进行处理。


     本篇完 !





             

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯