暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL-视图

SQL数据库笔记 2021-12-06
579

视图是一个虚拟表,它的内容由查询定义。我们只能对视图进行查询操作,不能对视图中的数据进行增删改。

关于视图:

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论