数据库第4章习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章习题解答
1.选择题
(1)在SELECT语句中,需显示的内容使用“*”,则表示()。B
A.选择任何属性B.选择所有属性
C.选择所有元组D.选择主键
(2)查询时要去掉重复的元组,则在SELECT语句中使用()。D
A.All B.UNION C.LIKE D.DISTINCT (3)在SELECT语句中使用GROUP BY NO时,NO必须()。C
A.在WHERE子句中出现B.在FROM子句出现
C.在SELECT子句中出现D.在HAVING子句中出现
(4)使用SELECT语句进行分组检索时,为了去掉不满足条件的分组,应当()。B
A.使用WHERE子句
B.在GROUP BY后面使用HAVING子句
C.先使用WHERE子句,再使用HA VING子句
D.先使用HA VING子句,再使用WHERE子句
(5)在SQL语句中,与表达式“仓库号Not In("wh1","wh2")”功能相同的表达式是()。D
A.仓库号="wh1" And 仓库号="wh2" B.仓库号<>"wh1" Or 仓库号<>"wh2"
C.仓库号<>"wh1" Or 仓库号="wh2" D.仓库号<>"wh1" And 仓库号<>"wh2"
第6~10题使用如下3个表:
部门:部门号Char (8),部门名Char (12),负责人Char (6),电话Char (16)
职工:部门号Char (8),职工号C har(10),姓名Char (8),性别Char (2),出生日期Datetime
工资:职工号Char (10),基本工资Numeric (8,2),津贴Numeric (8,2),奖金Numeric (8,2),扣除Numeric (8,2)
(6)查询职工实发工资的正确命令是()。C
A.SELECT 姓名,(基本工资+津贴+奖金-扣除) AS 实发工资FROM 工资
B.SELECT 姓名,(基本工资+津贴+奖金-扣除) AS 实发工资FROM 工资WHERE 职工.职工号=工资.职工号
C.SELECT 姓名,(基本工资+津贴+奖金-扣除) AS 实发工资FROM 工资,职工WHERE 职工.职工号=工资.职工号
D.SELECT 姓名,(基本工资+津贴+奖金-扣除) AS 实发工资FROM 工资JOIN 职工WHERE 职工.职工号=工资.职工号
(7)查询1972年10月27日出生的职工信息的正确命令是()。D
A.SELECT * FROM 职工WHERE 出生日期={1972-10-27}
B.SELECT * FROM 职工WHERE 出生日期=1972-10-27
C.SELECT * FROM 职工WHERE 出生日期=”1972-10-27”
D.SELECT * FROM 职工WHERE 出生日期='1972-10-27'
(8)查询每个部门年龄最长者的信息,要求得到的信息包括部门名和最长者的出生日期,正确的命令是()。A
A.SELECT 部门名,MIN(出生日期) FROM 部门JOIN 职工ON 部门.部门号=职工.部门号GROUP BY 部门名
B.SELECT 部门名,MAX(出生日期) FROM 部门JOIN 职工ON 部门.部门号=职工.部门号GROUP BY 部门名
C.SELECT 部门名,MIN(出生日期) FROM 部门JOIN 职工WHERE 部门.部门号=职工.部门号GROUP BY 部门名
D.SELECT 部门名,MAX(出生日期) FROM 部门JOIN 职工WHERE 部门.部门号=职工.部门号GROUP BY 部门名
(9)查询所有目前年龄在35岁以上(不含35岁)的职工信息(姓名、性别和年龄),正确的命令是()。C
A.SELECT 姓名,性别,YEAR(GETDA TE())-YEAR(出生日期) AS 年龄FROM 职工WHERE 年龄>35
B.SELECT 姓名,性别,YEAR(GETDATE())-YEAR(出生日期) AS年龄FROM 职工WHERE YEAR(出生日期)>35
C.SELECT 姓名,性别,YEAR(GETDATE())-YEAR(出生日期) AS年龄FROM 职工WHERE YEAR(GETDATE())-YEAR(出生日期)>35
D.SELECT 姓名,性别,年龄=YEAR(GETDATE())-YEAR(出生日期) FROM 职工WHERE YEAR(GETDA TE())-YEAR(出生日期)>35
(10)查询有10名以上(含10名)职工的部门信息(部门名和职工人数),并按职工人数降序排序。正确的命令是()。D
A.SELECT 部门名,COUNT(职工号) AS 职工人数FROM 部门,职工WHERE 部门.部门号=职工.部门号GROUP BY 部门名HA VING COUNT(*)>=10 ORDER BY COUNT(职工号) ASC
B.SELECT 部门名,COUNT(职工号) AS 职工人数FROM 部门,职工WHERE 部门.部门号=职工.部门号GROUP BY 部门名HA VING COUNT(*)>=10 ORDER BY COUNT(职工号) DESC
C.SELECT 部门名,COUNT(职工号) AS 职工人数FROM 部门,职工WHERE 部门.部门号=职工.部门号GROUP BY 部门名HA VING COUNT(*)>=10 ORDER BY 职工人数ASC
D.SELECT 部门名,COUNT(职工号) AS 职工人数FROM 部门,职工WHERE 部门.部门号=职工.部门号GROUP BY 部门名HAVING COUNT(*)>=10 ORDER BY 职工人数DESC
2.填空题
(1)SQL的含义是。结构化查询语言
(2)SQL语句中条件短语的关键字是。WHERE
(3)在SELECT语句中,子句根据列的数据对查询结果进行排序。ORDER BY (4)联合查询指使用运算将多个合并到一起。UNION,查询结果(5)当一个子SELECT的结果作为查询的条件,即在一个SELECT语句的WHERE子句中出现另一个SELECT语句,这种查询称为查询。嵌套
(6)在SELECT语句中,定义一个区间范围的特殊运算符是________,检查一个属性值是否属于一组值中的特殊运算符是________。BETWEEN,IN
(7)已知“出生日期”求“年龄”的表达式是。YEAR(GETDATE())-YEAR(出生日期)