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

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


 一 . MySQL视图VIEWsql


1.视图简介shell

在MySQL中视图功能就比较相似于Exel中的筛选功能数据库

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

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

  

2. 建立视图ide

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

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

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

image.png

      

上述示例为单表视图 , 视图也能够建立多表视图 , 例 :

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

product表准备:

image.png

purchase表准备:

image.png

 建立多表视图 :

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相同的记录进行组合)

image.png


3. 查看视图

  • show  tables                    #视图名能够经过表名查看 , 由于本质它就是一张虚拟的表

  • show  table  status         #查看表的状态

        示例 : 查看书籍库test库中视图及全部表详细信息--->show  table  status  from  test\G

  • show  create  view          #查看视图定义信息

           示例 : show  create  view  视图名\G

  • desc                                  #查看视图结构

           示例 : 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表

image.png 

2.建立ad1存储过程

image.png

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

image.png


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

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


     本篇完 !

相关文章
相关标签/搜索