mysql的视图使用
一般 项目中很少用到视图 并不是因为视图不好
一个 大部分web使用框架建站 查询语句不用原生的 或者很少 也就很少需要用视图来简化和管理了
2个 一般网站应用规模也比较小 也不会采用 视图来进行管理 而且视图对 技能要求也稍微一点
视图的几个优点
1.简化操作 减少sql的复杂性
2, 有一定的逻辑独立性 视图我们可以看做一个虚拟表如果其他的操作是在视图上进行 如果 需要进行数据库的某些调整的话 我们只需要把视图改下 并不需要改使用视图的操作
3, 视图可以控制权限 有一定的安全性
4,视图可以更好的表达意思
首先查看用户权限
mysql> select select_priv,create_view_priv from mysql.user where user='root'
-> ;
+-------------+------------------+
| select_priv | create_view_priv |
+-------------+------------------+
| Y| Y|
+-------------+------------------+
1 row in set (0.00 sec)
没有权限 就
mysql> grant create view on test.* to root@localhost;
Query OK, 0 rows affected (0.00 sec)
创建视图视图名唯一 不可跟表名重复
mysql> create view test_test1(name) as select name from test_function;
Query OK, 0 rows affected (0.03 sec);
然后查看
【mysql的视图使用】mysql> select * from test_test1
-> ;
+--------+
| name|
+--------+
| 2321|
| 213|
| 321321 |
+--------+
3 rows in set (0.00 sec)
我们插入 源表
mysql> insert into test_function (name,function_name,moudle_id) value(1,2,2);
Query OK, 1 row affected (0.04 sec)、
然后再次查询 视图
mysql> select * from test_test1;
+--------+
| name|
+--------+
| 2321|
| 213|
| 321321 |
| 1|
+--------+
4 rows in set (0.00 sec)
就会新加一条
视图的话 不可以与视图进行联结 可以与其他表联结 索引的话都是跟普通表查询一样的 会差生作用
mysql> select a.name,b.name from test_test1 a join test_admin b on a.name=b.name
;
+------+------+
| name | name |
+------+------+
| 2321 | 2321 |
+------+------+
1 row in set (0.00 sec)
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量