本篇博客介绍的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;

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

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

product表准备:

purchase表准备:

创建多表视图 :

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

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表

2.创建ad1存储过程

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

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

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

本篇完 !

转载于:https://blog.51cto.com/14181896/2364041

mysql(6)-mysql的视图功能和存储过程相关推荐

  1. mysql语句:索引,游标,存储过程,视图,分区,分库分表,数据库集群,数据库负载均衡...

    为什么80%的码农都做不了架构师?>>>    学会数据库是很实用D~~记录一些常用的sql语句...有入门有提高有见都没见过的...好全...收藏下... 其实一般用的就是查询,插 ...

  2. day29 | 黑马程序员Java全程笔记 | 第二阶段MySQL高级事务-索引-视图-触发器-存储过程

    目录 01.反馈 02.回顾 03.并发访问MySQL-问题概述 并发访问的问题 04.并发访问MySQL-问题演示 05.并发访问MySQL-read-committed解决脏读问题 06.并发访问 ...

  3. mysql视图管理和存储过程

    视图 虚拟表 视图限制: 1.不能创建索引 不能使用子查询 包含聚合函数的视图是不可更新的 create view 视图名称 as sql查询 create view 视图名称(字段名列表) as s ...

  4. MySQL基础(三):视图、存储过程、事务与索引

    一:视图 视图是虚拟的表: 它们包含的不是数据而是根据需要检索数据的查询: 视图提供了一种封装SELECT语句的层次,可用来简化数据处理以及重新格式化基础数据或保护基础数据. 视图的作用: 1,重用S ...

  5. Mysql的索引、视图、触发器、存储过程

    文章目录 一.Mysql的索引 (1)什么是索引 (2)索引的作用 (3)索引原理 (4)磁盘IO与预读 (5)索引的数据结构-B+树 (6)索引分类 (7)索引的两大类型 (8)创建.删除索引 -创 ...

  6. mysql如何在if中设置return_mysql 存储过程 if return

    MySql存储过程 MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程, ...

  7. mysql 5.6物化视图_mysql实现物化视图详解及视图与物化视图区别

    再一次sql优化中一个select count(*)语句因数据量实在太大,已经无法从简单的索引什么进行优化了,在同事的推荐下考虑到了物化视图 物化视图是相对于视图而言的,但是两者实际上并没有什么关系就 ...

  8. mysql query browswer_MySQL数据库新特性之存储过程入门教程

    MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...

  9. mysql 删除视图 命令_在MySQL中,删除视图使用(????)命令。

    在MySQL中,删除视图使用(????)命令. 答:DROP 设计的优点之一就在于其在命令执行上的刚性 答:职能式 4月15日作业 答:笔记 喘证的主要临床特征是 答:呼吸急促,甚至张口抬肩,鼻翼煽动 ...

  10. Mysql基础运用(视图,变量,存储,流程控制)

    前要:结尾彩蛋 目录 一.视图 1.视图概述 2.创建视图 1)语法格式 2)视图示例 3.修改视图 1)语法格式 4.查看视图 5.删除视图 二.变量 1.变量分类 1)局部变量 2)用户变量 3) ...

最新文章

  1. 膨胀腐蚀操作(MATLAB)
  2. 操作系统中,进程与线程怎么设计的?
  3. 首次使用计算机鼠标键盘不能用,解决方案:如何解决无法使用计算机鼠标和键盘的问题?如果启动后无法使用鼠标和键盘该怎么办?...
  4. python strip_Python3 strip()方法
  5. python将姓王的都改成老王_Python老王视频习题答案
  6. python gui界面启动脚本、点击按钮执行脚本_如何使用PyQt在按钮单击上调用python脚本...
  7. http 和 https_HTTPS与HTTP区别
  8. 5分钟能回答的人,年薪25万美金以上
  9. JAVA不同类型数组重载_方法的重载;数组 (Java Day05)
  10. yum install -y iptraf 显示找不到命令
  11. element ui需要引入样式吗_彻底学会element-ui按需引入和纯净主题定制
  12. linux_manjaro常用软件安装
  13. java ee是编程语言_什么是Java编程语言?
  14. 【CV】如何使用Tensorflow提供的Object Detection API --1--使用预训练模型
  15. php中用div句子给背景图片添加文字,PHP给图片添加文字水印实例
  16. ie11不兼容 html编辑器,ewebeditor编辑器已经不能兼容IE11
  17. 国土防线2计算机内存不足,国土防线2革命配置要求高吗?PC配置要求介绍
  18. lly的瞬移方块(并查集)
  19. 从 Secure Element 到 Android KeyStore
  20. 这没啥挑的,全新java前后端开发需掌握的框架及技术

热门文章

  1. kvm系列之四:热添加技术
  2. RIDE的底部的日志没显示处理
  3. JQuery淡入淡出 banner切换特效
  4. ASP.Net本地化/国际化解决方案原理和代码示例
  5. asp.net服务器控件开发-学习之路(一)
  6. 孙燕姿:(Hello, I'm Stefanie...)
  7. 深度梯度压缩:减小分布式训练的通信带宽
  8. [洛谷5463]小鱼比可爱
  9. jumpserver跳板机docker安装小小趟坑
  10. Hbase启动hbase shell运行命令报Class path contains multiple SLF4J bindings.错误