mysql视图概念、创建、查询、删除和修改

阅读数:98 评论数:0

跳转到新版页面

分类

数据库

正文

一、视图的概述

视图上是众一个或多个表中导出来的表,是一种虚拟存在的表

二、创建视图

1、在单表上创建视图

虽然视图可以被看成是一种虚拟表,但是其物理上是不存在的,即mysql并没有专门的位置为视图存储数据。根据视图的概念可以发现其数据源于查询语句,因此创建视图的基本语法为:

 CREATE[OR REPLACE] VIEW viewname[(columnlist)]   
    AS SELECT statement  

create表示创建视图
replace表示替换已经创建的视图
columnlist表示可以显示的指出视图中有哪些列(必须和select语句对应)

创建视图需要登陆用户有相应的权限,查看方法

select user,Select_priv,Create_view_priv from mysql.user;

视图本身相当于一个窗口,通过这个窗口我们也可以修改数据

update view_student set name='小王王' where name='小王';

2、在多表上创建视图

create view view_student_teacher 
    as select class.id as teacher_id,teacher,class,student.id,student.name,sex 
    from class 
        left join student on class.id=student.class_id;

三、查看视图

1、查看视图基本信息

DESCRIBE | DESC viewname;

2、查看视图创建信息

SHOW CREATE TABLE|VIEW   viewname;

四、更新视图数据

1、当视图中包含sum()、count()、max()和min()等函数时,不能更新视图。

2、视图中包含union、union all、distinct、group by和having等关键字时,不能更新视图

3、视图对应表存在没有默认值的列,而且该列没有包含在视图里,不能更新视图

4、包含子查询的视图,不能更新视图。

五、修改视图

ALTER VIEW viewname[columnlist]   
AS SELECT statement

六、删除视图

用户必须拥有drop权限。

DROP VIEW viewname [,viewname ];

可以同时删除多个视图。

 




相关推荐

1、常用show语句

Centos7的yum源中没有mysql,为了解决这个问题,我们需要先下载mysql的repo源。 一、下载mysql的repo源并安装 wget http://repo.mysql.com/mysq

备份的类型 1、根据是否需要数据库离线 (1)冷备: 需要关mysql服务,请写请求均不允许 (2)温备: 服务在线,但仅支持读请求。 <p

如果主库已经投入使用了,此时如果需要主从同步,需要导出所表结构和数据,然后导入到从库中。这时需要注意修改/var/lib/mysql/auto.cnf中uuid。 master配

一、事务的ACID 1、Atomicity原子性 Transactions are often composed of multiple statements. Atomicity guarantee

一、登录mysql mysql --version -查看Mysql版本 mysql -h hostname -u username -p -h:运行mysql服务器的机器,如果正在该机器上运行此命令

mysql的权限分为4级:全局、数据库、表、列。 1、grant grant privileges [

insert [into] table [(column1,column2,column3,...)] values (val

一、语法 select [optioins] items [into file_details] from tables [where conditions] [group by gr

一、语法 update [low_priority] [ignore] tablename set column1=expression1,... [where condition] [order b