![E1%)X7ARDP2I{]H14~DAT)6.png](https://ucc.alicdn.com/pic/developer-ecology/43cxyrok5j7p2_92e5b5786b3a469882dea17e65a58f9f.png)

👨💻个人主页:@元宇宙-秩沅
**hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!**
本文由 秩沅 原创
**收录于专栏 数据库干货铺
⭐外模式---视图⭐
-
@[TOC]
一,概念提炼
👨💻1.视图是数据库中的一个对象,它是数据库管理系统提供给用户的 ==以多种角度观察数据库数据== 的一种重要机制
👨💻2.视图是一个==虚表==,在SQL中,它是基于SQL语句的结果集的可视化的表
👨💻3.好处
1.视图数据始终于基本表的数据保持一致
2.节省存储空间
👨💻4.特点
(1)
简化数据查询语句
(2)
使用户能从多角度看待同一数据
(3)
提高了数据的安全性
(4)
提供了一定程度的逻辑独立性

二,视图的创建及使用

👨💻👍创建 -----(见例题一)
格式:CREATE VIEW 视图名 (要写列名时写列名) AS SELECT语句
CREATE VIEW StudentView AS
SELECT Sno,Sname,Ssex FROM SC
WHERE Cname ='马内尔';
注意事项:
(1):SELECT 语句通常不包含 ORDER BY 和 DISTINCT 子句
(2):定义视图时要么指定全部列名,要么全部省略不写,不能只写视图的部分列名
(3):以下情况必须全部写列名
>
①某个目标列是函数或者表达式,并且在SELECT语句中无别名 ==如下文例题二==
②多表连接时选出了几个同名作为视图的列
③在视图中为某个列选出其他更合适的列名
👨💻👍修改-----(见例题三)
>格式:ALTER VIEW <视图名> (要写列名时写列名) AS SELECT语句
ALTER VIEW View
AS
SELECT Grade1 FROM Studen ;
- 可以通过视图可以修改表,但不是全部的视图都可以用于修改数据
👨💻👍插入
格式:INSERT <视图名> (列名 ) VAULES 数据
如:INSERT coccerView( Sno,Sname,Ssex,Sdep,Sbirthday)
VALUES ('15','梅西','男','前锋','1111-222-22');
+ 在视图中插入数据也会改变相应表中的数据
👨💻👍更新
格式:UpData <视图名> SET(列名 ) WHERE 限制条件
如:UPDATE soccerView
SET Sno = '7'
WHERE Sname = '梅西';
+ 在视图中更新数据也会改变相应表中的数据
👨💻👍删除
1.删除视图
格式:DROP VIEW 视图名
- 如果被删除的视图是其他视图的数据源,那么其他视图也无法显示资源
- 如果基本表被删除,视图也无法使用
2,删除数据
>格式:DELETE FORM 视图名 WHERE 限制条件
三,例题大全 之 ( 世界杯 )
👨💻👍1.创建一个葡萄牙球队的球员视图(包括姓名、性别、站位)
CREATE VIEW ManView AS
SELECT Sno,Sname,Sthday FROM soccerTeam
WHERE Sdep = '葡萄牙';
👨💻👍2.创建一个球员平均成绩视图(包括学号、比赛1平均成绩、比赛2平均成绩、比赛3平均成绩,比赛4平均成绩)。
CREATE VIEW Avarage (Qno,S1,S2,S3,S4) // 需要写出全部的指定列名,因为Qno是函数
AS
SELECT Sno ,AVG(Grade_ball1),AVG(Grade_ball2),AVG(Grade_ball3) ,AVG(Grade_ball4) FROM SoccerGrade
GROUP BY Qno;
👨💻👍3.修改一个球员平均成绩视图去除平均成绩四
ALTER VIEW Avarage (Qno,S1,S2) // 需要写出全部的指定列名,因为Qno是函数
AS
SELECT Sno ,AVG(Grade_ball1),AVG(Grade_ball2) FROM SoccerGrade
GROUP BY Qno;
你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!
