视图的定义及维护

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

教学内容:

5.2.3视图的定义及维护

1、视图的定义

语句格式:CREATE VIEW〈视图名〉[<列名1>,<列名2>]…)]AS〈查询语句>;

2、视图的删除

语句格式:DROP VIEW〈视图名〉

3、关于视图的说明

5.3SQL的数据更新功能

5.3.1数据插入

1、使用常量插入一条记录

语句格式:INSERT INTO〈表名〉[(〈列名1〉[,〈列名2〉,…])]VALUES(〈常量1〉)[,〈常量2〉,…])

语句功能:将新记录插入指定表中。

2、在表中插入子查询的结果

语句格式:INSERT INTO〈表名〉[(〈列名1〉[,〈列名2〉,…])]<子查询>;

5.3.2数据更新

语句格式:UPDATE〈表名〉

SET〈列名1〉=〈表达式1〉[,〈列名2〉=〈表达式2〉…]

[WHERE〈条件表达式〉];

语句功能:将表中符合条件的记录的某些列用表达式的值替代。

5.3.3数据删除

语句格式:DELETE FROM〈表名〉

[WHERE〈条件表达式1〉];

5.4SQL的数据查询功能

5.4.1SELECT语句介绍

1、SELECT语句格式

SELECT[ALL|DISTINCT]<目标列组>

FORM〈表名〉

[WHERE<记录筛选条件>

[GROUP BY〈分组列1〉][,〈分组列2〉…]][HAVING]〈组筛选条件〉]

[ORDER BY〈排序列1〉[ASC|DESC][,〈排序列2〉[ASC|DESC]…]]

语句功能:从指定的表中选择满足条件的记录。

2、SELECT子句的操作符

(1)算术操作符

SQL的算术操作符有:+、-、*、/四种。

(2)比较操作符

比较操作符用于测试两个数据的关系。

SQL的比较操作符有:=、>、<、>=、<=、!=(不等于)、<>、!>(不大于)、!<(不小于)九种。

(3)逻辑操作符

(4)组合查询操作符

SQL的组合查询操作符是针对传统关系运算的操作符,它包括UNION(并查询)、MINUS(差查询)和INTERSECT(交查询)三种。

组合查询操作符的使用格式为:

<查询1><组合操作符><查询2>

5.4.3连接查询

1、等值连接和非等值连接

连接查询中,用来连接两个表的条件称为连接条件或连接谓词。连接条件的一般格式为:[<表名1>.]<列名><比较运算符>[<表名2>.]<列名>

2、自身连接

连接操作不只是在两个表之间进行,一个表内还可以进行自身连接操作。表自身的连接操作称为自身连接。

5.4.4嵌套查询

1、使用IN操作符的嵌套查询

当IN操作符后的数据集需要通过查询得到时,就需要使用IN嵌套查询。

2、使用比较符的嵌套查询

例如:查询选修了课程C1的成绩高于张亮的学生学号和成绩。

SELECT学号,成绩

FROM选课

WHERE课程号='C1'AND成绩>

(SELECT成绩

FROM选课

WHERE课程号='C1'AND学号=

(SELECT学号

FROM学生

WHERE姓名='张亮'));

3、使用ANY或ALL操作符的嵌套查询

使用ANY或ALL操作符时必须与比较符配合使用,其格式为:

<字段><比较符>[ANY|ALL]<子查询>

4、使用EXISTS操作符的嵌套查询

EXISTS代表存在量词。EXISTS操作符后子查询的结果集中如果不为空,则产生逻辑真值“TRUE”,否则产生假值“FALSE”。

5.4.5组合查询

将SELECT语句的查询结果集再进行集合运算就构成了SQL的组合查询。SQL的组合查询操作符有UNION(并操作)、INTERSECT(交操作)、MINUS(差操作)3种。

例如:查询选修了C1课程但没有选修C2课程的学生学号。

SELECT学号

FROM选课

WHERE课程号='C1'

MINUS

SELECT学号

FROM选课

WHERE课程号='C2';

5.4.6使用分组和SQL函数查询

例如:求学生的总人数。

SELECT COUNT(*)

FROM学生;

例如:求选修了课程的学生人数。

SELECT COUNT(DISTINCT学号)

FROM选课;

例如:求课程和选修该课程的人数。

SELECT课程号,COUNT(学号)

FROM选课

GROUP BY课程号;

例如:求选修课程超过3门课的学生学号。

SELECT学号

FROM选课

FROUP BY学号HAVING COUNT(*)>3;

小结:本次课主要介绍如何用SQL语句建立查询的方法,以及用SQL语句实现数据的定义功能。

作业:P100—1(6)—(10),2,3(3)——(9)

相关文档
最新文档