👨💻个人主页:@元宇宙-秩沅
hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
本文由 秩沅 原创
**收录于专栏 数据库干货铺
⭐外模式—视图⭐
文章目录
- ⭐外模式---视图⭐
- 一,概念提炼
- 二,视图的创建及使用
- 👨💻👍创建 -----(见例题一)
- 👨💻👍修改-----(见例题三)
- 👨💻👍插入
- 👨💻👍更新
- 👨💻👍删除
- 三,例题大全 之 ( 世界杯 )
- 👨💻👍1.创建一个葡萄牙球队的球员视图(包括姓名、性别、站位)
- 👨💻👍2.创建一个球员平均成绩视图(包括学号、比赛1平均成绩、比赛2平均成绩、比赛3平均成绩,比赛4平均成绩)。
- 👨💻👍3.修改一个球员平均成绩视图去除平均成绩四
一,概念提炼
👨💻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;
你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!