数据库SQL语言语法总结5---视图

一 :创建
(只创建逻辑结构,没有实际的数据)(视图就是显示物理数据,不额外创建其他数据)
create view <视图名> [(<列名1>[,<列名2>]…)] as <子查询> [with check option]
作用:显示符合子查询条件的列1 列2…….
[with check option]表示当用户做更新操作时,是否进行约束条件的检查(例2将详细叙述)

下面结合几个例子帮助各位看客来了解以上语句的用法:

前提条件:
数据库中现存在3个关系表
Student (Sno ,Sname,Ssex,Sage,Sdept);
解释:学生(学号,学生姓名,学生性别,学生年龄,学生专业);
Course(Cno,Cname,Cpno);
解释:课程(课程号,课程名,可能的先修课程);
SC(Sno,Cno,Grade);
解释:学生选课情况(学号,课程号,成绩)

例1:显示IS专业的学生的学号,姓名,年龄,并将视图名改为IS_ Student—————— create view IS_Student as select Sno,Sname,Sage from Student where Sdept = ‘IS’

例2:显示IS专业的学生的学号,姓名,年龄,并将视图名改为IS_ Student—————— create view IS_Student as select Sno,Sname,Sage from Student where Sdept=’IS’ with check option

[with check option]的意思是,当用户插入新的记录时,视图检测是否满足约束条件(Sdept=’IS’),不加[with check option]则数据库不检测专业是否为IS。

例3:显示IS_ S1视图,其中包换学号姓名和年级这三个属性,这个视图描述的是专业为IS且选修了1号课程的学生—————create view IS_S1(Sno,Sname,Grade) as select Student.Sno,Sname,Grade from Student,SC where Sdept = ‘IS’ and Student.Sno=SC.Sno and SC.cno=’1’ (此例中属性列名称必不可少,且Sno因为在Student和SC中都存在,所以必须显性指出是Student下的)

例4: create view IS_S2 as select * from IS _S1 where Grade >=90 ——在例3的基础上筛选出分数在90分以上的学生的信息(此例子只为表明select可以从视图中选择查询)

例5: 显示视图,显示每个学生的学号和选修的课程的平均分—————create view S_G(Sno,Gavg) as select Sno,avg(Grade) from SC group by Sno

二:删除视图
drop view <视图名>
例: drop view IS_S1 ——–将这个视图清除,并且使建立在此视图基础上的其他视图都不再起作用

三:查询视图
例1:select * from IS_Student where Sage<20 (IS _Student详细信息来自于一中的例2) 这个语句在数据库内部被转化为 select Sno,Sname,Sage from Student where Sdept=’IS’ and Sage <20

例2: 查询IS专业且选修了1号课程的学生的学号和姓名————select Sno,Sname from IS_Student,SC where IS _Student.Sno=SC.Sno and SC,Cno=’1’ (from后可以跟视图和关系表)

例3:查询平均分>=90的学生的学号和平均分————–select * from S_G where Gavg>=90 (S _G详细信息来自于一中的例5)

四:更新视图
例1:update IS_Student set Sname=’刘晨’ where Sno=’95020’;
在数据库内部等价于 update Student set Sname=’刘晨’ where Sno=’95020’ and Sdept=’IS’; (如create 视图时没有加 with check option ,则数据库内部等价于update Student set Sname=’刘晨’ where Sno=’95020’)

例2: insert into IS_Studnet values(‘95020’,’赵新’,20); 如创建视图时加with check option,则数据库内部等价于 insert into Student(Sno,Sname,Sage,Sdept) values(‘95020’,’赵新’,20,’IS’),否则则等价于Student(Sno,Sname,Sage) values(‘95020’,’赵新’,20)专业为空

当然有些视图不允许更新:
1)视图由两个以上的基本表导出
2)视图的字段来自字段表达式(经过运算)或常数
3)视图的字段来自集合函数
4)视图定义含group by子句(存在group by语句 时查询也会受到影响)
5)视图定义中含distinct短语
6)视图定义中有嵌套查询,并且内层查询中的from子句设计的表也是导出该视图的基本表
7)一个不允许更新的视图上定义的视图也不允许更新

不允许更新视图时就不要将数据的更新操作的权利下放给用户

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SAP HANA 数据库是一种面向内存的关系型数据库,具有高速的数据处理和查询能力。SQL(Structured Query Language)是一种用于数据库管理的标准化语言,用于查询、添加、删除和修改数据库中的数据。 SAP HANA 数据库 SQL 参考手册为用户提供了详细的 SQL 语法和语句用法,使得用户能够充分利用 SAP HANA 数据库的强大功能和高效性能。这个手册提供了丰富的语句和函数,是 SAP HANA 数据库操作者必备的工具之一,可以让用户根据自己的需求和数据特点,编写出高效、精确的 SQL 语句。 手册包含了基本的 SQL 语法数据类型,包括数据的增删改查等常用操作。同时,它还提供了高级的特性和函数,如聚合函数、窗口函数、数据挖掘函数等,可以应用于数据分析、数据处理和数据建模等方面。 该手册还解释了 SAP HANA 数据库语句执行过程的细节,包括语句优化、执行计划和性能调优等方面。通过深入了解 SAP HANA 数据库 SQL 参考手册,用户可以更好地理解数据库内部的工作原理,从而进一步优化 SQL 语句的性能。 总之,SAP HANA 数据库 SQL 参考手册是 SAP HANA 数据库用户的重要工具,可以帮助用户更好地理解数据库的功能和性能,编写高效、准确的 SQL 语句,提高数据库的效率和性能。 ### 回答2: SAP HANA数据库SQL参考手册是专门为SAP HANA数据库设计的一份指南。该手册包含了SAP HANA数据库所支持的各种SQL语句和函数,帮助用户更好地了解和使用该数据库。 SAP HANA数据库是一款高性能的内存数据库,可以帮助企业快速处理海量数据。为了发挥其最大的潜力,需要熟练使用SAP HANA数据库的各种SQL语句和函数。而这正是该手册的目的所在。 该手册详细介绍了SQL语句的语法和用法,包括SELECT、INSERT、UPDATE、DELETE等常用语句,还涉及到数据类型、索引、触发器、存储过程等高级主题。此外,手册还提供了各种函数的介绍,如聚合函数、日期函数、文本函数、数值函数等,以及如何创建和使用用户定义函数、视图和游标等。 需要说明的是,SAP HANA数据库SQL参考手册不是用于入门学习的教材。用户需要有一定的数据库基础和编程知识,并了解SQL的一般原理和用法。只有在此基础上,才能更好地理解和使用该手册。 总之,SAP HANA数据库SQL参考手册是一份非常重要的工具,对于想要熟练使用SAP HANA数据库的开发人员和数据库管理员非常有用。 ### 回答3: SAP-HANA数据库SQL参考手册是一本非常有用的工具,它为用户提供了丰富的语法和查询操作,以帮助他们更有效地使用SAP-HANA数据库。该手册覆盖了广泛的主题,包括数据建模、查询以及事务处理等方面,也提供了详细的语法和示例,以便用户在使用时可以轻松理解操作。 在手册中,用户可以找到各种不同类型的操作和函数,包括基本的查询操作、子查询、搭配联接使用的查询、排序函数、聚合函数、数据分析函数以及窗口函数等。除此之外,该手册还提供了许多计算、数据转换以及条件函数等,这些都是在数据库中十分有用和常见的操作。 另外,在手册中还提供了对SAP-HANA中特定功能的解释和指导,例如如何使用SAP-HANA中的新型模型,如何使用视图数据封装技术等。无论用户是在处理大量的数据还是在执行复杂的分析操作,该手册都可以为他们提供有用的参考和指导。 总之,SAP-HANA数据库SQL参考手册是一本非常重要的工具,它可以帮助用户更高效地使用SAP-HANA数据库,并帮助他们在处理大量数据和执行复杂的分析操作时提高工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值