MySQL视图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL视图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3156字,纯文字阅读大概需要5分钟。
内容图文
![MySQL视图](/upload/InfoBanner/zyjiaocheng/898/ec4001524bc944078e8b8e118e6c5374.jpg)
视图:是一张虚拟的表,它也可以作为select 语句的数据源,在某些特定条件下可以通过视图对表进行操作。视图中的数据不像表和索引那样占用空间。视图中仅仅保存的是一条select语句。
视图的作用:
-
使操作变得简单:对结构复杂的select语句,可以将其封装为一个视图。
-
避免数据冗余:由于视图保存的是一条select语句。所有的数据保存在数据库表中,这样可以由一个表或多个表派生出来多种视图,为不同的应用程序提供服务的同时,避免了数据冗余
-
增强数据安全性:可以为不同用户分配不同视图,可以实现不同的用户只能查询或修改与之对应的数据。
创建视图:create view 视图名称[(视图字段列表)] as select 语句
删除视图:drop view 视图名称
mysql> select * from user;
+----+--------+--------+--------+
| id | name | gender | stu_no |
+----+--------+--------+--------+
| 1 | 张三 | M | 1 |
| 2 | 李四 | F | 2 |
| 3 | bob | M | 4 |
| 4 | 王五 | M | 1 |
| 5 | alias | M | 6 |
+----+--------+--------+--------+
5 rows in set (0.00 sec)
mysql> select id,name,gender from user;
+----+--------+--------+
| id | name | gender |
+----+--------+--------+
| 1 | 张三 | M |
| 2 | 李四 | F |
| 3 | bob | M |
| 4 | 王五 | M |
| 5 | alias | M |
+----+--------+--------+
5 rows in set (0.00 sec)
mysql> create view demo as select id,name,gender from user;
Query OK, 0 rows affected (0.04 sec)
mysql> select * from demo;
+----+--------+--------+
| id | name | gender |
+----+--------+--------+
| 1 | 张三 | M |
| 2 | 李四 | F |
| 3 | bob | M |
| 4 | 王五 | M |
| 5 | alias | M |
+----+--------+--------+
5 rows in set (0.10 sec)
普通视图:默认create view创建的都是普通视图
通过普通视图修改原表
mysql> insert into demo values(6,'john','F');
Query OK, 1 row affected (0.00 sec)
mysql> select * from user;
+----+--------+--------+--------+
| id | name | gender | stu_no |
+----+--------+--------+--------+
| 1 | 张三 | M | 1 |
| 2 | 李四 | F | 2 |
| 3 | bob | M | 4 |
| 4 | 王五 | M | 1 |
| 5 | alias | M | 6 |
| 6 | john | F | NULL |
+----+--------+--------+--------+
6 rows in set (0.00 sec)
检查视图:创建视图时使用"with [local|cascaded] check option"
mysql> create view demo1 as select * from user where id < 5 with local check option;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from demo1;
+----+--------+--------+--------+
| id | name | gender | stu_no |
+----+--------+--------+--------+
| 1 | 张三 | M | 1 |
| 2 | 李四 | F | 2 |
| 3 | bob | M | 4 |
| 4 | 王五 | M | 1 |
+----+--------+--------+--------+
4 rows in set (0.10 sec)
#这时视图具有检查功能,不满足where子句要求,检查视图抛出异常。
mysql> insert into demo1 values(6,'abc','F',1);
ERROR 1369 (HY000): CHECK OPTION failed 'student.demo1'
local与cascade检查视图
创建试图使使用with check option或with csacaded check option子句时表示该视图为cascaded视图。使用with local check option时为local视图
-
local视图:通过检查视图对表进行操作时,只有满足了检查视图条件的语句才能够执行。
-
cascade视图(级联视图,在视图的基础上再次创建另一个视图):满足所有视图的检查条件的语句才会执行。
内容总结
以上是互联网集市为您收集整理的MySQL视图全部内容,希望文章能够帮你解决MySQL视图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。