MySQL 视图

数据库视图是虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询语句。 因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。 大多数数据库管理系统(包括MySQL)允许您通过具有一些先决条件的数据库视图来更新基础表中的数据。

数据库视图是动态的,因为它与物理模式无关。数据库系统将数据库视图存储为具有连接的SQL SELECT语句。当表的数据发生变化时,视图也反映了这些数据的变化。

1.视图: 就是一张虚拟表,本质上存储的是一对SQL的集合

--  视图 是一张虚拟的表    01.表示一张表的部分数据或者是多张表的综合数据!    02.结构和数据都是建立在对真表的查询基础之上的!    03.视图中存放的数据其实就是对真实表的引用!      对视图中的数据进行添加,更新删除都会影响到真实的表!    04.一个真实的表可以创建N个视图!    05.如果视图关联了多表,不允许增 删!单表可以增删改    06.视图一般都是使用查询!

2.定义视图的语法: create view VW_stulist(VW_视图的功能) as sql语句  小Tip:当多表中有同名列的时候,在视图这个虚拟表中,只能有一列。手工指定该列是哪个表的

3.视图的使用 和检索基本表一样,直接通过select select * from VW_stulist

4.删除视图 drop view 视图名 drop table drop database drop index drop constraint 归根结底:drop  删除是结构   delete 删除数据

5.查看所有库所有视图

 5.1.切换到系统数据库   use information_schema

 5.2.select * from views \G;

 6.查看当前库的所有视图    show tables status where comment='view'

 7.视图注意事项 1)视图可以查询多表数据 2)视图可以嵌套 3)update,insert,delete不能封装成视图内容,通过图形化界面可以操作数据(操作视图数据,影响的是基本表)。 4)删除视图数据的时候,有一定的限定,数据结果来源于多表的时候,不能删除

--  创建一个视图  只获取 学生姓名 编号 以及考试成绩
CREATE  VIEW view_student_result
AS 
SELECT s.studentNo 学生编号,studentName 学生姓名,
studentResult 考试成绩
FROM  student s,result r
WHERE s.`studentNo`=r.`studentNo`
--  查询视图中的内容
SELECT * FROM view_student_result
-- 查询mysql数据库中所有的视图
SELECT * FROM information_schema.views;
--  删除视图
DROP  VIEW view_student_result;
--  创建一个表的视图  学生姓名,地址,手机号
CREATE VIEW  view_student 
AS
SELECT  studentName 学生姓名,address 地址,phone 手机号
FROM  student
-- 查询视图
SELECT  * FROM view_student  

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习123

Linux各类压宿包的解压方法

2859
来自专栏PhpZendo

MySQL创建用户与授权

假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%',则在使用REVOK...

1961
来自专栏Greenplum

Greenplum使用pg_dump备份数据库

Greenplum 支持逻辑备份。我们使用Greenplum自带的pg_dump命令实现逻辑备份功能,导出备份文件,再通过 psql 导入到Greenplum中...

2254
来自专栏数据和云

INTERVAL分区升级了,你知道吗?!

辑手记: Oracle 11g新增的INTERVAL分区使得手工给RANGE分区添加新分区的工作变得异常简单,这也使得INTERVAL分区成为RANGE分区的最...

2935
来自专栏Django Scrapy

mysql相关命令

安装 在ubuntu 14.04 x64下 1 安装 # 安装服务端 (需要中途设置root密码) sudo apt-get install mysql-ser...

3257
来自专栏Java编程技术

Mysql中INSERT ... ON DUPLICATE KEY UPDATE的实践

在日常业务开发中经常有这样一个场景,首先创建一条记录,然后插入到数据库;如果数据库已经存在同一主键的记录,则执行update操作,如果不存在,则执行insert...

1073
来自专栏乐沙弥的世界

导出MySQL用户权限

    在对MySQL数据库进行迁移的时候,有时候也需要迁移源数据库内的用户与权限。对于这个迁移我们可以从mysql.user表来获取用户的相关权限来生成相应的...

1083
来自专栏JavaQ

MySQL存储引擎InnoDB和MyISAM对比总结(更新)

本篇内容对MySQL两个主要存储引擎InnoDB和MyISAM进行对比总结。 InnoDB引擎 InnoDB是一个事务型的存储引擎,设计目标是处理大数量数据时提...

3568
来自专栏IT开发技术与工作效率

MySQL数据库优化总结《高性能MySQL》指导其他指导

3204
来自专栏维C果糖

史上最简单的 MySQL 教程(二十九)「外键(下)」

外键:foreign key,外面的键,即不在自己表中的键。如果一张表中有一个非主键的字段指向另外一张表的主键,那么将该字段称之为外键。每张表中,可以有多个外键...

3994

扫码关注云+社区