数据库对象--视图

1、什么是视图:

view视图可以理解为一张表,一张特殊的表,当我们有一些私密信息不想让其他人看到时,我们可以创建一张这样的表。
注意:视图并不能加快查询速度,视图并不是一张表,视图并不储存任何数据
目的:为了解决安全性问题(查询的仅仅是脱敏数据),操作方便而已

mysql> select * from sanguoyanyi;
+----+-----------+-----+------+-----------------+-----------+
| id | name      | sex | age  | address         | passwd    |
+----+-----------+-----+------+-----------------+-----------+
|  1 | 刘备      | 男  |   50 | 陕西渭南        |    123456 |
|  2 | 周瑜      | 男  |   33 | 江东            |    125556 |
|  3 | 关羽      | 男  |   38 | 河北涿郡        | 124585545 |
|  4 | 张飞      | 男  |   35 | 宁夏吴忠        |    154855 |
|  5 | 诸葛亮    | 男  |   23 | 南阳            |    986518 |
|  6 | 赵云      | 男  |   29 | 河北石家庄      |    984418 |
|  7 | 貂蝉      | 女  |   18 | 陕西西安        |    444418 |
|  8 | 小乔      | 女  |   18 | 江苏杭州        |    446988 |
|  9 | 马超      | 男  |   35 | 西凉            |    635558 |
| 10 | 魏延      | 男  |   34 | 湖南长沙        |    635448 |
| 11 | 黄忠      | 男  |   62 | 湖南长沙        |     63888 |
| 12 | 张辽      | 男  |   26 | 内蒙            |     63888 |
+----+-----------+-----+------+-----------------+-----------+
12 rows in set (0.00 sec)

当我们不想让别人看到我们的家庭住址和银行卡密码时,
我们可以这样做…

2、创建视图:

create view 视图名称 as (查询语句)
create
view v_user as
select name,sex,age from sanguoyanyi;

mysql> create
    -> view v_user as
    -> select name,sex,age from sanguoyanyi;
Query OK, 0 rows affected (0.07 sec)

mysql> desc v_user;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | YES  |     | NULL    |       |
| sex   | char(2)     | NO   |     | NULL    |       |
| age   | int         | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.14 sec)

mysql> select * from v_user;
+-----------+-----+------+
| name      | sex | age  |
+-----------+-----+------+
| 刘备      | 男  |   50 |
| 周瑜      | 男  |   33 |
| 关羽      | 男  |   38 |
| 张飞      | 男  |   35 |
| 诸葛亮    | 男  |   23 |
| 赵云      | 男  |   29 |
| 貂蝉      | 女  |   18 |
| 小乔      | 女  |   18 |
| 马超      | 男  |   35 |
| 魏延      | 男  |   34 |
| 黄忠      | 男  |   62 |
| 张辽      | 男  |   26 |
+-----------+-----+------+
12 rows in set (0.00 sec)

mysql> show tables;
+--------------------------+
| Tables_in_DB_sidamingzhu |
+--------------------------+
| sanguoyanyi              |
| shuihuzhuan              |
| v_user                   |
+--------------------------+
3 rows in set (0.00 sec)

可以将多表关联查询做成一张视图表,

3、视图的作用和优点
1)作用:

控制安全
保存查询数据

2)优点:

提供了灵活一致级别安全性。
隐藏了数据的复杂性
简化了用户的SQL指令
通过重命名列,从另一个角度提供数据

4、视图的使用规则
  1. 视图必须有唯一命名
  2. 在mysql中视图的数量没有限制
  3. 创建视图必须从管理员那里获得必要的权限
  4. 视图支持嵌套,也就是说可以利用其他视图检索出来的数据创建新的视图
  5. 在视图中可以使用OREDR BY,但是如果视图内已经使用该排序子句,则视图的ORDER BY将覆盖前面的ORDER BY。
  6. 视图不能索引,也不能关联触发器或默认值
  7. 视图可以和表同时使用
5、修改视图

鸡肋,可以重新创建视图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迷失的黑色精灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值