mysql学习之旅07-视图
定义:是对现有表的一种投影,是一个虚拟的表,可以按照表的操作来操作试图
- 简化代码,提高sql语句的可读性
- 隐藏先有的表结构,提高数据库的安全性
- 通过对视图的操作,可以映射到对表的操作
- 视图一般主要用于统计查询,也可以进行CRUD.
语法:
- 创建视图
CREATE VIEW 视图名 AS 单表查询/多表查询/子查询
- 修改视图
ALTER VIEW 视图名 AS 单表查询/多表查询/子查询
- 删除视图
DROP VIEW 视图名;
- 查看视图
SHOW CREATE VIEW 视图名
注意:
- 如果使用单表查询创建视图,视图和原表一样可以进行CURD操作,数据和原表同步
- 如果使用多表查询创建视图,若使用外连接进行多表查询,视图无法进行数据库的操作。
sql操作:
//查询创建表
CREATE TABLE boys_table AS
SELECT * FROM sutdent WHERE sex = 1;
//修改视图
alter view boys_view as
select id,stu_num,`name`,classes_id from student
where sex = 1;
//删除视图
drop view boys_view;
//多表查询的视图
create view student_classes_view as
select
student.*, classes.`name` as classes_name
from
student left join classes
on
student.classes_id = classes.id
create view teacher_classes_view as
select
classes.*, teacher.`name` as teacher_name
from
teacher left join classes
on teacher.id = classes.teacher_id;