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作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子 ...
随机推荐
- Request[""]接收的值有逗号(,)
这是因为你的前台页面有连个标签的name值相等导致的.Request["name"]其实是通过name值或得标签的value值的. 所以一般情况下name值不要相等. 需要互斥的就 ...
- python学习笔记05:贪吃蛇游戏代码
贪吃蛇游戏截图: 首先安装pygame,可以使用pip安装pygame: pip install pygame 运行以下代码即可: #!/usr/bin/env python import pygam ...
- Beta阶段冲刺前的准备
Beta阶段冲刺前的准备 凡事预则立,在Beta开始前,以小组为单位,在敏捷冲刺前发布一篇博客,描述: 1. 讨论组长是否重选的议题和结论 经过我们小组在周二下午的会议中有重新认真的考虑了是否要更换组 ...
- Genymotion-ARM-Translation_v1.1安装报“an error occured while deploying the file”
如上图,在将Genymotion-ARM-Translation_v1.1.zip拖动Genymotion虚拟机中报了图中错误,在百度后找到了解决办法,下面是我的操作步骤 1.下载re管理器之类的ap ...
- 转载LoadRunner的常用Java API
Java API是访问Vuser函数的基础,通过LoadRunner的Java API可以在脚本中很容易地创建事务与并发点.获取用户信息等功能. 1. 事务函数(Transaction Functio ...
- CSS 报错
- PHP导出sql文件
发现自己之前写的php导出sql数据为Excel文件在导出一些数据的时候出现了精度的问题,比如导出身份证号的时候会把后面变成0000.暂时先把这个问题留下,有空去看看到底是什么问题. 写了一个导出sq ...
- APP 测试 与 WEB 测试的本质区别
单纯从功能测试的层面上来讲的话,APP 测试.web 测试 在流程和功能测试上是没有区别的 根据两者载体不一样,则区别如下: 1.系统结构方面 web项目,b/s架构,基于浏览器的:web测试只要更新 ...
- Java pdf转String 并修正格式
在尝试pdf转成String的时候,首先用python的pdfminer和pdfminer3k去尝试转换,然后资料看不太懂,就尝试用了java, 以下是java的pdfbox写的pdf转String函 ...
- Gson获取json串中的key-value
1.依赖包 <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson& ...