文档库 最新最全的文档下载
当前位置:文档库 › 视图和查询的区别

视图和查询的区别

视图和查询的区别
视图和查询的区别

1:什么是视图

2:视图和查询的区别

3:视图的优点

4:如何创建和管理视图

5:如何通过视图修改基本表的数据

6:如何通过视图实现数据的安全性

A:什么是视图:

视图(view):从一个或几个基本表中根据用户需要而做成一个虚表

1:视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据

2:视图只在刚刚打开的一瞬间,通过定义从基表中搜集数据,并展现给用户

B:视图与查询的区别:

视图和查询都是用由sql语句组成,这是他们相同的地方,但是视图和查询有着本质区别: 它们的区别在于:1:存储上的区别:视图存储为数据库设计的一部分,而查询则不是.

2:更新限制的要求不一样

要注意:因为视图来自于表,所以通过视图可以间接对表进行更新,我们也可以通过update语句对表进行更新,但是对视图和查询更新限制是不同的,以下我们会知道虽然通过视图可以间接更新表但是有很多限制.

3:排序结果:通过sql语句,可以对一个表进行排序,而视图则不行.

比如:创建一个含有order by子句的视图,看一下可以成功吗?

C:视图的优点:

为什么有了表还要引入视图呢?这是因为视图具有以下几个优点:

1:能分割数据,简化观点

可以通过select和where来定义视图,从而可以分割数据基表中某些对于用户不关心的数据,使用户把注意力集中到所关心的数据列.进一步简化浏览数据工作.

2:为数据提供一定的逻辑独立性

如果为某一个基表定义一个视图,即使以后基本表的内容的发生改变了也不会影响“视图定义”所得到的数据

3:提供自动的安全保护功能

视图能像基本表一样授予或撤消访问许可权.

4:视图可以间接对表进行更新,因此视图的更新就是表的更新

D:视图的创建和管理

视图的创建

1:通过sql语句

格式:create view 视图名 as select 语句

试一试:分别创建关于一个表或多个表的视图[因为视图可以来自于多表]

2:通过企业管理器

说明:1:在完成视图的创立之后,就可以像使用基本表一样来使用视图

2:在创建视图时,并非所有的select子查询都可用

如:compute和compute by,order by[除非与top一起连用]

3:但在查询时,依然都可以用在创建时禁用的select子查询

4:在视图创建时,必须为没有标题列指定标题[思考:能否不用select语句来创建一个视图]

视图的删除:

1:通过sql语句:drop view 视图名

2:通过企业管理器

说明:与删除表不同的是,删除视图后只是删除了视图了定义,并没有删除表中的数据.[查看相关性]

修改视图的定义

1:通过企业管理器

2:通过sql语句:

格式:alter view 视图名 as 新的select语句

浏览视图信息 sp_helptext 视图名 [查看视图创建的语句]

E:如何通过视图修改基本表的数据.

1:在视图上使用insert语句

通过视图插入数据与直接在表中插入数据一样,但视图毕竟不是基本表.因此在进行数据插入时还是有一定的限制

1:如果视图上没有包括基本表中属性为not null[不能为空]的列,那么插入操作会因为那些列是null值而失败.

2:如果某些列因为某些规则或约束的限制而不能直接接受从视图插入的列时,插入会失败

3:如果在视图中包含了使用统计函数的结果,或是包含计算列,则插入操作会失败

4:不能在使用了distinct语句的视图中插入值

5:不能在使用了group by语句的视图中插入值

2:使用update更新视图中的数据

1:更新视图与更新表格一样,但是在视图中使用了多个基本表连接的情况下,每次更新操作只能更新来自基本表的一个数据列

例如:创建以下视图:create view del as

select 职工号,姓名,部门名称,负责人 from work1,部门

where work1.部门编号=部门.部门编号

如果再执行下面的语句时:

update del set 职工号=\'001\',部门名称=\'wenda\' where 职工号=\'01\'[出现错误]

只能够改成:update del set 职工号=\'001\' where 职工号=\'01\'

update del set 部门名称=\'wenda\' where 职工号=\'01\' 2:不能在使用了distinct语句的视图中更新值

3:不能在使用了group by语句的视图中更新值

3:使用delete删除视图中数据.

通过视图删除数据最终体现为从基本表中删除数据

格式:delete 视图名 [where 条件]

说明:当视图由两个以上的基表构成时,不允许删除视图的数据

例如:建一个视图kk

create view kk as

select 职工号,姓名,性别,部门名称 from work1,部门 where work1.部门编号=部门.部门编号 [试着去删除]

使用with check option的视图

如果不了解视图定义内容,则常常会发生向视图中输入不符合视图定义的数据的情况.

比如:create view xm as

select * from work where 性别=\'男\'

完全可以插入insert xm values(\'001\',\'女\',23,\'2400\'....)

尽管从意义上来说是不合理的,但是上述语句是正确的.为了防止这种情况的发生,可以使用with check option子句来对插入的或更改的数据进行限制.

比如:create view xm as

select * from work where 性别=\'男\' with check option

使用schemabinding的视图[使用绑定到构架]

我们知道视图是依赖于表,如果在一个表中创建一个视图,今后如果这个表被删除了,则这个视图将不可再用了.为了防止用户删除一个有视图在引用的表,可以在创建视图的时候加上schemabinding关键字.

比如:create view 基本工资 with SCHEMABINDING

as select 姓名,性别,基本工资 from dbo.work

说明:1:不能使用“*”来创建此类型的视图

2:创建此类型的视图时,一定要加上dbo.表名.

3:如果在某个表中定义了此类视图,则用户将不能对表的结构进行修改,否则会删除这些绑定

4:如果用户对表的结构进行列改名,则会删除绑定而且视图不可用.

5:如果用户对表的结构进行列的类型或者大小修改,则会删除绑定但视图可用,此时用户可以删除视图所引用的表.

使用with encryption对视图进行加密

为了保护创建视图定义的原代码,可以对视图进行加密.

比如:create view kk with encryption

as select * from work where 职称=\'经理\'

用sp_helptext来查看一下.或用企业管理器查看一下.

说明:如果应用此项用户将无法设计视图

F:使用视图加强数据的安全

一般通过使用视图共有三种途径加强数据的安全性

A:对不同用户授予不同的使用权.

B:通过使用select子句限制用户对某些底层基表的列的访问

C:通过使用where子句限制用户对某些底层基表的行的访问

对不同用户授予不同的权限

数据库原理视图的创建与使用实验报告

***大学计算机科学与信息学院软件工程系上机实验报告

显示结果: 2、用企业管理器创建、管理视图 (1)创建视图 A、使用企业管理器在表teacher上创建一职称为副教授的教师视图teacherview视图,该视图中需包 括以下信息:姓名,系别,职称,工资。 1)依次进入企业管理器、数据库、XSGL库,并用鼠标右键单击“视图”。 2)在系统弹出的快捷菜单中单击“新建视图”,出现“新建视图”窗口。

B、使用企业管理器在表student、course、sc表上创建一个能查询学生的学号、姓名、课程名及课程成绩的视图,视图名为S_C_VIEW。 (2)修改视图stuview1 将视图studview1的定义修改为从student表中查询出MA系学生的学号,姓名,系别。 (提示:修改视图:在企业管理器中选中视图后->击右键->按设计视图->进行修改) (3)管理视图中的数据 1)查看视图stuview1中的数据。 (提示:用鼠标右键单击要管理的视图stuview1,单击“打开视图”,再单击“返回所有行”。)

2)将视图stuview1中学号为“6”的学生姓名改为“许华”。再重新打开student表观察一下,有什么变化(注:须按按钮“!”进行修改确认。) 3、用T-SQL语言创建、管理视图 (1)创建视图 ①创建一个名为stuview2的水平视图,从数据库XSGL的student表中查询出性别为“男”的所有学生的资 料。并在创建视图时使用with check option。(注:该子句用于强制视图上执行的所有修改语句必须符合由Select语句where中的条件。) T-SQL语句为: CREATE VIEW stuview2 AS SELECT* FROM Student WHERE Ssex='男' WITH CHECK OPTION; ②创建一个名为stuview3的视图,能检索出CS系所有女生的学号、选修的课程名及相应的成绩。 T-SQL语句为: CREATE VIEW stuview3 AS SELECT,, FROM SC,Course WHERE= AND IN ( SELECT Sno FROM Student WHERE Sdept='CS'AND Ssex='女'); ③创建一个名为stuview4的视图,能检索出选课学生的学号、姓名、课程名、成绩。

数据库实验4_数据库查询与视图

在学生选课数据库中完成规定查询,并创建视图。 1.查询线性代数不及格的同学的学号和姓名; SQL语句为:SELECT名单$.学号,姓名 FROM名单$,学生选课信息和成绩$,课程$ WHERE名单$.学号=学生选课信息和成绩$.学号AND课程$.课号=学生选课信息和成绩$.课号AND 课程$.课程名='线性代数' AND学生选课信息和成绩$.成绩<60; 执行后结果为: 2.查询没有选课记录的同学的所有基本信息; SQL语句为:SELECT* FROM名单$ WHERE NOTEXISTS (SELECT* FROM学生选课信息和成绩$

WHERE学号=名单$.学号); 执行后结果为: 3.查询具有简介先修课的课程信息及对应的先修课名;SQL语句为:SELECTFIRST.课号,SECOND.课程名FROM课程$FIRST,课程$SECOND WHEREFIRST.先修课号=SECOND.课号; 执行后结果如下:

4.统计高等数学(1)的平均成绩; SQL语句为:SELECT AVG(成绩) FROM学生选课信息和成绩$,课程$ WHERE学生选课信息和成绩$.课号=课程$.课号AND课程$.课程名='高等数学(1)'; 执行后结果如下: 5.统计各门课的选课人数; SQL语句为:SELECT课号,COUNT(学号) FROM学生选课信息和成绩$ GROUPBY课号; 执行后结果为:

6.查询选修5门课以上的学生的学号;SQL语句为:SELECT学号 FROM学生选课信息和成绩$ GROUPBY学号 HAVING COUNT(*)>5; 执行后结果为:

数据库实验报告_数据库的视图和图表的定义及使用

数据库实验报告_数据库的视图和图表的定义及使用贵州大学实验报告 学院:计信学院专业:网络工程班级:101 姓名学号实验组 实验时间 05.30 指导教师罗昊成绩实验项目名称数据库的视图和图表的定义及使用实 验使学生掌握SQL Server中的视图创建向导和图表创建向导的使用方法,加深对视目图和SQL Server图表作用的理解。 的 实本实验属于验证型实验,通过实验,加强对课堂讲授知识的理解。开始实验前,必验须进行预习,写出实现所有查询要求的SQL语句。实验过程中,先集中由老师进行具体要要求和注意事项的讲解,然后各自独立在机器上完成实验。实验过程中出现问题,在实求验指导老师帮助下解决。 1、创建视图 假设在图书_读者数据库中已经建立了图书、读者和借阅3个表,它们的结构为: 图书(书号,类别,出版社,作者,书名,定价); 借阅(书号,读者借书证号,借阅日期); 读者(借书证号,姓名,单位,性别,电话) 实如果要在上述3个表的基础上建立一个视图,取名为读者_VIEW,其操作用SQL语验句表示为: 原CREATE VIEW 读者_VIEW AS SELECT 图书.*,借阅.* FROM 图书,借阅,读者理 WHERE 图书.书号=借阅.书号 AND 借阅.读者借书证号=读者.借书证号;

利用SQL Srever 2000中提供的视图创建向导,来创建读者_VIEW视图。 2、查看和修改视图 视图创建好后,就可以利用它进行查询信息了。如果发现视图的结构不能很好地满 足要求,还可以在企业管理器中对它进行修改 3、删除视图 删除视图的方法是:首先要在企业管理器中,将鼠标指针指向数据库中的视图文件 夹,单击右键。在随后出现的弹出菜单中,选择“删除”项,会出现删除视图对话框。 选中欲删除的视图,单击“全部移出”按钮,被选中的视图就会从视图中被移出。 4、创建关联表 假如要在图书_读者数据库中建立一个读者_借阅_图书关系,要求该图表包括图书、 借阅和读者三个表,并包括它们之间的“图书.书号=借阅.书号 AND 借阅.读者借书证 号=读者.借书证号”的外码与被参照表之间的关联,即用关联表实现上述视图的功能。 在企业管理器中通过向导建立数据库关联表。 5、编辑数据库图表 在企业管理器中,展开数据库图表所属的服务器、数据库文件夹、数据库以及关系

SQL_Server实用教程(第三版)实验4_数据库的查询和视图

实验四数据库的查询和视图 T4.1 数据库的查询 1.目的与要求 (1)掌握select语句的基本语法; (2)掌握子查询的表示 (3)掌握连接查询的表示 (4)掌握select语句的group by子句的作用和使用方法 (5)掌握select语句的order by子句的作用和使用方法 2 实验准备 (1)了解SELECT语句的基本语法格式; (2)了解SELECT语句的执行方法; (3)了解子查询的表示方法; (4)了解连接查询的表示; (5)了解SELECT语句的GROUPBY子句的作用和使用方法; (6)了解SELECT语句的ORDERBY子句的作用; 3实验内容 SELECT语句的基本使用。 ①对于实验2给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在查询分析器中输入如下语句并执行: USEYGGL GO SELECT * FROM Employees 【思考与练习】用SELECT语句查询Departments和Salary表中所有的数据信息。 用SELECT语句查询Employees表中每个雇员的地址和电话。 新建一个查询,在查询分析器中输入如下语句并执行: Use YGGL GO SELECT Address PhoneNumber

FROM Employees 【思考与练习】 a.用SELECT语句查询Deparments和Salary表的一列或若干列。 b.查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。 c.查询EmployeeID为000001的雇员的地址和电话。 Use YGGL GO SELECT Address PhoneNumber FROM Employees WHERE EmployeeID=’000001’ 【思考与练习】 a.查询月收入高于2000元的员工号码。 b.查询1970年以后出生的员工的姓名和住址。 c.查询所有财务部的员工的号码和姓名。 查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标 题分别指定为地址、电话。 USE YGGL GO SELECT Address AS 地址,PhoneNumber AS 电话 FROM Employees WHERE Sex=0 【思考与练习】查询Employees表中男员工的姓名和出生日期,要求将各列标题用中文标示。 ⑤查询Employees表中员工的姓名和性别,要求SEX值为时显示为“男”,为0时显示为“女”。 SELECTNameAS姓名, CASE WHENSex=1 THEN男 WHENSex=1 THEN女 END AS性别 FROMEmployees

实验三大数据库地查询和视图

实验三数据库的查询和视图 T4.1 数据库的查询 1、目的和要求 (1)掌握SELECT语句的基本语法。 (2)掌握子查询的表示。 (3)掌握连接查询的表示。 (4)掌握SELECT语句的GROUP BY子句的作用和使用方法。 (5)掌握SELECT语句的ORDER BY子句的作用和使用方法。 2、实验准备 (1)了解SELECT语句的基本语法格式。 (2)了解SELECT语句的执行方法。 (3)了解子查询的表示方法。 (4)了解连接查询的表示。 (5)了解SELECT语句的GROUP BY子句的作用和使用方法。 (6)了解 SELECT语句的ORDER BY子句的作用。 3、实验内容 (1)SELECT语句的基本使用。 ①对于实验二给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在“查询分析器”窗口中输入如下语句并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 【思考与练习】 用SELECT语句查询Departments表和Salary表中所有信息。

新建一个查询,在“查询分析器”窗口中输入如下语句并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 在“消息”中会发现总共有60行受影响。 ②用SECECT语句查询Employees表中每个雇员的地址和电话号码。 新建一个查询,在“查询分析器”窗口中输入如下代码并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 在“消息”中会发现有12行记录受影响 【思考与练习】 A、用SELECT语句查询Departments表和Salary表的一列或若干行。

利用SELECT语句查询Departments表和Salary表中 EmployeeID为000001的记录,在“查询分析器”中输入以下代码。 执行后在下方会出现所有EmployeeID=000001的记录 B、查询Employees表中部门号和性别,要求使用DISTINCT消除重复行。 对表只选择某些行时,可能会出现重复行。此时就需要使用DISTINCT关键字消除结果中的重复行。此时使用DISTINCT消除在Employees中查询到的部门号和性别的重复行,具体代码如下。 上面代码分别是使用了DISTINCT和没有使用DISTINCT关键字,下面就是两种的结果的对比。 可以从上面的执行结果中看出使用了DISTINCT关键字,结果集中的重复行就被消除了。 ③查询EmployeeID为000001的雇员的地址和电话。

数据库视图的创建

实验五创建视图 实验目的: ①进一步熟悉视图的基本功能; ②熟练掌握视图的创建以及基本的操作; ③熟练sql server的使用方法。 实验步骤: ①建立信息系学生的视图 createview IS_Student asselect Sno,Sname,sage from Student where Sdept='I S' 省略了视图IS_Student的列名,则默认由select中的Sno,Sname,sage组成; 执行结果: select * from IS_Student ②建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学 生 createview IS_Student1asselect Sno,Sname,sage from Student where Sdept='I S'withcheckoption 执行结果与①的结果相同。 ③建立信息系选修了1号课程的学生的视图 createview IS_S1(Sno,Sname,Grade)asselect Student.Sno,Sname,Grade from Student,SC where Sdept='IS'AND student.Sno=SC.Sno and https://www.wendangku.net/doc/9418116530.html,o=1 执行结果:SELECT*FROM IS_S1

④建立信息系选修了1号课程且成绩在90分以上的学生的视图 createview IS_S2asselect Sno,Sname,Grade from IS_S1where grade>=90 执行结果:SELECT*FROM IS_S2 ⑤定义一个反映学生出生年月的视图。 createview BT_S(Sno,Sname,Sbirth)asselect Sno,Sname,2012-Sage from Stu dent 执行结果如下:

查询和视图练习题

查询和视图练习题一 一、单项选择题 1.使用菜单操作方法打开一个在当前目录下已经存在的查询文件zgjk.qpr 后,在命令窗口生成的命令是()。 A)Open Query zgjk.qpr B)Modify Query zgjk.qpr C)Do Query zgjk.qpr D)Create Query zgjk.qpr 2.以下关于“查询”的描述正确的是()。 A)查询保存在项目文件中B)查询保存在数据库文件中 C)查询保存在表文件中D)查询保存在查询文件中 3.如果要在屏幕上直接看到查询结果,“查询去向”应该选择。 A)屏幕 B)浏览C)临时表或屏幕 D)浏览或屏幕 4.在Visual FoxPro 中建立查询时,可以从表中提取符合指定条件的一组记录,()。A)但不能修改记录 B)同时又能更新数据 C)但不能设定输出字段 D)同时可以修改数据,但不能将修改的内容写回原数据表 5.关于查询,正确的叙述是()。 A)不能使用自由表建立查询B)不能使用数据库表建立查询 C)只能使用数据库表建立查询D)可以使用数据库表和自由表建立查询 6.运行D:\JSGL\CX_JS.QPR 查询文件的命令是()。 A)Do Form Cx_Js B)Do Cx_Js.Qpr C)Do Cx_Js D)Do .Qpr 7.关于查询向导的叙述,正确的是()。 A)查询向导只能为一个表建立查询 B)查询向导只能为多个表建立查询 C)查询向导可以为一个或多个表建立查询 D)上述说法都不对 8.下面不正确的描述是()。 A)查询是以.qpr 为扩展名的文件 B)查询实际上是一个定义好的SQL Select 语句,可以在不同场合直接使用 C)查询去向设置为“表”用以保存对查询的设置 D)可以使用自由表和数据库表建立查询 9.关于“查询设计器”,正确的描述是()。 A)“联接”选项卡与SQL 语句的Group By 短语对应 B)“筛选”选项卡与SQL 语句的Having 短语对应 C)“排序依据”选项卡与SQL 语句的Order By 短语对应 D)“分组依据”选项卡与SQL 语句的Join On 短语对应10.在Visual FoxPro 中,关于视图的正确叙述是()。 A)视图与数据库表相同,用来存储数据 B)视图不能同数据库表进行连接操作 C)在视图上不能进行更新操作 D)视图是从一个或多个数据库表导出的虚拟表 11.关于视图的运行,错误的叙述是()。 A)在“项目管理器”中选择要运行的视图,单击“运行”按钮 B)在“视图设计器”修改视图时,选择“查询”菜单的“运行查询”命令 C)在“视图设计器”修改视图时,单击工具栏中的“!”按钮 D)在“项目管理器”中选择要运行的视图,单击“浏览”按钮 12.视图是根据数据库表派生出来的“表”,当关闭数据库后,视图()。 A)仍然包含数据B)不再包含数据 C)用户可以决定是否包含数据D)依赖于是否是数据库表 13.以下关于视图叙述不正确的是()。 A)视图依赖于数据库不能独立存在 B)可以使用“浏览”窗口显示或修改视图中的数据 C)可以用Use 命令打开视图 D)可以使用Modify Structure 命令修改视图的结构 14.下列选项中,视图不能完成的是()。 A)指定可更新的表 B)指定可更新的字段C)删除和视图相关的表 D)设置参数15.在Visual FoxPro 中以下叙述正确的是()。 A)利用视图可以修改数据B)利用查询可以修改数据 C)查询和视图具有相同的作用D)视图可以定义输出去向 16.“查询设计器”和“视图设计器”的主要不同表现在于()。 A)查询设计器有“更新条件”选项卡,没有“查询去向”选项 B)查询设计器没有“更新条件”选项卡,有“查询去向”选项 C)视图设计器没有“更新条件”选项卡,有“查询去向”选项 D)视图设计器有“更新条件”选项卡,也有“查询去向”选项 17.如果要使视图显示两张表中满足条件的记录,应选择的联接类型是()。A)内部联接 B)左联接 C)右联接 D)完全联接 18.有关多表查询结果中,说法正确的是()。 A)只可包含其中一个表的字段 B)必须包含查询表的所有字段 C)可包含查询表的所有字段,也可包含查询表的部分字段 D)以上说法均不正确 二、填空题 1.“查询设计器”的“筛选”选项卡用来指定查询的。

SQL实验四:数据库的查询和视图

二 〇 一 五 年 四 月 题 目:数据库的查询和视图 学生姓名:孙跃 学 院:理学院 系 别:数学系 专 业:信息与计算科学 班 级:信计12-2 任课教师:侯睿 《数据库原理及应用》实验报告

一、练习目的 1、数据库的查询 (1)掌握SELECT语句的基本语法; (2)掌握子查询的表示; (3)掌握连接查询的表示; (4)掌握SELECT语句的GROUP BY子句的作用与使用方法; (5)掌握SELECT语句的ORDER BY子句的作用与使用方法; 2、视图的使用 (1)熟悉视图的概念和作用; (2)熟悉视图的创建方法; (3)熟悉如何查询和修改视图。 二、练习准备 1、数据库的查询 (1)了解SELECT语句的基本语法格式; (2)了解SELECT语句的执行方法; (3)了解子查询的表示方法; (4)了解连接查询的表示; (5)了解SELECT语句的GROUP BY子句的作用与使用方法; (6)了解SELECT语句的ORDER BY子句的作用; 2、视图的使用 (1)了解视图的概念; (2)了解创建视图的方法; (3)了解并掌握对视图的操作。 三、实验程序 实验4.1 数据库的查询 1、(1)对于实验2给出的数据库结构,查询每个雇员的所有数据. USE YGGL GO SELECT* FROM Employees (2)用SELECT语句查询Employees表中每个雇员的地址和电话. SELECT Address,PhoneNumber FROM Employees (3)查询EmployeeID为000001的雇员的地址和电话. SELECT Address,PhoneNumber FROM Employees WHERE EmployeeID='000001' GO (4)查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别制定地址和电话. SELECT Address AS地址,PhoneNumber AS电话 FROM Employees WHERE Sex=0 (5)查询Employees表中员工姓名和性别,要求Sex值为1时显示为“男”,为0时显示为“女”. SELECT Name AS姓名, CASE

数据库-视图归纳

什么是视图? 视图是从一个或多个表(或视图)导出的表 使用视图有什么优点? 答:1.为用户集中数据,简化用户的数据查询和处理 2.屏蔽数据库的复杂性 3.简化用户权限的管理 4.便于数据的共享 5.可以重新组织数据以便输出到其他应用程序中 视同和表有什么区别? 视图是一张虚表,视图所对应的数据不进行实际存储,不占用存储空间,表是一张实表,表所对应的数据进行实际存储,占用存储空间 视图可以用于界面方式创建和命令方式创建,本章着重于命令方式创建命令方式创建视图格式如下: CREATE VIEW 视图名【视图列名1,视图列名2】 AS 查询语句 视图和表一样可以用作查询,更新,修改和删除 例如 查找平均成绩在80分以上学生的学号和平均成绩 CREATE VIEW CS_CJ (学号,平均成绩) AS SELECT 学号,AVG(成绩) FROM CJB GROUP BY 学号

SELECT 学号,平均成绩 FROM CS_CJ WHERE 平均成绩>=80 更新视图的作用? 通用更新视图(包括插入、修改和删除)数据可以修改基本数据;但并不是所有的视图都可以更新,只有对满足可更新条件的视图,才能进行更新。 哪些视图可更新 1.创建视图的SELECT语句中没有聚合函数,且没有TOP、GROUP BY、UNION子句 及DISTINCT关键字 2.创建视图的SELECT 语句中不包括从基本表列通过计算所得的列 3.创建视图的SELECT语句的FROM句子中至少要包含一个基本表 例如向CS_XS视图中插入以下记录 (‘081115’,’刘明仪’,1,’1998-3-2’,’计算机’,50,NULL) INSERT INTO CS_XS VALUES (‘081115’,’刘明仪’,1,’1998-3-2’,’计算机’,50,NULL) 例如:将CS_KC视图中学号为081101的学生的101号课程成绩改为80 UPDATE CS_KC SET 成绩=80 WHERE 学号=’081101’ AND 课程号=’101’ 修改视图,举例说明 例:将CS_SX视图修改为只包含计算机专业学生的学号、姓名和总学分 ALTER VIEW CS_XS AS SELECT 学号,姓名,总学分 FROM XSB WHERE 专业=’计算机’

查询和视图

实验查询和视图 【实验目的】 1.掌握使用SELECT语句查询数据 2.掌握在新建查询窗口中查询数据的方法 【实验内容】 实验表结构如下: 学生表:Student(Sno,Sname,Ssex,Sage,Sdept),其中Sno为主键 课程表:Course(Cno,Cname,Ccredit),其中Cno为主键 学生选课表:Sc(Sno,Cno,Grade),其中Sno ,Cno的组合为主键 要求: 首先创建数据库XSGL,在该数据库中创建以上三个表,在各表中输入一些记录,然后进行下面操作,写出相应命令序列。 1.查询全体学生的学号和姓名。 2.查询全体学生的姓名、学号、所在系。 3.查询全体学生的详细信息。 4.查询全体学生的姓名及其出生年份。 5.查询软件工程系全体学生的名单。 6.查询所有年龄在20岁以下的学生姓名及其年龄。 7.查询考试成绩不及格的学生名单。 8.查询年龄在20-23岁(包括20,23)之间的学生姓名、系别和年龄。 9.查询不在信息系、数学系也不在软件工程系的学生姓名和性别。 10.查询所有姓刘的学生姓名、学号和性别。 11.查询姓“欧阳”且全名为三个字的学生姓名。 12.查询姓名中第二个字为“阳”字的学生的姓名和学号。 13.查询所有不姓刘的学生的姓名、学号。 14.查询缺少成绩的学生的学号以及相应课程号。 15.查询软件工程系年龄在20岁以下的学生姓名。 16.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。 17.查询全体学生情况,结果按所在系的升序排列,同一个系的按年龄降序排列。 18.统计学生总数。 19.查询选修了课程的学生人数。 20.计算选修了1号课程的学生平均成绩。 21.计算选修了1号课程的学生最高分。 22.求各课程号及其相应的选课人数。 23.查询选修了3门以上课程的学生学号。 24.查询每个学生及其选修课的情况. 25.查询选修2号课程且成绩在90分以上的所有学生。 26.查询每个学生的学号,姓名,选修的课程名和成绩。

数据库原理-视图

数据库原理及应用课程计算机系09级本科班级第10讲 章节名称第3章关系数据库标准语言SQL 3.5数据更新 3.6视图 第4章数据库的安全性 4.1数据为安全性概述 教学目的掌握数据更新语句。(Grasp Data Modification Statements) 掌握视图的定义、查询及更新。(Grasp the Definition、Query and Modification of View)并要灵活应用 理解数据库安全性的含义。(Comprehend the meanings of Database Security) 了解TDI/TCSEC可信计算机系统评测标准。(Know the trusted Computer System Evaluation Criteria of TDI/TCSEC) 教学内容1.数据更新(Updata Insert Delete)2.视图的定义、视图的更新、视图的查询3.数据库安全性概述 教学重点数据更新(Updata Insert Delete) 视图的定义、查询及更新。(Definition、Query and Modification of View)理解数据库安全性 教学难点视图的概念及作用(Concepts and Functions of View) 存取控制、视图机制。(Access Control、View Mechanism)专业术语Table View select 作业 3、4、5 教学方法启发式教学法+实例对比法 教学后记

第3章SQL语言 3.5数据更新(学生讲) 3.6视图 视图的特点:1、虚表,是从一个或几个基本表(或视图)导出的表 2、只存放视图的定义,不会出现数据冗余 3、基表中的数据发生变化,从视图中查询出的数据也随之改变 基于视图的操作:查询、删除、受限更新、定义基于该视图的新视图 一、定义视图 1.建立视图 语句格式:CREATE VIEW<视图名>[(<列名>[,<列名>]…)] AS<子查询> [WITH CHECK OPTION]; 说明: ●DBMS执行CREATE VIEW语句时只是把视图的定义存入数据字典,并不执行其中的SELECT 语句。在对视图查询时,按视图的定义从基本表中将数据查出。 ●组成视图的属性列名:全部省略或全部指定 省略:由子查询中SELECT目标列中的诸字段组成 明确指定视图的所有列名: (1)某个目标列是集函数或列表达式 (2)目标列为* (3)多表连接时选出了几个同名列作为视图的字段 (4)需要在视图中为某个列启用新的更合适的名字 2.视图的各种形式 1)行列子集视图 [例1]建立信息系学生的视图。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept='IS'; 特点:从单个基本表导出、只是去掉了基本表的某些行和某些列、保留了码 2)有WITH CHECK OPTION选项的视图 透过视图进行增删改操作时,不得破坏视图定义中的谓词条件(即子查询中的条件表达式) [例2]建立信息系学生的视图,并要求透过该视图进行更新操作只涉及信息系学生。 CREATE VIEW IS_Student AS

第7章 查询与视图

第7章查询与视图 一、是非题。 1.查询是一个预先定义好的SQL SELECT语句文件。 *A.对 B.错 2.视图是一个预先定义好的SQL SELECT语句文件。 A.对* B.错 3.查询和视图是同一种文件,只是名称不同。 A.对* B.错 4.查询和视图都是一个存储数据的表。 A.对* B.错 5.通过视图可以对表进行查询。 *A.对 B.错 6.通过视图可以对表进行更新。 *A.对 B.错 7.视图是一个虚表。 *A.对 B.错 8.视图就是一种查询。 A.对* B.错 9.在VFP中建立查询,可以从表中提取符合指定条件的一组记录,同时又能更新数据。 A.对* B.错 10.在VFP中建立查询中,只能根据自由表建立查询。 A.对* B.错 二、单选题。 1.查询和视图的共同点是____。 *A.有相应的SQL语句 B.是一个单独的文件 C.可以存放在数据库中 D.可以更新 2.如果要将与表的某个关键字内容的记录在输出结果中合并成一条记录,则应选用视图设计器的____选项卡。 A.排序依据 B.更新条件 *C.分组依据 D.视图参数 3.创建视图的命令是____。 A.CREAT VIEW B.MODIFY VIEW *C.CREAT SQL VIEW D.MODIFY SQL VIEW 4.如果要在查询结果中列出在最前面的5条记录,要在SELECT-SQL命令中添加参数____。 A.next 5 B.record 5 C.first 5 * D.top 5 5.如果要将视图中的修改传送到原始记录中,则应当选用视图设计器中的____选项卡。 A.传输条件* B.更新条件 C.修改条件 D.视图参数

查询与视图 内容

第二章查询与视图 一.复习提问,引入新课: 复习数据表中数据的查找、替换、排序和筛选等操作,引入创建查询和视图的方法和操作。 二.新课教学: 1、查询概述 查询则是对表中的数据进行检索、统计、分析、查看和更改的又一个非常重要的数据库对象.简单来说,表是将数据进行了分割,而查询则是从多个表中查找到满足条件的记录组成一个动态数据表,并以数据表视图的方式显示查询的类型: ●选择查询 ●参数查询 ●交叉表查询 ●操作查询 ● SQL 查询 2、创建选择查询 修改上个查询,使其满足要求:检索高考总分750分以上(含750)

的学生记录,并要求按“性别”升序、“高考总分”降序对查询结果的记录进行排序(即先按“性别”字段值升序排序,当“性别”字段值相同时再按“高考总分”字段值降序排序),并要求显示学号、姓名、班级名称、性别和高考总分五个字段。 交叉表查询 使用交叉表查询可以计算并重新组织数据的结构对“学生”表创建的交叉表查询,计算各班级的男、女学生的人数。 参数查询 参数查询是这样一种查询,它在运行时显示“输入参数值”的对话框,提示用户输入信息,用户可在该对话框中输入不同的条件参数值,即可检索到满足条件的记录内容。 操作查询 操作查询是仅在一个操作中就可以追加、更改或删除许多记录的查询操作查询。 有如下四种类型: 生成表查询 追加查询 更新查询 删除查询

SQL查询 3、创建视图运行和修改 选择查询的功能是从一个或多个表中检索数据,并且在“数据表视图”中显示结果。查询结果仅仅是一个临时的动态数据表。 向导 设计视图 *举例:在“学生管理系统”数据库中,使用“设计视图”创建一个名为“例4-6查询高考总分750分以上的女生”的查询。 三.课堂提问: 1、使用查询的意义? 2、查询主要包含几种方法? 3、SQL是什么? 四.课堂小结: 1、创建查询的各种类型; 2、视图的运行方式方法; 3、多表之间查询的设计过程和运行调试方法。 五.布置作业:

数据库更新及视图

课程实验报告 课程名称数据库系统概论班级XXXXX 实验日期XXXXX 姓名XXX 学号XXXXX 实验成绩 实验名称实验2:数据更新及视图 实验目的及要求1.掌握数据更新语句;2.掌握视图的使用。 实验环境操作系统:Windows DBMS:SQL Server 2005 实验内容商品(商品号字符(3),商品名字符(20),单价浮点型,商品类别字符(5),供应商字符(20)); 顾客(顾客号字符(3),姓名字符(10),住址字符(20)); 购买(顾客号字符(3),商品号字符(3),购买数量整型); 用SQL语句实现如下题目: 1.创建上述3个表。 2.往表中插入数据: 商品:M01,佳洁士,8.00,牙膏,宝洁; M02,高露洁,6.50,牙膏,高露洁; M03,黑人,7.50,牙膏,联合利华; M04,舒客,6.2,牙膏,舒客; M05,狮王,12.2,牙膏,狮王; 顾客:C01,Dennis,海淀; C02,John,朝阳; 购买:C01,M01,13;C01,M05,12; C01,M04,22;C02,M02,15; 3.将所有的牙膏商品单价增加20%。 4.将宝洁供应商改为P&G。 5.删除所有卖出总数量少于20个的商品信息,不包括从没有卖出的商品。6.删除没有购买记录的商品。 7.创建顾客号,商品号,商品名称,单价,购买数量的视图。 调试过程 及实验结 果 2:往表中插入数据:

3:将所有的牙膏商品单价增加20%: 4:将宝洁供应商改为P&G: 5:删除所有卖出总数量少于20个的商品信息,不包括从没有卖出的商品: 6:删除没有购买记录的商品: 7:创建顾客号,商品号,商品名称,单价,购买数量的视图:

实验4数据库的查询和视图.docx

南京信息工程大学实验(实习)报告 实验(实习)名称实验4 数据库的查询和视图实验(实习)日期2016.10.24 得分指导教师方忠进系计算机专业网络工程年级2014 班次 2 姓名刘信言学号20142346074 一.实验目的 (1)掌握select语句的基本语法; (2)掌握子查询的表示 (3)掌握连接查询的表示 (4)掌握select语句的group by子句的作用和使用方法 (5)掌握select语句的order by子句的作用和使用方法 二、实验准备 (1)了解SELECT语句的基本语法格式; (2)了解SELECT语句的执行方法; (3)了解子查询的表示方法; (4)了解连接查询的表示; (5)了解SELECT语句的GROUPBY子句的作用和使用方法; (6)了解SELECT语句的ORDER BY子句的作用; 三、实验内容 T4.1 数据库的查询 (1)SELECT语句的基本使用。 ①对于实验2给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在查询分析器中输入如下语句并执行:

【思考与练习】 用SELECT语句查询Departments和Salary表中所有的数据信息。

②用SELECT语句查询Employees表中每个雇员的地址和电话。 新建一个查询,在查询分析器中输入如下语句并执行: 【思考与练习】 a. 用SELECT语句查询Deparments和Salary表的一列或若干列。 b. 查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。

③查询EmployeeID为000001的雇员的地址和电话。 【思考与练习】 a.查询月收入高于2000元的员工号码。

查询与视图(4)

单选题:(1.0分) 视图是一组存储在数据库中的特殊的表,当它被打开时,对于本地视图而言,系统将同时在其他工作区所基于的基表打开,这是因为视图包含一条_ __语句 A. SELECT—SQL B. USE C. LOCATE D. SET FILTER TO 解答:A 答题正确 参考答案:A 2. 单选题:(1.0分) 有关查询与视图,下列说法中不正确的是 A. 查询是只读型数据,而视图可以更新数据源 B. 查询可以更新数据源,视图也有此功能 C. 视图具有许多数据库表的属性,利用视图可以创建查询和视图 D. 视图可以更新源表中的数据,存储于数据库中 解答:B 答题正确 参考答案:B 3. 单选题:(1.0分) 不可以作为查询与视图的数据源的是 A. 自由表 B. 数据库表 C. 查询 D. 视图 解答:C 答题正确 参考答案:C 4. 单选题:(1.0分) 不可以作为查询和视图的输出类型 A. 自由表 B. 表单

C. 临时表 D. 数组 解答:D 答题错误 参考答案:B 5. 单选题:(1.0分) 视图与基表的关系是 A. 视图随基表的打开而打开 B. 基表随视图的关闭而关闭 C. 基表随视图的打开而打开 D. 视图随基表的关闭而关闭 解答:A 答题错误 参考答案:C 6. 单选题:(1.0分) 下列关于查询和视图的叙述中,正确的是查询和视图都 A. 保存在数据库中 B. 可以用USE命令打开 C. 可以更新基表 D. 可以作为列表框对象的数据源 解答:D 答题正确 参考答案:D 7. 单选题:(1.0分) “查询”文件的扩展名为 A. .prg B. .fpx C. .qpr D. .qpx 解答:C 答题正确 参考答案:C 8. 单选题:(1.0分)

数据库查询视图

第二章数据的查询的视图 实验指导书 实验目标: 查询语句的编写和视图的创建。 第一部分练习指导(50分钟) 联系1:测试ROWID和ROWNUM伪列 问题: 用户表没有建立主键约束而插入了重复的记录,为了解决数据冗余问题,必须删除表中的重复记录,用户应用程序之、只关心查询结果集中的一部分,需要限制查询返回的行数。 分析: Oracle 的RowID伪列可以唯一地标识表中的一行,可以利用ROWID删除表中重复的记录。ROWNUM伪列返回查询结果集中行的序号,可以通过ROWNUM限制查询返回的行数。 解决方案: (1)启动 SQL *Plus,并登录到数据库。 (3)测试ROWID伪列。 可以看到每个行的ROWID值都是不同的。现在删除第三行。

在次执行查询语句,就可以看到第三条记录已经被删除。由此可见,即使不定义主键,Oracle也可以唯一区分表中的行,因为ROWID可以当作表的主键。(4)测试ROWNUM伪列。 上述命令返回两条记录。可以看出,使用ROWNUM 伪列可以实现类似SQL SERVER 中的TOP N功能。 练习2:使用select语句创建表 问题: 假如scott用户下的表emp要做比较大的调整。Select语句可以与其它表中的重要的记录做一个副本。 分析: Select 语句可检索存储在数据库中的数据。Select 语句还可以与其它的DDL 和DML语句一起使用来执行各种操作,如创建表、插入记录和指定列的别名等。 解决方案: (1)创建表emp表的副本,但不包含表中的记录。 (2)使用select 语句选择记录并插入到另一个表中。

练习3: 使用子查询 问题 编写sql语句,查询出工资比blake高的员工的信息。 解决方案 (1)先查询出blake的工资。 (2)利用where条件筛选出比blake的工资高的员工的信息。 (3)在sql提示符下输入一下命令,查看结果。 select * from emp where sal > (select sal from emp where ename='BLAKE'); 第二部分练习(50分钟) 1.使用上一次练习中创建的三个表,查询出所有数学考试成绩都在60分以上的学生的名字和所在班级。 分析: (1)在成绩表中查询出数学成绩在60分以上的学生。 (2)利用where语句在学生信息表中筛选出这些学上的信息。 2.利用学生信息表创建一个视图,只显示学生的姓名和年龄。 3.创建一个视图,显示学生的姓名和平均成绩,并按照分数升序排列。 提示:使用 A VG 函数和 ORDER BY 子句. 4. 编写语句以显示vendor_master表中vencode,venname 和venadd列,如果veradd列问空,则该语句显示venadd1,否则显示veradd2. 提示:使用NVL2函数 第三部分作业 1.按照第二部分练习1的要求创建一个视图。 2.编写一个sql语句,查询出所有平均分数在70和80分之间的学生信息。 3.编写一个sql语句,查询出某一个班所有课程的平均分数。 编写语句以显示order_master表中的订单的orderno,同时要显示系统日期与该订单的del_date的月份数差值,将该值四舍五入显示月份数。

视图与查询的区别

一、视图与查询的区别 功能不同。视图可以更新字段内容并返回原表,而查询文件中的记录数据不能修改。这是视图与查询的本质区别。 归属不同。视图不是一个独立的文件,它保存在数据库中。查询文件是一个独立的文件,不属于数据库。 访问限制不同。视图的数据来源可以是本地数据源,也可以是远程数据源,而查询不能访问远程数据源。 输出去向不同。视图只能当表使用,而查询可以选择多种查询去向,如表、图表、报表、标签等多种形式。 使用方法不同。视图可以作为数据源被引用,而查询不能被引用。 使用方式不同。视图只有所属的数据库被打开时才能使用。而查询可在“命令”窗口中执行。 二、数据库 在创建关系之前,要关联的表之间必须有公共的字段和索引。在数据库中创建的关系称为“永久关系”,之所以成为永久关系,是因为这种表与表之间的关系作为数据库的一部分存储在数据库文件中。 两个建立了关系的表可以分为父表和子表。显然,一个父亲可以有一个或多个子女,而每个子表只能有一个父表。这样两个表之间的关系就由子表在建立关系使用的索引类型决定了。如果子表索引类型为[主索引]或[候选索引],那么,两表之间就是一对一关系。否则,若子表索引类型为[普通索引]或[唯一索引],那么,两表间就是一对多关系。而作为父表来说,它在建立关系时使用的索引类型就只能是

[主索引]或[候选索引]。 三、查询 在多表查询中,可以使用数据库表、自由表、本地视图或远程视图的任意组合。 在查询中,我们在表之间建立的联接与数据库中表之间的关系是不同的。在查询中,表之间建立的联接是以选择标准存在,不会象数据库中表之间的持续关系那样持续保存下来,也不必建立在索引的基础上。 只有当字段的大小相等,且数据类型相同时才能建立联接。 同表之间的永久关系一样,一个表不能同时为两个父表的子表,也不能同时为两个子表的父表。

实验三--数据库中的数据查询及视图操作实验报告

实验三--数据库中的数据查询及视图操作实验报告

长春大学计算机学院科学与技术专业 数据库原理实验报告 实验 名称: 实验三数据库中的数据查询及视图操作(1) 班级: 姓 名: 学 号: 实验地点: 日期: 一、实验目的: 1.继续熟练SQL SERVER 2005/2008系统或KingBase ES V7.0的使用; 2.掌握SELECT语句的使用。 3.掌握单表查询,多表查询以及嵌套查询。 二、实验内容、要求和环境: 【实验要求】 注:将完成的实验报告重命名为:班级+学号+姓名+(实验三),(如:041540538张三(实验三)),提交到SPOC学堂。 1.实验课要携带教材、学习辅导、老师下发的实验报告文档等。 2.课前要对实验内容和步骤部分进行预习。 【实验环境】 1.SQL SERVER 2005/2008; 2.KingBase ES V7.0 ,人大金仓。 【实验内容和步骤】

针对实验一建立的数据库的表,用select语句完成如下查询操作,写出select语句,并给出操作结果。 1.针对SPJ数据库中的四个表,实现如下查询: (1)求供应工程J1零件的供应商号码SNO; (2)求供应工程J1零件P1的供应商号码SNO; (3)求供应工程J1零件的供应商名SNAME; (4)求供应工程J1零件P1的供应商名SNAME; (5)求供应工程J1零件为红色的供应商号码 SNO; (6)求没有使用天津供应商生产的红色零件的 工程号JNO; (7)求至少用了供应商S1所供应的全部零件的 工程号JNO; (8)找出使用上海产的零件的工程名称; 2.针对学生-课程数据库中的三个表,用嵌套方法查询实现如下查询: (1)查询选修了数据库的学生姓名。 (2)查询比计算机系CS所有学生年龄都大的学生信息。 (3)列出“李勇”选修的所有课程的课名和成绩。(4)查询数据库的先行课的课程名。 3.针对实验一建立的SPXS数据库中的三个表,实现如下查询: (1)查询与商品“电视”颜色相同的商品名; (2)查询不销售商品P2的商店名; (3)查询至少销售商品P1、P2两种商品的商店名; (4)所有商店都销售的商品号。 (5)只销售一种商品P4的商店名。 三、实验结果与分析: 写出操作语句,粘贴查询结果(粘贴结果要求粘贴SQL Server Managemet Studio整个窗口):

相关文档
相关文档 最新文档