mysql期末考试试卷_MySQL考试试题及答案

时间:2025-04-19 17:22:24

《MySql高级数据分析》期末测试

一、选择题(总分50分,每题2分)

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

A)使用WHERE子句

B)在GROUP BY后面使用HAVING 子句

C)先使用WHERE子句,再使用HAVING子句

D)先使用HAVING 子句,再使用WHERE子句

2、储蓄所有多个储户,储户在多个储蓄所存取款,储蓄所与储户之间是(B)

A.一对一的联系 B.一对多的联系

C.多对一的联系 D.多对多的联系

3、视图是一个“虚表”,视图的构造基于(A)

A.基本表 B.视图

C.基本表或视图 D.数据字典

4、SQL语言中,SELECT语句的执行结果是(B)

A.属性 B.表 C.元组 D.数据库

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

A.职工号 B.姓名,技能 C.技能 D.职工号,技能

6、在SQL语句中,与表达式"仓库号 NOT IN("wh1","wh2")"功能相同的表达式是(D )

A)仓库号="wh1" AND 仓库号="wh2" B)仓库号!="wh1" OR 仓库号!= "wh2"

C)仓库号="wh1" OR 仓库号="wh2" D)仓库号!="wh1" AND 仓库号!="wh2"

7、在SQL SELECT语句中用于实现关系的选择运算的短语是(D )

A)FOR B)WHILE

C)WHERE D)CONDITION

8、根据关系模式的完整性规则,一个关系中的主键(C )。

A.不能有两个B.不能成为另一个关系的外部键

C.不允许空值D.可以取空值

9、若规定工资表中基本工资不得超过5000元,则这个规定属于(A )。

A.关系完整性约束 B.实体完整性约束

C.参照完整性约束 D.用户定义完整性

10、关系数据库中,外码(ForeignKey)是( C)

A)在一个关系中定义了约束的一个或一组属性

B)在一个关系中定义了缺省值的一个或一组属性

C)在一个关系中的一个或一组属性是另一个关系的主码

D)在一个关系中用于唯一标识元组的一个或一组属性

11、以下哪些命令是DDL语句( B )

A. CREATE DATABASE命令

B. ALTER TABLE命令

C. SELECT 命令

D. INSERT命令

12、在SQL中,删除视图用__C___。

A、DROP SCHEMA命令 B、CREATE TABLE命令

C、DROP VIEW命令 D、DROP INDEX命令

13、SQL语句中修改表结构的命令是___C___。

A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE

D、ALTER STRUCTURE

14、定位第一条记录上的命令是___A___。

A、limit 1 B、GO BOTTOM C、GO 6 D、limit 1,1

15、在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过___B___。

A、候选键 B、主键 C、外键 D、超键

16、DELETE FROM S WHERE 年龄>60语句的功能是__A____。

A、从S表中彻底删除年龄大于60岁的记录

B、S表中年龄大于60岁的记录被加上删除标记

C、删除S表

D、删除S表的年龄列

17、在命令窗口执行SQL命令时,若命令要占用多行,续行符是___C___。

A、冒号(???? B、分号(???? C、逗号(,) D、连字符(-)

18、设有图书管理数据库:

图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))

读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))

借阅(借书证号C(4),总编号C(6),借书日期D(8))

对于图书管理数据库,查询0001号借书证的读者姓名和所借图书的书名。

SQL语句正确的是____A__。

SELECT 姓名,书名 FROM 借阅,图书,读者 WHERE;借阅.借书证号="0001" AND;______

A、图书.总编号=借阅.总编号 AND 读者.借书证号=借阅.借书证号

B、图书.分类号=借阅.分类号 AND读者.借书证号=借阅.借书证号

C、读者.总编号=借阅.总编号 AND读者.借书证号=借阅.借书证号

D、图书.总编号=借阅.总编号 AND

19、设有图书管理数据库:

图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))

读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))

借阅(借书证号C(4),总编号C(6),借书日期D(8))

对于图书管理数据库,分别求出各个单位当前借阅图书的读者人次。下面的SQL语句正确的是___A___。

SELECT 单位,______ FROM 借阅,读者 WHERE;借阅.借书证号=读者.借书证号 ______

A、COUNT(借阅.借书证号) GROUP BY 单位

B、SUM(借阅.借书证号) GROUP BY 单位

C、COUNT(借阅.借书证号) ORDER BY 单位

D、COUNT(借阅.借书证号) HAVING 单位

设有图书管理数据库:

图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))

读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))

借阅(借书证号C(4),总编号C(6),借书日期D(8))

对于图书管理数据库,检索借阅了《现代网络技术基础》一书的借书证号。下面SQL语句正确的是__B__

SELECT 借书证号 FROM 借阅 WHERE 总编号=;____________________

A、(SELECT 借书证号 FROM 图书 WHERE 书名="现代网络技术基础")

B、(SELECT 总编号 FROM 图书 WHERE 书名="现代网络技术基础")

C、(SELECT 借书证号 FROM 借阅 WHERE 书名="现代网络技术基础")

D、(SELECT 总编号 FROM 借阅 WHERE 书名="现代网络技术基础")

21 、用一组数据“准考证号:200701001、姓名:刘亮、性别:男、出生日期:1993-8-1"来描述某个考生信息,其中"出生日期"数据可设置为(A )。

A.日期/时间型 B.数字型 C.货币型 D.逻辑型

22、如下图所示,"书目信息"表中被排序的字段是(D )。

A.分类号 B.书名 C.出版日期 D.价格

23、下列描述正确的是( B )。

A.一个数据库只能包含一个数据表 B.一个数据库可以包含多个数据表

C.一个数据库只能包含两个数据表 D.一个数据表可以包含多个数据库

24、如下图所示的关系数据表中,主键最好定为 ( A )。

A.姓名 B.借书证号 C.所教学科 D. T2005001

25、在SELECT语句中,只列出前几行的关键字是( A )。

A.Limit B. distinct C. delete D. from

二、上机题(总分50分)

2.1、数据详情:

表名:pros 产品表

表名:saler 销售商表

表名:pro_sal 销售表

2.2、基于product数据库的三个表,用SQL语言完成以下查询

(1)查询所有产品的产品编号和销售额,并将销售额增加10%后设置别名为“增长额" (3分)

查询语句:

select 产品编号,销售额,销售额*1.1 as 增长额 from pro_sal

查询结果:

(2)查询“华中、华北、东南”地区的销售商名称和地区。(3分)

查询语句:

select 销售商名称,地区 from saler

查询结果:

(3)查找销售商名称的第二个字符是’建’并且只有三个字符的销售商编号和名称。(3分)

查询语句:

select 销售商名称,销售商编号 from saler where substring(销售商名称,2,1)='建' and 销售商名称 like '建'

查询结果:

(4)查询有电话的销售商信息。(3分)

查询语句:

select * from saler where 电话<>"";

查询结果:

(5)查询销售额在2000到5000的并且数量大于100的产品编号和销售日期。(3分)

查询语句:

select * from pro_sal where 销售额 <= 5000 and 销售额>=2000 and 数量 >100

查询结果:(本无结果,为达到效果另插入一条数据)

(6)求销售了产品的销售商总数。(3分)

查询语句:

select count(销售商编号) from pro_sal

查询结果:

(7)求产品编号为“0001”的产品的平均销售额、最高销售额、最低销售额。(3分)

查询语句:

select 产品编号,avg(销售额) as 平均,max(销售额) as 最高,min(销售额) as 最低 from pro_sal where 产品编号='0001'

查询结果:

(8)查询销售产品种类超过2类的销售商编号和种类数。并按购买种类数从大到小排序。

查询语句:(3分)

elect * from(select 销售商编号,count(产品编号) as 销售种类 from pro_sal group by 销售商编号 order by count(产品编号) desc)as 类别号 where 销售种类 >2

查询结果:

(9)查询销售商的销售商编号和名称、销售的产品编号和数量。(3分)

查询语句:

select a.销售商编号,a.销售商名称,b.产品编号,b.数量 from saler a,pro_sal b where a.销售商编号 = b.销售商编号

查询结果:

(10)查询至少销售过1次“0001”号产品的销售商编号和购买次数,并按购买次数多少降序排列。(3分)

查询语句:

select a.销售商编号,count() 购买次数 from pro_sal a where a.产品编号=0006 group by a.销售商编号 order by count() desc

查询结果:

(11)查询与‘喜田有限公司’在同一地区的销售商名称,地区和负责人。(4分)

查询语句:

select 销售商名称,地区,负责人 from saler where

地区=(select 地区 from saler where 销售商名称='喜田有限公司')

查询结果:

(12)查询销售商的销售情况,要求包括销售了产品的销售商和没有销售的销售商,显示他们的销售商编号、销售商名称、产品编号、销售日期。(4分)

查询语句:

select a.销售商编号,a.销售商名称,b.产品编号,b.销售日期 from saler a,pro_sal b where a.销售商编号=b.销售商编号

查询结果:

(13)查询销售额小于平均销售额的产品编号、产品名称和价格、销售额。(4分)

查询语句:

select a.产品编号,a.产品名称,a.价格,b.销售额 from pros a, pro_sal b where a.产品编号=b.产品编号 and 销售额

查询结果:

(14)查询没被销售商销售过的产品信息。(4分)

查询语句:

select * from pros p where p.产品编号 not in(select ps.产品编号 from pro_sal ps )

查询结果:

(15)查询销售了“0001”但没有销售“0002”号产品的销售商编号和产品编号。(4分)

查询语句

select ps.销售商编号,产品编号 from pro_sal ps where ps.产品编号=0001 and ps.销售商编号 not in (select 销售商编号 from pro_sal ps where ps.产品编号=0002)

查询结果