博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL语句(十五)视图
阅读量:4314 次
发布时间:2019-06-06

本文共 1739 字,大约阅读时间需要 5 分钟。

视图

实际上是一个查询语句, 如果将子查询保存为视图,

就可以将子查询的结果当作数据表使用 从而来简化查询语句

  • 引言

    • 例1 查询参加"数据库技术"课程的考试的学生学号、姓名、班级、分数

      • 需要连接学生表, 成绩表 和 课程表

    • 查询航天班各课程的考试信息, 显示学生的学号、姓名、课程名称、分数

      • 也需要连接学生表, 成绩表 和 课程表

    • 由于数据库连接查询语句麻烦,可以先写一个一般的等值连接, 将三个表连接起来

use teachingselect * from Studentselect * from Courseselect * from Study--连接学生表, 成绩表, 课程表Select a.sclass, a.Snumb, a.sname, a.sgender,c.cname, b.score, c.chours, c.creditfrom Student as aINNER JOIN Study as b  on a.snumb = b.snumbINNER JOIN Course as c on b.cnumb= c.cnumb--由于上述查询经常使用, 所以将之保存为视图--CREATE VIEW 视图名 [(字段别名列表)]--AS--查询Create View examinfoASSelect a.sclass, a.Snumb, a.sname, a.sgender,c.cname, b.score, c.chours, c.creditfrom Student as aINNER JOIN Study as b  on a.snumb = b.snumbINNER JOIN Course as c on b.cnumb= c.cnumb--加别名GOCreate View examinfo2(班级,学号,姓名,性别,课程,成绩,学时,学分)ASSelect a.sclass, a.Snumb, a.sname, a.sgender,c.cname, b.score, c.chours, c.creditfrom Student as aINNER JOIN Study as b  on a.snumb = b.snumbINNER JOIN Course as c on b.cnumb= c.cnumb--4.使用视图--查询所有学生的所有课程的考试成绩--显示班级,学号,姓名,性别,课程,成绩,学时,学分select * from examinfo2--查询参加"c++"课程的考试的学生的--班级,学号,姓名,性别,课程,成绩,学时,学分select * from examinfo2where 课程 = 'c++'--查询"航天"班各课程考试的信息,显示学号,姓名,课程名称,分数Select Snumb, Sname, Cname, ScoreFrom examinfowhere Sclass = '航天'--例2 查询平均年龄大于20岁的班级的学生信息Select *From Studentwhere sclass in (select sclass as 班级 from Studentgroup by sclasshaving avg(sage) >= 20)--使用视图--创建视图Create View myClassASselect Sclass as avgage from Studentgroup by Sclasshaving AVG(sage) >= 20--使用视图Select * From StudentWhere sclass in (select * from myClass)--删除视图Drop View Myclass

注意事项:

  • 视图是一个虚拟表或临时表

  • 视图保存的是Select查询语句,而不是数据本身

  • 数据表中的数据发生改变,通过视图查到的数据也会发生改变

  • 创建视图时,不允许使用

    ORDER BY, INTO 等字句

  • 如果一个查询或子查询经常使用,则保存为视图

转载于:https://www.cnblogs.com/douzujun/p/6654942.html

你可能感兴趣的文章
sessionStorage
查看>>
代码示例_进程
查看>>
Java中关键词之this,super的使用
查看>>
人工智能暑期课程实践项目——智能家居控制(一)
查看>>
前端数据可视化插件(二)图谱
查看>>
kafka web端管理工具 kafka-manager【转发】
查看>>
获取控制台窗口句柄GetConsoleWindow
查看>>
Linux下Qt+CUDA调试并运行
查看>>
51nod 1197 字符串的数量 V2(矩阵快速幂+数论?)
查看>>
OKMX6Q在ltib生成的rootfs基础上制作带QT库的根文件系统
查看>>
zabbix
查看>>
多线程基础
查看>>
完美解决 error C2220: warning treated as error - no ‘object’ file generated
查看>>
使用SQL*PLUS,构建完美excel或html输出
查看>>
前后台验证字符串长度
查看>>
《算法导论 - 思考题》7-1 Hoare划分的正确性
查看>>
win64 Python下安装PIL出错解决2.7版本 (3.6版本可以使用)
查看>>
获取各种类型的节点
查看>>
表达式求值-201308081712.txt
查看>>
centos中安装tomcat6
查看>>