当前位置:首页 » 编程语言 » 使用sql语句进行分组检索时

使用sql语句进行分组检索时

发布时间: 2022-05-29 01:13:45

数据库SQ习题

最佳答案:
习题
一、选择题
1.关于查询语句中ORDER BY子句使用正确的是( D )。
A.如果未指定排序字段,则默认按递增排序
B.表的字段都可用于排序
C.如果在SELECT子句中使用了DISTINCT关键字,则排序字段必须出现在查询结果中
D.联合查询不允许使用ORDER BY子句
第2~4题使用7.7节“示例分析”中数据表。
2.使用查询语句:
SELECT STUDENT.学号,STUDENT.姓名,SUM(分数)
FROM STUDENT,GRADE
WHERE STUDENT.学号=GRADE.学号
GROUP BY STUDENT.学号,STUDENT.姓名
查询结果是(A )。
A.按学号分类的每个学生所有课程成绩的总分 B.按学号分类的每个学生各课程成绩
C.全体学生的按各课程分类的成绩总分 D.所有学生所有课程成绩总分
3.使用查询语句:
SELECT MAX(分数) AS 最高分
FROM STUDENT,curriculum,GRADE
WHERE STUDENT.学号=GRADE.学号
AND curriculum.课程编号=GRADE.课程编号
AND 课程名称='数据库技术及应用'
查询的结果是( )。
A.87 B.91 C.82 D.90
很遗憾!不知道表中的记录数据,无法判断是哪个选项,但是题意是检索出:选修课程'数据库技术及应用'的学生中成绩最高的。看一下表就知道了。
4.查询选修了课程编号为“0002”的学生的学号和姓名,以下( A )语句是错误的。
A.
SELECT 学号,姓名FROM STUDENT
WHERE 学号=(SELECT 学号FROM GRADE WHERE 课程编号='0002')
B.
SELECT STUDENT.学号,STUDENT.姓名
FROM STUDENT,GRADE
WHERE STUDENT.学号=GRADE.学号AND 课程编号='0002'
C.
SELECT STUDENT.学号,STUDENT.姓名
FROM STUDENT JOIN GRADE ON STUDENT.学号=GRADE.学号
WHERE GRADE.课程编号='0002'
D.
SELECT 学号,姓名FROM STUDENT
WHERE 学号IN (SELECT 学号FROM GRADE WHERE 课程编号='0002')
5.下列关于查询结果错误的是( D )。
A.查询结果可以显示在表格中
B.查询结果可以按文本方式显示
C.以文本和表格显示的查询结果在保存时,其文件格式不同
D.不管以哪种方式查看,查询结果都会显示在查询结果窗口中
6.在T-sql语句中,与表达式“仓库号NOT IN ('wh1','wh2')”功能相同的表达式是( D )。
A.仓库号='wh1' AND 仓库号='wh2' B.仓库号!='wh1' OR 仓库号# 'wh2'
C.仓库号<>'wh1' OR 仓库号!='wh2' D.仓库号!='wh1' AND 仓库号!='wh2'
7.在T-SQL 的SELECT语句中用于实现关系的选择运算的短语是( C )。
A.FOR B.WHILE C.WHERE D.CONDITION
8.使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当( B )。
A.使用WHERE子句 B.在GROUP BY后面使用HAVING子句
C.先使用WHERE子句,再使用HAVING子句 D.先使用HAVING子句,再使用WHERE子句
二、填空题
1.在查询语句中,应在__SELECT____子句中指定输出字段。
2.如果要使用SELECT语句返回指定条数的记录,则应使用_TOP__关键字来限定输出字段。
3.当一个子SELECT的结果作为查询的条件,即在一个SELECT命令的WHERE子句中出现另一个SELECT命令,这种查询称为__嵌套____查询。
4.连接查询可分为3种类型:_内连接___、__外连接__和交叉连接。
5.若要把查询结果存放到一个新建的表中,可使用__into tabale 或into dbf____子句。
三、判断题
1.在关系数据库SQL Server中,用于检索数据的语句是T-SQL的定义语言。 (× )
2.逻辑运算符(AND、NOT、OR)的运算顺序是AND→OR→NOT。 ( × )
3.用于WHERE子句的查询条件表达式可用的比较运算符为:=(等于)、!=或<>(不等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)。 ( √ )
4.SELECT语句的DISTINCT参数表示输出无重复结果的记录。 ( √ )
5.如果要使SELECT的查询结果有序输出,需要用GROUP BY子句配合。 ( × )

② sql语句 分组查询 急用,在线等啊

你可以通过where条件来限制只查询哪条记录。
比如,我要查出nama=1的记录,可以使用sql语句
select
*
from
table1
where
name='1'
如果我要查询name=1或者name=2的记录,可以使用sql语句
select
*
from
table1
where
name='1'
or
name='2'
或者
select
*
from
table1
where
name
in
('1','2')

③ SQL语句分组查询

是SQL SERVER吗?就是想要怎样把查询结果导出到文本文档是吧?
EXEC master..xp_cmdshell 'BCP "select XLBH,CMBH,SUM(XSJE) from MDFSLSK group by XLBH,CMBH" queryout D:\XXX.TXT -c -T'

好像要在同一行才能正确执行,MDFSLSK表前可能要加上数据库名.用户名. 比如这样:数据库名.DBO.MDFSLSK
-T是使用信任连接 当然可以换成 -U"sa" -P"password",要详细了解就查一下BCP

④ 使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当( )。

《数据库系统概论》第五版p99有这样一句话:where子句与having短语的区别在于作用对象不同


《数据库系统概论》是2006年高等教育出版社出版的图书,作者是王珊、萨师煊。王珊教授,是中国人民大学信息学院教授、博士生导师。中国计算机学会副理事长,中国计算机学会数据库专委会主任,教育部第五届科学技术委员会委员,中国科学技术协会第六届全国委员会委员等。


数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质 、处理对象和管理系统的集合体。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。

⑤ 使用sql语句进行分组查询时为了去掉不满足条件组应该

select a,sum(qty) from table where c='t' group by a having sum(qty)>10

去掉不满足条件,用“having”

⑥ SQL中的Group By的查询过程多列分组的查询过程是怎样的

Group By子句
Group By子句可以将表的行划分为不同的组。分别总结每个组,这样就可以控制想要看见的详细信息的级别。

语法:

[ Group By [ ALL ] Group_By_expression[ ,...n ]

[ WITH { CUBE | ROLLUP } ] ]

参数说明:

ALL:包含所有组和结果集,甚至包含那些任何行都不满足WHERE子句指定的搜索条件的组和结果集。如果指定了ALL,将对组中不满足搜索条件的汇总列返回空值。不能用CUBE或ROLLUP运算符指定ALL。如果访问远程表的查询中有WHERE子句,则不支持Group By ALL操作。

Group_By_expression:对其执行分组的表达式。Group_By_expression也称为分组列。Group_By_expression可以是列或引用列的非聚合表达式。在选择列表内定义的列的别名不能用于指定分组列。对于不包含CUBE或ROLLUP的Group By子句,Group_By_ expression的项数受查询所涉及的Group By列的大小、聚合列和聚合值的限制。该限制从8060字节的限制开始,对保存中间查询结果所需的中间级工作表有8060字节的限制。如果指定了CUBE或ROLLUP,则最多只能有10个分组表达式。

CUBE:指定在结果集内不仅包含由Group By提供的正常行,还包含汇总行。在结果集内返回每个可能的组和子组组合的Group By汇总行。Group By汇总行在结果中显示为NULL,但可用来表示所有值。使用GroupING函数确定结果集内的空值是否是Group By汇总值。结果集内的汇总行数取决于Group By子句内包含的列数。Group By子句中的每个操作数(列)绑定在分组NULL下,并且分组适用于所有其他操作数(列)。由于CUBE返回每个可能的组和子组组合,因此,不论指定分组列所使用的是什么顺序,行数都相同。

ROLLUP:指定在结果集内不仅包含由Group By提供的正常行,还包含汇总行。按层次结构顺序,从组内的最低级别到最高级别汇总组。组的层次结构取决于指定分组列时所使用的顺序。更改分组列的顺序会影响在结果集内生成的行数。

使用Group By子句的注意事项。

(1)在SELECT子句的字段列表中,除了聚集函数外,其他所出现的字段一定要在Group By子句中有定义才行。例如“Group By A,B”,那么“SELECT SUM(A),C”就有问题,因为C不在Group By中,但是SUM(A)是可以的。

(2)SELECT子句的字段列表中不一定要有聚集函数,但至少要用到Group By子句列表中的一个项目。例如“Group By A,B,C”,则“SELECT A”是可以的。

(3)在SQL Server中text、ntext和image数据类型的字段不能作为Group By子句的分组依据。

(4)Group By子句不能使用字段别名。
1.按单列进行分组

Group By子句可以基于指定某一列的值将数据集合划分为多个分组,同一组内所有记录在分组属性上具有相同值。

示例:

把“student”表按照“性别”这个单列进行分组。在查询分析器中输入的SQL语句如下:

use student

select 性别

from student

Group By 性别

但仍然要强调SELECT子句必须与Group By后的子句或者是分组函数列相一致。

例如,由于下列查询中“姓名”列既不包含在Group By子句中,也不包含在分组函数中,所以是错误的。错误的SQL语句如下:

use student select 姓名,性别 from student Group By 性别

例如,在“grade”表中,按“学期”分组查询。SQL语句如下:

use studnet select 学期 from grade Group By 学期

2.按多列进行分组

Group By子句可以基于指定多列的值将数据集合划分为多个分组。

示例:

在“student”表中,按照“性别”和“年龄”列进行分组。在查询分析中输入的SQL语句如下:

use student

select 性别,年龄

from student

Group By 性别,年龄

在“student”表中,首先按照“性别”分组,然后再按照“年龄”分组。

再举一个例子,例如,在“grade”表中,按照“学号”和“课程代号”列进行分组。SQL语句如下:

use student

select 学号,课程代号 from grade Group By 学号,课程代号

按多列进行分组时有NULL组的是如何处理的。当表按多列进行分组时有NULL组,这时NULL被作为一个特定值处理,就像其他任何值一样。也就是说,如果在某个分组列中存在两个NULL,则按它们有相同的值那样处理,并将它们放在相同的组中。

示例:

在“grade”表中,按“学期”和“课程代号”列进行分组。在查询分析器中输入的SQL语句如下:

use student

select 学期,课程代号

from grade

Group By 学期,课程代号

3.与聚集函数一起使用

Group By子句是经常与聚集函数一起使用。如果SELECT子句中包含聚集函数,则计算每组的汇总值,当用户指定Group By时,选择列表中任一非聚集表达式内的所有列都应包含在Group By列表中,或者Group By表达式必须与选择列表表达式完全匹配。

示例:

在“student”表中,分别求男女生的平均年龄。在查询分析器中输入的SQL语句如下:

use student

select 性别,avg(年龄) as 平均年龄

from student

Group By 性别

例如,在“student”表中,分别求有多少个男生和女生。SQL语句如下:

use student

select 性别,count(性别) as 人数 from student Group By 性别

说明:关于聚合函数的详细讲解可参阅9.2.1节。

4.与HAVING子句一起使用

HAVING子句对Group By子句选择出来的结果进行再次筛选,最后输出符合HAVING子句中条件的记录。HAVING子句的语法与WHERE子句的语法相类似,惟一不同的是HAVING子句中可以包含聚合函数。

语法:

[HAVING <search_condition>]

参数说明:

<search_condition>:指定组或聚合应满足的搜索条件。当HAVING与Group By ALL一起使用时,HAVING 子句替代ALL。

示例:

在“student”表中,按“性别”分组求平均年龄,并且查询其平均年龄大于21的学生信息。在查询分析器中输入的SQL语句如下:

use student

select avg(年龄), 性别

from student

Group By 性别

having avg(年龄)>21

在“grade”表中,按“学期”分组求平均成绩,并且查询“平均成绩”大于93的课程信息。在查询分析器中输入的SQL语句如下:
+1 已赞过

⑦ 数据库 范式 选择题

1对于现实世界中事物的特征,在实体-联系模型中使用 a
A)属性描述 B)关键字描述 C)二维表格描述 D)实体描述

2把实体-联系模型转换为关系模型时,实体之间多对多联系在关系模型中是通过 c
A)建立新的属性来实现 B)建立新的关键字来实现
C)建立新的关系来实现 D)建立新的实体来实现

3专门的关系运算不包括下列中的 d
A)联接运算 B)选择运算
C)投影运算 D)交运算

4对关系S和关系R进行集合运算,结果中既包含S中元组也包含R中元组,这种集合运算称为 a
A)并运算 B)交运算
C)差运算 D)积运算

5在数据库设计中,将ER图转换成关系数据模型的过程属于 b
A)需求分析阶段 B)逻辑设计阶段
C)概念设计阶段 D)物理设计阶段

6在概念设计阶段,最常使用的数据模型是 d
A)对象模型 B)物理模型
C)逻辑模型 D)实体联系模型

7关系R1和R2,经过关系运算得到结果是S,则S 是 b
A)一个关系 B)一个表单
C)一个数据库 D)一个数组

8设有关系R(A,B,C,D)及其上的函数相关性集合F=,那么关系R最高是 b
A)第一范式的 B)第二范式的
C)第三范式的 D)BCNF范式的

9设有部门和职员两个实体,每个职员只能属于一个部门,一个部门可以有多名职员。则部门与职员实体之间的联系类型是 b
A)m:n B)1:m
C)m:1 D)1:1

10 使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当 b
A)使用WHERE子句
B)在GROUP BY后面使用HAVING 子句
C)先使用WHERE子句,再使用HAVING子句
D)先使用HAVING 子句,再使用WHERE子句
11关系表达式运算的结果是( c )。
A.数值型 B.字符型 C.逻辑型 D.日期型

12储蓄所有多个储户,储户在多个储蓄所存取款,储蓄所与储户之间是( d )。
A.一对一的联系 B.一对多的联系
C.多对一的联系 D.多对多的联系

13在关系模型中,关系的每一个属性值( d )。
A.不能全同 B.可以全同
C.必须全同 D.是不可分割的

14在数据库三级模式间引入二级映象的主要作用是(a )
A.提高数据与程序的独立性 B.提高数据与程序的安全性
C.保持数据与程序的一致性 D.提高数据与程序的可移植性

15视图是一个“虚表”,视图的构造基于(a )
A.基本表 B.视图
C.基本表或视图 D.数据字典

16SQL语言中,SELECT语句的执行结果是( a)
A.属性 B.表 C.元组 D.数据库

17 DB、DBMS和DBS三者之间的关系是(b )
A.DB包括DBMS和DBS B.DBS包括DB和DBMS
C.DBMS包括DB和DBS D.不能相互包括

18设有关系模式EMP(职工号,姓名,年龄,技能)。假设职工号唯一,每个职工有多项技能,则EMP表的主键是( a )
A.职工号 B.姓名,技能 C.技能 D.职工号,技能

19 在SQL语句中,与表达式"仓库号 NOT IN("wh1","wh2")"功能相同的表达式是d
A)仓库号="wh1" AND 仓库号="wh2" B)仓库号!="wh1" OR 仓库号!= "wh2"
C)仓库号="wh1" OR 仓库号="wh2" D)仓库号!="wh1" AND 仓库号!="wh2"

20在SQL SELECT语句中用于实现关系的选择运算的短语是c
A)FOR B)WHILE
C)WHERE D)CONDITION

⑧ 数据库 选择题

1对于现实世界中事物的特征,在实体-联系模型中使用 a
A)属性描述 B)关键字描述 C)二维表格描述 D)实体描述

2把实体-联系模型转换为关系模型时,实体之间多对多联系在关系模型中是通过 c
A)建立新的属性来实现 B)建立新的关键字来实现
C)建立新的关系来实现 D)建立新的实体来实现

3专门的关系运算不包括下列中的 d
A)联接运算 B)选择运算
C)投影运算 D)交运算

4对关系S和关系R进行集合运算,结果中既包含S中元组也包含R中元组,这种集合运算称为 a
A)并运算 B)交运算
C)差运算 D)积运算

5在数据库设计中,将ER图转换成关系数据模型的过程属于 b
A)需求分析阶段 B)逻辑设计阶段
C)概念设计阶段 D)物理设计阶段

6在概念设计阶段,最常使用的数据模型是 d
A)对象模型 B)物理模型
C)逻辑模型 D)实体联系模型

7关系R1和R2,经过关系运算得到结果是S,则S 是 b
A)一个关系 B)一个表单
C)一个数据库 D)一个数组

8设有关系R(A,B,C,D)及其上的函数相关性集合F={B→A,BC→D},那么关系R最高是 b
A)第一范式的 B)第二范式的
C)第三范式的 D)BCNF范式的

9设有部门和职员两个实体,每个职员只能属于一个部门,一个部门可以有多名职员。则部门与职员实体之间的联系类型是 b
A)m:n B)1:m
C)m:1 D)1:1

10 使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当 b
A)使用WHERE子句
B)在GROUP BY后面使用HAVING 子句
C)先使用WHERE子句,再使用HAVING子句
D)先使用HAVING 子句,再使用WHERE子句
11关系表达式运算的结果是( c )。
A.数值型 B.字符型 C.逻辑型 D.日期型

12储蓄所有多个储户,储户在多个储蓄所存取款,储蓄所与储户之间是( d )。
A.一对一的联系 B.一对多的联系
C.多对一的联系 D.多对多的联系

13在关系模型中,关系的每一个属性值( d )。
A.不能全同 B.可以全同
C.必须全同 D.是不可分割的

14在数据库三级模式间引入二级映象的主要作用是(a )
A.提高数据与程序的独立性 B.提高数据与程序的安全性
C.保持数据与程序的一致性 D.提高数据与程序的可移植性

15视图是一个“虚表”,视图的构造基于(a )
A.基本表 B.视图
C.基本表或视图 D.数据字典

16SQL语言中,SELECT语句的执行结果是( a)
A.属性 B.表 C.元组 D.数据库

17 DB、DBMS和DBS三者之间的关系是(b )
A.DB包括DBMS和DBS B.DBS包括DB和DBMS
C.DBMS包括DB和DBS D.不能相互包括

18设有关系模式EMP(职工号,姓名,年龄,技能)。假设职工号唯一,每个职工有多项技能,则EMP表的主键是( a )
A.职工号 B.姓名,技能 C.技能 D.职工号,技能

19 在SQL语句中,与表达式"仓库号 NOT IN("wh1","wh2")"功能相同的表达式是d
A)仓库号="wh1" AND 仓库号="wh2" B)仓库号!="wh1" OR 仓库号!= "wh2"
C)仓库号="wh1" OR 仓库号="wh2" D)仓库号!="wh1" AND 仓库号!="wh2"

20在SQL SELECT语句中用于实现关系的选择运算的短语是c
A)FOR B)WHILE
C)WHERE D)CONDITION

⑨ 使用SQL语言的SELECT语句进行分组查询时,如果希望去掉不满足条件的分组,应当使用( )子句

select .... from ...
group by ....
where ...
having ...

对于能够直接判断的,用where就可以排除
对于使用聚和函数产生的值,需要在having中判断例如
where 成绩 > 90
having avg(成绩) > 90

where 和 having 可以同时使用

热点内容
服务器ip转载 发布:2025-02-12 05:19:12 浏览:296
oraclesql插入数据 发布:2025-02-12 05:19:05 浏览:918
stl源码剖析笔记 发布:2025-02-12 05:01:51 浏览:589
教务系统web服务器搭建 发布:2025-02-12 05:01:17 浏览:98
全国dns服务器地址大全 发布:2025-02-12 05:01:13 浏览:683
安卓什么软件能拍到月亮 发布:2025-02-12 04:59:42 浏览:782
手机卡忘记服务密码怎么办 发布:2025-02-12 04:59:10 浏览:374
如何让助理服务器可以被远程 发布:2025-02-12 04:47:11 浏览:770
存储空间不足但 发布:2025-02-12 04:46:27 浏览:278
树莓派编程板 发布:2025-02-12 04:41:45 浏览:909