MySQL-快速入门(9)视图
1、什么是视图
视图是一个虚表。视图可以进行查询、增加、修改、删除。进行修改、增加、删除,将影响基本表中的数据。
2、视图相对基本表的优势
1》简单化:看到的就是想要的字段列,可以简化后续查询。
2》安全性:通过视图用户只能查询和修改他们所能看到的数据。
3》逻辑数据独立性:屏蔽基本表结构变化带来的影响。
3、创建视图
//1、algorithm表示视图选择的算法,undefined表示MySQL自动选择算法;merge表示将使用的视//图语句与视图定义合并起来,使得视图定义的某一部分取代语句对应的部分;temptable表示将//视图的结果存入临时表,然后用临时表来执行语句。//2、[with [cascaded | local] check option]表示视图在更新时保证在视图的权限范围之内//cascaded与local为可选参数,cascaded为默认值,表示更新视图时要满足所有相关视图和表//的条件;local表示更新视图时满足该视图本身定义的条件即可。//3、创建的视图默认属于当前数据库,如果要创建属于其他数据库的视图,则db_name.view_namecreate [or replace] [algorithm = {undefined | merge | temptable}] view view_name [(column_list)] as select_statement [with [cascaded | local] check option]
1》在单表上创建视图,可以给视图指定不同的字段名,创建的时候会与基本表对齐。
mysql> create view v_test as select * from test; Query OK, 0 rows affected (0.00 sec)mysql> select * from v_test; +----+-------+--------+--------+----------+------+ | id | name | deptId | salary | t_time | str | +----+-------+--------+--------+----------+------+ | 1 | Lucy | NULL | 1000 | 10:28:33 | NULL | | 2 | Lura | NULL | 1200 | 10:28:33 | NULL | | 3 | Kevin | NULL | 1500 | 10:28:33 | NULL | | 4 | Nancy | NULL | 1000 | 22:08:38 | NULL | | 5 | Bob | NULL | 1200 | 22:08:38 | NULL | +----+-------+--------+--------+----------+------+ 5 rows in set (0.01 sec)mysql> desc v_test; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int(10) | NO | | 0 | | | name | varchar(25) | NO | | NULL | | | deptId | int(11) | YES | | NULL | | | salary | float | YES | | NULL | | | t_time | time | YES | | NULL | | | str | varchar(4) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 6 rows in set (0.00 sec)mysql> desc test; +--------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+----------------+ | id | int(10) | NO | PRI | NULL | auto_increment | | name | varchar(25) | NO | | NULL | | | deptId | int(11) | YES | | NULL | | | salary | float | YES | | NULL | | | t_time | time | YES | | NULL | | | str | varchar(4) | YES | | NULL | | +--------+-------------+------+-----+---------+----------------+ 6 rows in set (0.00 sec)mysql>
2》在多表上创建视图,基本同单表的操作。
3》查看视图:权限show view;方法有describe、show table status、show create view、views表中查询视图信息。
1>describe / desc
describe / desc view_name;
2>show table status
show table status like 'view_name';
3>show create view
show create view view_name;
4>views表中查询视图信息
select * from information_schema.views;
mysql> select * from information_schema.views where table_name='v_test' \G *************************** 1. row ***************************TABLE_CATALOG: defTABLE_SCHEMA: mybatisTABLE_NAME: v_testVIEW_DEFINITION: select `mybatis`.`test`.`id` AS `id`,`mybatis`.`test`.`nam e` AS `name`,`mybatis`.`test`.`deptId` AS `deptId`,`mybatis`.`test`.`salary` AS `salary`,`mybatis`.`test`.`t_time` AS `t_time`,`mybatis`.`test`.`str` AS `str` f rom `mybatis`.`test`CHECK_OPTION: NONEIS_UPDATABLE: YESDEFINER: root@localhostSECURITY_TYPE: DEFINER CHARACTER_SET_CLIENT: gbk COLLATION_CONNECTION: gbk_chinese_ci 1 row in set (0.00 sec)mysql>
4、修改视图,两种方式
1》create or replace view
//与创建视图的语句格式一致create [or replace] [algorithm ={undefined | merge | temptable}] view view_name [(column_list)] as select_statement [with [cascaded | local] check option]
2》使用alter语句修改
alter [algorithm ={undefined | merge | temptable}] view view_name [(column_list)] as select_statement [with [cascaded | local] check option]
5、更新视图
1》insert
insert into view_name ...
2》delete
delete from view_name ...
3》update
update view_name set ...
当视图包含如下内容时,视图的更新操作将不能被执行:
1>>视图中不包含基表中被定义为非空的列。
2>>在定义视图的select语句后的字段列表中使用使用了数学表达式。
3>>在定义视图的select语句后的字段列表中使用聚合函数。
4>>在定义视图的select语句中使用了distict、union、top、group by或having子句。
6、删除视图
drop view [if exists]view_name [,view_name] ...[restrict | cascade]
转载于:https://www.cnblogs.com/ZeroMZ/p/11462750.html
MySQL-快速入门(9)视图相关推荐
- MySQL 快速入门教程
转:MySQL快速 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据 ...
- 阿里云rds for mysql平台介绍_阿里云RDS for MySQL 快速入门——笔记
1初始化配置 1.1设置白名单 创建RDS实例后,需要设置RDS实例的白名单,以允许外部设备访问该RDS实例.默认的白名单只包含默认IP地址127.0.0.1,表示任何设备均无法访问该RDS实例. 设 ...
- mysql rds云数据库_云数据库 RDS MySQL快速入门手册
云数据库 RDS MySQL是一款基于成熟云计算技术提供的高性能数据库服务,具有入门版.基础版.通用版.进阶版这四种,但最近有朋友表示,说自己并不会使用云数据库 RDS MySQL,为了帮助大家更好设 ...
- Mysql快速入门 在python、java使用
三分钟搞定Mysql数据库的安装 下载链接 链接:https://pan.baidu.com/s/1utfNkqgi2dG5NBiiaMgy3A 提取码:ahuf 用到的命令: mysqld --i ...
- 【第0天】MYSQL快速入门-了解MySQL存储引擎(SQL 小虚竹)
回城传送–><100天精通MYSQL从入门到就业> 文章目录 零.前言 一.什么是数据库引擎 二.MYSQL中有哪些数据库引擎 2.1.MyISAM 2.2.Memoey 2.3.I ...
- SQL快速入门 ( MySQL快速入门, MySQL参考, MySQL快速回顾 )
SQL 先说点废话,很久没发文了,整理了下自己当时入门 SQL 的笔记,无论用于入门,回顾,参考查询,应该都是有一定价值的,可以按照目录各取所需.SQL数据库有很多,MySQL是一种,本文基本都是SQ ...
- 数据库可视化工具 dbForge Studio for MySQL 快速入门以及进阶指导
dbForge是个很优秀的数据库可视化工具 目前是我用过唯一可以断点调试sql语句的软件 以下对dbForge的一些基本操作和进阶操作做个说明与记录 一.入门操作 1.连接数据库 2.当前连接信息面板 ...
- MySQL快速入门笔记
文章目录 1.数据库的基本操作 2.表的基本操作 3.数据操作 4.数据类型 5.列属性完整性 6.数据库设计思维 7.单表查询 8.多表查询 9.子查询 10.视图(view) 11.事务(tran ...
- mysql 快速入门_MySql快速入门
一.数据库基本概念 数据库:信息存储的仓库,包括一系列的关系措施! 表:一个数据库中可以有若干张表(形式上你可以看出我们日常生活中建立的表) 字段:表里面的信息会分若干个栏目来存,这些栏目呢,我们在数 ...
- mysql 快速入门,SOAR 101 快速入门指南
本文介绍了soar可以提供的功能以及一些使用场景,并给出相关用例. 上篇文章回顾: soar开源两周以来,在Github获得了社区2700+颗星的支持,这期间有很多的开源社区同学参与到soar的成长当 ...
最新文章
- ubuntu phpinfo mysql_Ubuntu 16.04 apache+php+mysql环境搭建
- STM32开发 -- UCOSII
- java程序语句的理解,[每日学习笔记][2012.07.10]使用Java理解程序逻辑(六)
- 为什么选择Dojo - 记Dojo中文博客正式开张
- Eclipse设置Courier New字体
- frc机器人比赛主题_RCC机器人比赛
- Java Web项目在Linux服务器自动化部署续-整合Bamboo
- 2012《Linux杂志》读者选择奖 (Readers' Choice Awards 2012- Linux Journal)
- java的继承实例_Java 继承方法实例详解
- android自定义软键盘-中文与英文大小切换
- IOS视频播放器的使用(MPMoviePlayerController)
- java web web.xml配置_web.xml配置详解
- PhpMyWind储存型XSS漏洞练习(CVE-2017-12984)
- 老男孩python2020年31期学习记录贴
- 灰色预测模型MATLAB代码及使用
- 在vue中使用element-ui 里面的按钮点击后显示加载中,防止重复提交
- 硬件开发之pcb---PCB抗干扰设计原则
- 【收藏向】电路(下) 思维导图 3小时不挂科(邱关源教材)
- 手机端H5页面判断是否横屏
- java五子棋难度设置_tiger(我) 用 java写简易五子棋游戏 上次没通过这次看看行不行...
热门文章
- 古代埃及希腊,数学用的什么进制
- 六石管理学:头目们为什么要忽略产品质量
- No package ‘libmatekbd‘ found
- WINDOWS搜索dll的路径顺序
- 修改配置文件,编译freeswitch支持H264
- 高铁:繁忙时限制上车补票
- 解决办法:RuntimeError: module compiled against API version 0xc but this version of numpy is 0xa
- 解决办法: error: passing ‘const VideoFrame’ as ‘this’ argument discards qualifiers [-fpermissive]
- gstreamer插件用不了,及黑名单Blacklist的解决办法
- php网站源码怎么在本地电脑调式,Windows 平台下配置ZendStudio调式PHP