知识点:
SQL数据查询
章/节:
计算机软件知识
在某企业的工程项目管理系统的数据库中供应商关系Supp、项目关系Proj和零件关系Part的E-R模型和关系模式如下: Supp(供应商号 ,供应商名,地址,电话) Proj(项目号 ,项目名,负责人,电话) Part(零件号 ,零件名) 其中,每个供应商可以为多个项目供应多种零件,每个项目可由多个供应商供应多种零件。SP_P需要生成一个独立的关系模式,其联系类型为(54) 给定关系模式SP_P(供应商号,项目号,零件号,数量)查询至少供应了3个项目(包含3项)的供应商,输出其供应商号和供应零件数量的总和,并按供应商号降序排列。 SELECT 供应商号,SUM(数量) FROM (55) GROUP BY 供应商号 (56) ORDER BY 供应商号DESC;
A.
HAVING COUNT(项目号)>2
B.
WHERE COUNT(项目号)>2
C.
HAVING COUNT(DISTINCT(项目号))>2
D.
WHERE COUNT(DISTINCT(项目号))>3
为保障您的权益,请登录
SQL查询中的子句顺序:SELECT、FROM、WHERE、GROUP BY、HAVING和ORDER BY。SELECT、FROM是必需的,HAVING子句只能与GROUP BY搭配使用。
(1)SELECT子句对应的是关系代数中的投影运算,用来列出查询结果中的属性。其输出可以是列名、表达式、集函数(AVG、COUNT、MAX、MIN、SUM),DISTINCT选项可以保证查询的结果集中不存在重复元组。
(2)FROM子句对应的是关系代数中的笛卡儿积,它列出的是表达式求值过程中须扫描的关系,即在FROM子句中出现多个基本表或视图时,系统首先执行笛卡儿积操作。
(3)WHERE子句对应的是关系代数中的选择谓词。WHERE子句的条件表达式中可以使用的运算符如下表所示。
SQL最简单的查询是找出关系中满足特定条件的元组,这些查询与关系代数中的选择操作类似。简单查询只需要使用3个保留字,即SELECT、FROM和WHERE。
子查询也称为嵌套查询,是指一个SELECT-FROM-WHERE查询可以嵌入另一个查询块之中。在SQL中允许多重嵌套。
聚集函数是以一个值的集合为输入,返回单个值的函数。SQL提供了5个预定义集合函数,即平均值AVG、最小值MIN、最大值MAX、求和SUM及计数COUNT。
使用ANY和ALL谓词必须同时使用比较运算符,其含义及等价的转换关系如下表所示。
在WHERE子句后面加上GROUP BY子句可以对元组进行分组,保留字GROUP BY后面跟着一个分组属性列表。最简单的情况是,FROM子句后面只有一个关系,根据分组属性对其元组进行分组。SELECT子句中使用的聚集操作符仅用在每个分组上。
假如元组在分组前按照某种方式加上限制,使得不需要的分组为空,则在GROUP BY子句后面跟一个HAVING子句即可。
.空值在任何聚集操作中都被忽略。它对求和、求平均值和计数都没有影响,也不能是某列的最大值或最小值。
SQL提供可为关系和属性重新命名的机制,这是通过使用具有以下形式的AS子句来实现的。
AS子句既可出现在SELECT子句中,也可以出现在FROM子句中。
对于字符串进行的最通常的操作是使用LIKE操作符的模式匹配。使用两个特殊的字符来描述模式,即"%"匹配任意字符串、"-"匹配任意一个字符。
查询视图表时,系统先从数据字典中取出该视图的定义,然后将定义中的查询语句和对该视图的查询语句结合起来,形成一个修正的查询语句。