SQL语句(十五)视图
视图
实际上是一个查询语句, 如果将子查询保存为视图,
就可以将子查询的结果当作数据表使用 从而来简化查询语句
引言
例1 查询参加"数据库技术"课程的考试的学生学号、姓名、班级、分数
需要连接学生表, 成绩表 和 课程表
查询航天班各课程的考试信息, 显示学生的学号、姓名、课程名称、分数
也需要连接学生表, 成绩表 和 课程表
由于数据库连接查询语句麻烦,可以先写一个一般的等值连接, 将三个表连接起来
use teaching
select * from Student
select * from Course
select * from Study --连接学生表, 成绩表, 课程表
Select a.sclass, a.Snumb, a.sname, a.sgender,
c.cname, b.score, c.chours, c.credit
from Student as a
INNER JOIN Study as b on a.snumb = b.snumb
INNER JOIN Course as c on b.cnumb= c.cnumb --由于上述查询经常使用, 所以将之保存为视图
--CREATE VIEW 视图名 [(字段别名列表)]
--AS
--查询 Create View examinfo
AS
Select a.sclass, a.Snumb, a.sname, a.sgender,
c.cname, b.score, c.chours, c.credit
from Student as a
INNER JOIN Study as b on a.snumb = b.snumb
INNER JOIN Course as c on b.cnumb= c.cnumb --加别名
GO
Create View examinfo2(班级,学号,姓名,性别,课程,成绩,学时,学分)
AS
Select a.sclass, a.Snumb, a.sname, a.sgender,
c.cname, b.score, c.chours, c.credit
from Student as a
INNER JOIN Study as b on a.snumb = b.snumb
INNER JOIN Course as c on b.cnumb= c.cnumb --4.使用视图 --查询所有学生的所有课程的考试成绩
--显示班级,学号,姓名,性别,课程,成绩,学时,学分
select * from examinfo2 --查询参加"c++"课程的考试的学生的
--班级,学号,姓名,性别,课程,成绩,学时,学分
select * from examinfo2
where 课程 = 'c++' --查询"航天"班各课程考试的信息,显示学号,姓名,课程名称,分数 Select Snumb, Sname, Cname, Score
From examinfo
where Sclass = '航天' --例2 查询平均年龄大于20岁的班级的学生信息
Select *
From Student
where sclass in (
select sclass as 班级 from Student
group by sclass
having avg(sage) >=
) --使用视图
--创建视图
Create View myClass
AS
select Sclass as avgage from Student
group by Sclass
having AVG(sage) >= --使用视图
Select * From Student
Where sclass in (
select * from myClass
) --删除视图
Drop View Myclass
注意事项:
视图是一个虚拟表或临时表
视图保存的是Select查询语句,而不是数据本身
数据表中的数据发生改变,通过视图查到的数据也会发生改变
创建视图时,不允许使用
ORDER BY, INTO 等字句
如果一个查询或子查询经常使用,则保存为视图
SQL语句(十五)视图的更多相关文章
- python操作MySQL,SQL注入的问题,SQL语句补充,视图触发器存储过程,事务,流程控制,函数
python操作MySQL 使用过程: 引用API模块 获取与数据库的连接 执行sql语句与存储过程 关闭数据库连接 由于能操作MySQL的模块是第三方模块,我们需要pip安装. pip3 insta ...
- 抓取锁的sql语句-第五次修改
CREATE OR REPLACE PROCEDURE SOLVE_LOCK AS V_SQL VARCHAR2(3000); --定义 v_sql 接受抓取锁的sql语句V_SQL02 VARCHA ...
- Entity Framework 使用sql语句分页(查询视图)
1.查询视图 //3.查询视图 var sql = @" SELECT D.* FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY TestView.B_M ...
- Oracle中SQL语句学习五(统计分组语句group by和having)
oracle(41) 在 应用系统开发中,进行需要统计数据库中的数据,当执行数据统计时,需要将表中的数据进行分组显示,在统计分组中是通过group by子句.分组函数.having子句共同实现的.其中 ...
- SQL语句(五)子查询
目录 一.子查询含义 二.子查询分类 按子查询的位置分 按结果集的行列数不同分 三.WHERE后面的子查询 1. 标量子查询 2. 列子查询(多行子查询) 3. 行子查询(结果为一行多列或多行多列) ...
- SQL语句(五)数据的修改
数据的修改 UPDATE 格式 UPDATE 表名 SET 字段名 = 字段值(这个可以是表达式) [WHERE 条件表达式] 关系运算符 (>.<.>=. <=.=.< ...
- SHELL中执行Oracle SQL语句查询性能视图
数据库日志是否报错信息 vi check_log.sh #!/bin/bash # Created : 2019.10.10 # Updated : # Author : # Description ...
- 必须会的SQL语句(五)NULL数据处理和类型转换
1.Null数据的处理 1)检索出null值 select * from 表 where xx is null 2)null值替换 sele ...
- oracle视图就是封装了一条写好的sql语句 可通过视图修改表结构 ; oracle需要手动创建序列
create sequence student_sid; --创建序列 oracle只能通过手动方式创建序列
- LINQ to SQL语句非常详细(原文来自于网络)
LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子 ...
随机推荐
- 团队作业7——第二次项目冲刺(Beta版本12.04——12.07)
1.当天站立式会议照片 本次会议在5号公寓3楼召开,本次会议内容:①:熟悉每个人想做的模块.②:根据项目要求还没做的完成. 2.每个人的工作 经过会议讨论后确定了每个人的分工 组员 任务 陈福鹏 实现 ...
- iOS- Exception Type: 00000020:什么是看门狗机制
1.前言 前几天我们项目闪退之后遇到的一个Crash,之后逛了许多论坛,博客都没有找到满意的回复 在自己做了深入的研究之后,对iOS的看门狗机制有了一个基本的了解 而有很多奇怪的Cras ...
- 理解jquery on 委托事件的机制
前两天做了一个点击任意位置,都能关闭菜单的功能,因为菜单里面的每一个a,的点击事件都是用on绑定的.所以在阻止冒泡的时候不管用,今天特意来理解一下on的机制 on 是委托事件,利用的就是冒泡原理 $( ...
- excel文件怎么使用php进行处理
1.可以通过phpmyadmin导入csv文件 2.也可以直接使用php 处理已经将excel另存为.csv后缀的文件, 通过php专门处理csv文件的函数 如 fgetcsv() <?php ...
- C语言以字符形式读写文件
一.字符读取函数 fgetc (一).函数介绍 fgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符.函数原型为: int fgetc(FILE* fp) fp 为文件 ...
- Node初识笔记 1第一周
#下载安装好node > https://nodejs.org/en/ # 打开cmd 调整好执行路径 . 1.js是JS文件名,cd调招路径,‘node’+空格 +JS文件名(带上扩展名) ...
- SpringBoot(十一)_springboot热部署
在开发中,后台修改了代码就要重新启动服务,很是费劲,现在我们可以让SpringBoot自动编译 热启动就需要用到我们在一开始引入的另外一个组件:devtools.它是 Spring Boot 提供的一 ...
- kiki's game HDU - 2147(找规律)
#include"stdio.h" int main( ) { int n,m; ||m!=)) { ==||m%==) printf("Wonderful!\n&quo ...
- uoj259 & 独立集问题的一些做法
很早以前就做了一遍这题,当时好像啥都不会,今天重做一下. 这个题题意简单地说就是输入k.p和一个图,求图大小为k的独立集个数mod p. subset1.in n=24,m=19,k=8 subse ...
- BZOJ 2251: [2010Beijing Wc]外星联络
2251: [2010Beijing Wc]外星联络 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 795 Solved: 477[Submit][ ...