MySQL 第三章3.2 MySQL视图

本文详细介绍了MySQL视图的概念、创建、查询、更新、修改和删除。视图是从一个或多个表导出的虚表,用于集中数据、简化权限管理和数据共享。创建视图时需注意select语句的限制,查询和更新视图时遵循特定规则。通过视图,可以实现对数据的操作而无需直接操作底层表。
摘要由CSDN通过智能技术生成

MySQL 第三章3.2 MySQL视图

3.2.1 视图的概念

    视图(view)是从一个或多个表导出的表,但视图是一个虚表,其并不会被实际储存,当对视图中的数据进行操作时,系统会根据视图的定义去操作与视图相关联的表。
    视图一经定义后,就可以像表一样被查询、修改、删除和更新

使用视图的优点:

  • 为用户集中数据,当用户所需要的数据分散在多个表中,定义视图可以将他们集中在一起,从而方便用户进行数据查询和处理。
  • 屏蔽数据库的复杂性,用户不同去接触数据库的表结构,并且数据库表的更改也不影响用户对数据库的使用
  • 简化用户权限的管理,只需要授权用户使用视图的权限,而不必指定用户只能使用表的特定列,增加了安全性
  • 便于数据共享,各用户不用定义和储存自己所需的数据,有视图即可,视图可以共享数据库中的数据,同样的数据只用存储一次即可。

3.2.2 创建视图

    视图在数据库中是作为一个对象来存储的,其语法格式如下

create [or replace] view 视图名 [(列名...)]
as select

注:

  • 列名…为视图的列定义明确的名称,列名用逗号隔开,列名数目必须等于select语句检索的列数,若使用与源表或视图中相同的列名则可以省略列名
  • select语句:用来创建视图的select语句,可在select语句中查询多个表或视图

对于创建视图中的select语句有如下几点需要注意:

  • 不能包含from 子句中的子查询
  • 若引用的不是当前数据库的表或视图时,要在表或视图前加上数据库的名称(例如:test.kc)
  • 在视图定义中允许使用order by子句,但是若select的视图中也定义过自己order by子句,则该select语句中定义的order by子句将被忽略
  • 对于select语句中的其他选项或子句,若视图中也包含了这些选项则效果未定义,例如:如果在视图定义中使用了limit语句,而select中使用了自己的limit语句,则mysql对使用哪个limit语句并没有明确的定义。

例如:假设当前数据库是test,创建xscj数据库上的cs_kc视图,包括计算机专业各学生的学号、其选修的课程号及成绩。要保证对该视图的修改都符合专业名为’计算机’这个条件
自己编辑的:

create view xscj.cs_kc
as select xs.学号,课程号,成绩
from xscj.xs,xscj.xs_kc
where xs.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值