视图是一个虚拟表,它的内容由查询定义。我们只能对视图进行查询操作,不能对视图中的数据进行增删改。
关于视图:
1.简化查询数据操作,将复杂的SQL查询语句进行封装;
2.用户只能查询数据,不能修改数据;
3.用作安全机制,允许用户通过视图访问数据,而不授予用户直接访问底层基表的权限;
4.视图总是显示最新的数据,用户查询数据时,相当于重新执行查询语句。
创建视图:
create view view_name
as
--下面加查询语句
select
column_name1,column_name2,...
from table_name
where condition
修改视图:
alter view view_name
as
--下面加查询语句
select
column_name1,column_name2,...
from table_name
where condition
删除视图:
drop view view_name
示例:
1.创建一个视图teacher_schedule,查询老师的课表情况,包含教师姓名,课程名称,课程时间:
create view teacher_schedule
as
select
A.name teacher_name
,C.course_name
,B.course_time
from [dbo].[teacher_info] A--教师信息表
inner join [dbo].[teach_schedule] B on A.teacher_id=B.teacher_id --教师课程表
inner join [dbo].[lesson_info] C on b.course_id=C.course_id --课程信息表

查询视图数据:
select * from teacher_schedule

2.修改视图teacher_schedule,基于上述视图,新增教室名称:
alter view teacher_schedule
as
select
A.name teacher_name
,C.course_name
,B.course_time
,d.room_name
from [dbo].[teacher_info] A--教师信息表
inner join [dbo].[teach_schedule] B on A.teacher_id=B.teacher_id --教师课程表
inner join [dbo].[lesson_info] C on b.course_id=C.course_id --课程信息表
inner join [dbo].[classroom_info] D on b.room_id=D.room_id --教室信息表

查询视图数据:
select * from teacher_schedule

3.删除视图teacher_schedule:
drop view teacher_schedule

查询视图数据:
select * from teacher_schedule

end

有兴趣的小伙伴可以关注“SQL数据库笔记”公众号,一起学习吧!

文章转载自SQL数据库笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




