20141110--SQL视图

--------------------------视图---------------------
--视图是一个虚拟表,数据来自于原表,原表的数据改变,视图也会改变
select Student.Sno,sname,ssex,class,cno,degree from Student join Score on Student.Sno=Score.Sno
--以下代码由系统自己生成,在左边的对象管理器中,右键视图-新建视图
SELECT     dbo.Student.Sno AS Expr2, dbo.Student.Sname AS Expr3, dbo.Student.Ssex AS Expr4, dbo.Student.Sbirthday AS Expr5, dbo.Student.Class AS Expr6, dbo.Score.Cno AS Expr7,
                      dbo.Score.Degree AS Expr8
FROM         dbo.Student INNER JOIN
                      dbo.Score ON dbo.Student.Sno = dbo.Score.Sno
----------------------------------------
--用代码生成视图
--只能有表连接 join on, 不能出现聚合函数,等等
create view St_Sc
as
select Student.Sno,sname,ssex,class,cno,degree from Student join Score on Student.Sno=Score.Sno
----------查询视图
select *from St_Sc
-----------------------不用 join on
create view ssc
as
select Student.Sno,Sname,Ssex,Sbirthday,Class,Score.Cno,Cname,Tno,Degree
from Student,Course,Score where Student.Sno=Score.Sno and Score.Cno=Course.Cno
------------------使用 join on
create view sss
as
select Student.Sno,Sname,Ssex,Sbirthday,Class,Score.Cno,Cname,Tno,Degree from Score
join Course on Score.Cno=Course.Cno
join Student on Student.Sno=Score.Sno

select *from ssc
select *from sss
------------修改视图
----需要重写,相当于删掉重建
alter view sss
as
select Student.Sno,Sname,Ssex,Class,Score.Cno,Cname,Tno,Degree from Score
join Course on Score.Cno=Course.Cno
join Student on Student.Sno=Score.Sno

查询视图结果:

时间: 2024-10-12 11:49:32

20141110--SQL视图的相关文章

SQL视图&触发器

SQL视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段.我们可以向视图添加 SQL 函数.WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表. SQL CREATE VIEW 语法 CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition 视图的优点:1,可

sql视图

什么是视图 大家都知道,我们国家现在“神七”上天了.从美国的月球登月开始,人类上天不再是神话.听说,在美国,你只要出几十万美元,您就可以上一次月球进行太空旅行,所以,我们相信:在不久的将来,上天旅行将走进我们百姓的生活,那是一件多么新鲜神奇的事情啊.好多美国人上天后,他们用望远镜观看我们的地球,结果看到的地球形状各不相同.有的说象绿色的橘子,有的说象白色的大鸭梨,有的说象蓝色的大西瓜.这是为什么呢?你肯定会说:那是因为从不同的角度(视角),看到的不同形状而已.那么,从不同的视角,将看到不同的“图

sql 视图的作用(转http://www.cup.edu.cn/nic/Programing/database/34943.htm)

前段时间作项目中,遇到使用视图的问题,以前的工作中很少遇到视图,认为直接用表就ok了,何须视图呢?下面我来讲述一下它的功用:以往当我们查询数据时,一定要很认真的地从设计select语句开始,将需要查询的每个字段写在sql语句里, 前段时间作项目中,遇到使用视图的问题,以前的工作中很少遇到视图,认为直接用表就ok了,何须视图呢?下面我来讲述一下它的功用:以往当我们查询数据时,一定要很认真的地从设计select语句开始,将需要查询的每个字段写在sql语句里,每次你要以同样的条件来查询数据时,那么每次

SQL 视图(Views)

SQL 视图(Views) 视图是可视化的表. 本章讲解如何创建.更新和删除视图. SQL CREATE VIEW 语句 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段. 您可以向视图添加 SQL 函数.WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样. SQL CREATE VIEW 语法 CREATE VIEW view_name AS SELECT

基于成本的优化--CBO-------v$SQL视图

详解v$SQL视图 查询消耗磁盘I/O最多的SQL语句 select sql_text,executions,disk_reads from v$sql where disk_reads>&number order by disk_reads desc; 使用变量&number使得用户可以自定义磁盘读取的次数,executions说明语句执行的时间量,包括该语句的等待时间和服务时间 分析缓冲区读取次数最多的SQL语句 查询逻辑读取数最多的SQL语句 select sql_text,b

GeoServer 查询sql视图

说明: 最近项目中遇到一个需求,需要统计管网的长度,但管网数据量非常大,前端用openlayers接口统计直接就奔溃了. 后尝试使用调后台接口查数据库的方式,虽然可行但是又要多一层与后台交互的工作. 后来研究发现,GeoServer还能发布数据库表或视图,这样的话就可以跳过后台直接查询数据库了,完美解决了统计大数据的问题. 解决方案: 1.登陆GeoServer ==> 找到图层目录 ==> 添加新的资源 2.添加新图层里选中以PG为源的图层,点击“配置新的SQL视图” 3.从上至下,填完信息

SQL 视图

视图: 1.视图的概述       视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据.视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表.视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器.(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束) 2.视图的存储       与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据.视图只是定义了一个

sql视图实例

一个视图是一个或一组SQL语句,存储在数据库中相关的名称.一个视图实际上是一个预定义的SQL查询中的表的形式组成. 一个视图可以包含一个表的所有行,或选择表中的行.从一个或多个表上写SQL查询创建一个视图,视图可以被创建. 这是一种虚拟表的视图,允许用户执行以下操作: 发现自然或直观的用户或用户类的结构数据的方式. 限制访问的数据,例如,用户可以看到和(有时)修改正是他们所需要的并没有更多. 总结从可以用于生成报告的各种表的数据. 创建视图: 使用CREATE VIEW语句创建数据库视图.从一个

SQL Server T—SQL 视图 事务

一 视图 视图是存储在数据库中的查询的SQL 语句, 视图是从一个或多个表或视图中导出的表,是一张虚表,只能对视图进行查询,不能增.删.改. 对视图进行修改要在相应的基本表中进行修改,修改会自动的反应到视图 创建视图:               create  view  视图名 as SQL查询语句               -- 视图中不能出现重复列 视图的用法: select * from 视图名 二 事务 保障流程的完整执行,就像银行取钱,先在你账上扣钱,然后存入别人的账上:但是从你

【SQL server基础】SQL视图加密,永久隐藏视图定义的文本

SQL可以对视图进行加密.也就是,可永久隐藏视图定义的文本. 注意   此操作不可逆.加密视图后,无法再修改它,因为无法再看到视图定义.如果需要修改加密视图,则必须删除它并重新创建另一个视图. 示例代码: create view userFt as select users.userID,users.userName,users.ftNum,ft.Subject,ft.Content from users inner join ft on users.userID=ft.userID go al