1.视图: 就是一张虚拟表,本质上存储的是一对SQL的集合
-- 视图 是一张虚拟的表
01.表示一张表的部分数据或者是多张表的综合数据! 02.结构和数据都是建立在对真表的查询基础之上的! 03.视图中存放的数据其实就是对真实表的引用! 对视图中的数据进行添加,更新删除都会影响到真实的表! 04.一个真实的表可以创建N个视图! 05.如果视图关联了多表,不允许增 删!单表可以增删改 06.视图一般都是使用查询!2.定义视图的语法:
create view VW_stulist(VW_视图的功能)assql语句 小Tip:当多表中有同名列的时候,在视图这个虚拟表中,只能有一列。手工指定该列是哪个表的3.视图的使用 和检索基本表一样,直接通过select
select * from VW_stulist4.删除视图
drop view 视图名drop table drop databasedrop indexdrop constraint归根结底:drop 删除是结构 delete 删除数据
5.查看所有库所有视图
5.1.切换到系统数据库
use information_schema5.2.select * from views \G;
6.查看当前库的所有视图
show tables status where comment='view'7.视图注意事项
1)视图可以查询多表数据 2)视图可以嵌套3)update,insert,delete不能封装成视图内容,通过图形化界面可以操作数据(操作视图数据,影响的是基本表)。4)删除视图数据的时候,有一定的限定,数据结果来源于多表的时候,不能删除例子:
-- 创建一个视图 只获取 学生姓名 编号 以及考试成绩CREATE VIEW view_student_resultAS SELECT s.studentNo 学生编号,studentName 学生姓名,studentResult 考试成绩FROM student s,result rWHERE s.`studentNo`=r.`studentNo`-- 查询视图中的内容SELECT * FROM view_student_result-- 查询mysql数据库中所有的视图SELECT * FROM information_schema.views;-- 删除视图DROP VIEW view_student_result;-- 创建一个表的视图 学生姓名,地址,手机号CREATE VIEW view_student ASSELECT studentName 学生姓名,address 地址,phone 手机号FROM student-- 查询视图SELECT * FROM view_student