ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL Server视图

2021-04-01 23:01:58  阅读:157  来源: 互联网

标签:JOIN 学号 SQL 视图 Server 课程 选修 查询


创建视图

CREATE VIEW <视图名>[(<列名>[, ... n])]
AS
<SELECT查询子句>
[WITH CHECK OPTION]

<视图名>——新建视图的名称

<列名>——视图中列使用的名称

AS——指定视图要进行的操作

<SELECT查询子句>——定义视图的SELECT语句

WITH CHECK OPTION——表示对视图进行UPDATE、INSERT和DELECT操作时要保证更新、插入或删除的行满足视图定义中的子查询条件

从学生用户角度设计视图

学生用户:成绩查询,学籍查询,课表查询,学生选课

USE JXGL –只能查询到选课的学生
GO
CREATE VIEW V_STU
AS
SELECT 选修.学号,姓名,选修.课程号,教室编号,教师编号,成绩
FROM 选修 JOIN 学生 ON 选修.学号 = 学生.学号
JOIN 授课地 ON 授课地.课程号 = 选修.课程号
JOIN 讲授 ON 讲授.课程号 = 选修.课程号

修改视图

ALTER VIEW <视图名>[(<列名>[, ... n])]
AS
<SELECT查询子句>
[WITH CHECK OPTION]

参数与创建视图相同

要求修改上述“从学生用户角度设计视图”,只能查询到男生

USE JXGL –只能查询到选课的学生
GO
CREATE VIEW V_STU
AS
SELECT 选修.学号,姓名,选修.课程号,教室编号,教师编号,成绩
FROM 选修 JOIN 学生 ON 选修.学号 = 学生.学号
JOIN 授课地 ON 授课地.课程号 = 选修.课程号
JOIN 讲授 ON 讲授.课程号 = 选修.课程号
WHERE 性别 = '男'

删除视图

DROP VIEW <视图名>

使用视图

查询数据

与表的查询方式一样

SELECT *
FROM <视图名>

修改数据

对于数据库的更新操作(INSERT,DELECT,UPDATA),有以下三条操作:

(1)如果一个视图是从多个基本表使用连接操作导出的,那么不允许对这个视图更新操作;

(2)如果在导出视图的过程中,使用了分组和统计函数操作,也不允许对这个视图执行更新操作;

(3)行列子集视图是可以执行更新操作的。

例子:将学号001的名字改为“朱小七”

USE JXGL
UPDATE V_STU
SET 姓名 = '朱小七'
WHERE 学号 = '001'

标签:JOIN,学号,SQL,视图,Server,课程,选修,查询
来源: https://www.cnblogs.com/-SuPer/p/14597643.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有