第六章数据库练习题.docx
- 文档编号:5911499
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:13
- 大小:19.68KB
第六章数据库练习题.docx
《第六章数据库练习题.docx》由会员分享,可在线阅读,更多相关《第六章数据库练习题.docx(13页珍藏版)》请在冰豆网上搜索。
第六章数据库练习题
第六章
1设A、B两个表的记录数分别为3和4,对两个表执行交叉连接查询,查询结果中最多可获得()条记录。
A.3B.4C.12D.81
2-8题数据见表6-1,6-2,6-3
2使用查询语句:
SELECT课程编号,MAX(分数)FROMgradeGROUPBY课程编号
查询结果的记录数有()
A.2B.3C.4D.5
3使用查询语句:
SELECT学号,COUNT(*)FROMgrade
WHERE分数>=75
GROUPBY学号HAVINGCOUNT(*)>=2
ORDERBY学号DESC
查询结果中的第一条记录的学号是()
A.0002B.0003C.0001D.无查询结果
4使用查询语句:
SELECTstudent_info.姓名,sum(分数)
FROMstudent_info,grade
WHEREstudent_info.学号=grade.学号
GROUPBYstudent_info.学号,student_info,姓名
查询结果是()
A.按学号分类的每个学生所有课程成绩的总分
B.按学号分类的每个学生各课程成绩
C.全体学生的按各课程分类的成绩总分
D.所有学生所有课程成绩总分
5有以下查询语句
SELECTMAX(分数)as最高分
FROMstudent_info,curriculum,grade
wherestudent_info,学号=geade.学号
andcurriculum.课程编号=grade.课程编号
and课程名称=’SQLSERVER数据库及应用’
查询的结果是()
A.82B.87C.78D.90
6查询选修了课程编号为"0002"的学生的学号和姓名,以下SQL语句哪个是错误的()
A.SELECT学号,姓名FROMstudeng_info
where学号=(select学号fromgradewhere课程编号=’0002‘)
B.selectstudent_info.学号,student_info.姓名
fromstudent_info,grade
wherestudent_info.学号=grade.学号and课程编号=’0002‘)
C.SEKECTstudent_info.学号,student_info.学号=grade.学号
wheregrade.课程编号=’0002‘
D.SELECT学号,姓名FROMstudent_info
where学号in(select学号fromgradewhere课程编号=’0002‘)
7查询每门课程的最高分,要求得到的信息包括课程名称和分数,正确的命令是()
A.
SELECT课程名称,SUM(分数)as分数
fromcurricum.课程编号=grade.课程编号
GROUPBY课程名称
B.
SELECT课程名称,,MAX(人数)分数
fromcurriculum,grade
wherecurriculum.课程编号=grade.课程编号
GROUPBY课程名称
C.
SELECT课程名称,SUM(分数)分数
FROMcurriculum,grade
WHEREcurriculum.课程编号=grade.课程编号
GROUPBYCURRICULUM.课程编号
D.
ELECT课程名称,MAX(分数)as分数
FROMCUEEICULUM,grade
WHEREcurriculum.课程编号=grade.课程编号
GROUPBYcurriculum.课程编号
在已建立的studentsdb数据库中,修改student_info表,为其添加一列”院系char(8)“;修改curriculum表,为其添加一列”开课院系char(8)“,完成8-10题
8统计只有2名以下(含2名)学生选修的课程的情况,统计结果中的信息包括课程名称、开课院系和选修人数,并按选课人数排序。
正确的命令是()
A.
SELECT课程名称,开课院系,COUNT(课程编号)as选修人数
FROMgrade,curriculum
wherecurriculum.课程编号=grade.课程编号
GROUPBYgrade.课程编号GAVINGCOUNT(*)<=2
ORDERBYCOUNT(课程编号)
B.
SELECT课程名称,开课院系,COUNT(学号)选修人数
FROMgrade,curriculum
WHEREcurriculum.课程编号=grade.课程编号
GROUPBYgrade.学号GACINGCOUNT(*)<=2
IRDERBYCOUNT(学号)
C.
SELECT课程名称,开课院系,COUNT(学号)AS选修人数
FROMgrade,curriculum
WHEREcurriculum.课程编号=grade.课程编号
GROUPBY课程名称,开课院系GACINGCOUNT(*)<=2
IRDERBY选课人数
D.
SELECT课程名称,开课院系,COUNT(学号)AS选修人数
FROMgrade,curriculum
HAVINGCOUNT(课程编号)<=2GROUPBY课程名称
ORDERBY选修人数
9向student_info表插入一条记录的正确命令是()
A.
APPENDINTOstudent_info
values(‘0009’,‘张三’,‘男’,‘管理’,‘1983-10-28’)
B.
INSERTINTOstudent_info(学号,姓名,性别,出生日期,院系)
values(‘0009’,‘张三’,‘男’,‘1983-10-28’,’管理‘)
C.
APPENDINTOstudent_info(学号,姓名,性别,出生日期,院系)
values(‘0009’,‘张三’,‘男’,‘1983-10-28’,’管理‘)
D.
INSERTINTOstudent_info
values(‘0009’,‘张三’,‘男’,‘1983-10-28’)
10使用SQL语句从student_info表中查询所有姓张的同学的信息,正确的命令是()
A.SELECT*FROMstudent_infoWHERELEFT(姓名,1)=’张‘
B.SELECT*FROMstudent_infoWHERERIGHT(姓名,1)=’张‘
C.SELECT*FROMstudent_infoWHERETRIM(姓名,1)=’张‘
D.SELECT*FROMstudent_infoWHERESTR(姓名,1)=’张
11查询职工实发工资的正确命令是()
A.
SELECT姓名,(基本工资+津贴+奖金-扣除)AS实发工资FROM工资
B.
SELECT姓名,(基本工资+津贴+奖金-扣除)AS实发工资FROM工资
WHERE职工.职工号=工资.职工号
C.
SELECT姓名,(基本工资+津贴+奖金-扣除)AS实发工资FROM工资,职工WHERE职工.职工号=工资.职工号
D.
ELECT姓名,(基本工资+津贴+奖金-扣除)AS实发工资FROM工资JOIN职工WHERE职工.职工号=工资.职工号
12查询1962年10月27日出生的职工信息的正确命令是()
A.select*from职工where出生日期={1962-10-27}
B.select*from职工where出生日期=1962-10-27
C.select*from职工where出生日期="1962-10-27"
D.select*from职工where出生日期='1962-10-27'
13查询每个部门年龄最长者的信息,要求得到的新包括部门名和年龄最大者的出生日期,正确的命令是()
A.
SELECT部门名,,MIN(出生日期)
FROM部门JOIN职工on部门.部门号=职工.部门号
GROUPBY部门号
B.
SELECT部门名,,MAX(出生日期)
FROM部门JOIN职工on部门.部门号=职工.部门号
GROUPBY部门号
C.
SELECT部门名,,MIN(出生日期)
FROM部门JOIN职工
WHERE部门.部门号=职工.部门号
GROUPBY部门号
D.
SELECT部门名,,MAX(出生日期)
FROM部门JOIN职工
WHERE部门.部门号=职工.部门号
GROUPBY部门号
14查询有10名以上(含10名)职工的部门信息(部门名和职工人数),并按照职工人数将序排列。
正确的命令是()
A.
SELECT部门名,COUNT(职工号)as职工人数
from部门,职工
where部门.部门号=职工.职工号
groupby部门名havingcount(*)>=10
orderbycount(职工)asc
B.
SELECT部门名,COUNT(职工号)as职工人数
from部门,职工
where部门.部门号=职工.职工号
groupby部门名havingcount(*)>=10
orderbycount(职工)DESC
C.
SELECT部门名,COUNT(职工号)as职工人数
from部门,职工
where部门.部门号=职工.职工号
groupby部门名havingcount(*)>=10
orderby职工人数asc
D.
SELECT部门名,COUNT(职工号)as职工人数
from部门,职工
where部门.部门号=职工.职工号
groupby部门名havingcount(*)>=10
orderby职工人数asc
15查询所有目前年龄在35岁以上(不含35岁)的职工信息(姓名,性别和年龄),正确的命令是()
A.
select姓名,性别,YEAR(GETDATE())-YEAR(出生日期)年龄
from职工
where年龄>35
B.
select姓名,性别,YEAR(GETDATE())-YEAR(出生日期)年龄
from职工
whereYEAR(出生日期)>35
C.
select姓名,性别,YEAR(GETDATE())-YEAR(出生日期)年龄
from职工
whereYEAR(getdate())-YEAR(出生日期)>35
D.
select姓名,性别,年龄=YEAR(GETDATE())-YEAR(出生日期)
from职工
wherewhereYEAR(getdate())-YEAR(出生日期)>35
16为“工资”表增加一个“实发工资”列的正确命令是()
A.
midifytable工资
addcolumn实发工资Numeric(9,2)
B.
midifytable工资
addFIELD实发工资Numeric(9,2)
C.
ALTERtable工资
add实发工资Numeric(9,2)
D.
ALTERtable工资
addFIELD实发工资Numeric(9,2)
17查询职工号位字符是"1"的错误命令是()
A.
SELECT*FROM职工
WHERESubstring(职工号,8)=’1‘
B.
SELECT*FROM职工
WHERESubstring(职工号,8,1)=’1‘
C.
SELECT*FROM职工
WHERE职工号like’1%‘
D.
SELECT*FROM职工
WHERERIGHT(职工号,1)=’1‘
18有SQL语句;
SELECT*from工资
WHERENOT(基本工资>3000or基本工资<2000)
与该语句等价的SQL语句是()
A.
SELECT*FROM工资
WHERE基本工资BETWEEN2000and3000
B.
SELECT*FROM工资
WHERE基本工资>2000AND基本工资<3000
C.
SELECT*FROM工资
WHERE基本工资>2000OR基本工资<3000
D.
SELECT*FROM工资
WHERE基本工资<=2000AND基本工资>=3000
19有SQL语句:
SELECT部门.部门名,COUNT(*)AS部门人数
FROM部门,职工
WHERE部门.部门号=职工.部门号
GROUPBY部门.部门名
与该语句等价的SQL语句是()
A.
SELECT部门.部门名,COUNT(*)AS部门人数
FROM职工INNERJOIN部门部门.部门号=职工.部门号
GROUPBY部门.部门名
B.
SELECT部门.部门名,COUNT(*)AS部门人数
FROM职工INNERJOIN部门OM部门号
GROUPBY部门.部门名
C.
SELECT部门.部门名,COUNT(*)AS部门人数
FROM职工INNERJOIN部门ON部门.部门号=职工.部门号
GROUPBY部门.部门名
D.
SELECT部门.部门名,COUNT(*)AS部门人数
FROM职工INNERJOIN部门ON部门.部门号=职工.部门号
GROUPBY部门.部门名
20有以下SQL语句:
SELECTDISTINCT部门号
from职工
where出生日期 与该语句等价的SQL语句是() A. SELECTDISTINCT部门号 from职工 where出生日期<(SELECTMIN(出生日期)FROM职工WHERE部门号=’02‘) B. SELECTDISTINCT部门号 from职工 where出生日期<(SELECTMAX(出生日期)FROM职工WHERE部门号=’02‘ C. SELECTDISTINCT部门号 from职工 where出生日期 D. SELECTDISTINCT部门号 from职工 where出生日期 21假设数据表“职工"表中有10条记录,获得职工表最前面两条记录的命令() A.ELECT2*FROM职工B.ELECTTP2*FROM职工 C.SELECTPERCENT2*FROM职工D.SELECTPERCENT20*FROM职工 22.在SQL语句中,与表达式“工资BETWEEN1210AND1240"功能相同的表达式是() A.工资>=1210AND工资<=1240B.工资>1210AND工资<=1240 C.工资<=1210AND工资>1240D.工资>=1210OR工资<=1240 23.在SQL语句中,与表达式”仓库号NOTIN(‘wh1’,‘wh2')"功能相同的表达式是() A.仓库号='wh1'AND仓库号=’wh2‘ B.仓库号! ='wh1'OR仓库号#’wh2‘ C.仓库号<>wh1'OR仓库号! =’wh2‘ D.仓库号! ='wh1'AND仓库号! =’wh2‘ 24使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当() A.使用WHERE子句 B.在GROUPBY后面使用HAVING子句 C.先使用WHERE子句,再使用HAVING子句 D.先使用HAVING子句,再使用WHERE子句 25对于某语句的条件wheresdeptlike'[cs]her%y',将筛选出以下()值 A.CsherryB.SherrieyC.ChersD.[CS]Herry 26在查询语句中,应在________子句中指定输出字段。 27如果要使用SELECT语句返回指定条数的记录,则应使用_________关键字来限定输出字段。 28当一个字SELECT的结果作为查询的条件,即在一个SELECT命令的WHERE子句中出现另一个SELECT命令,这种查询成为________查询 29内连接可分为_______、不等值连接和______3种类型。 判断题 30在关系数据库SQLSERVER中,供用户检索,更新数据的语言工具是数据库定义语言() 31.数据查询语句SELECT的语法中,必不可少的子句是SELECT和WHERE() 32.逻辑运算符(AND、NOT、OR)的运算顺序AND---OR-----NOT() 33在使用子查询时,必须使用括号把子查询括起来,以便区分外查询和子查询。 () 34.索引越多越好() 35.用于WHERE子句的查询条件表达式可用的比较运算符为: =(等于)、! =或<>(不等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于).() 36HAVING子句作用于组,必须与GROUPBY子句连用,用来指定每一分组内应满足的条件() 表6-1student_info表数据 学号 姓名 性别 出生日期 家庭地址 备注 0001 刘卫平 男 1980-10-1 衡山市东风路78号 0002 张卫民 男 1980-12-2 东阳市八一北路25号 0003 马东 男 1980-7-4 长岭市五一路785号 0004 钱达理 男 1980-5-10 滨海市洞庭大道278号 0005 东方牧 男 1980-7-13 东方市中山路25号 0006 郭文斌 男 1980-6-4 长岛市解放路25号 0007 肖海燕 女 1980-3-15 山南市红旗路15号 0008 张明华 女 1980-4-18 滨江市韶山路35号 表6-2grade表数据 学号 课程编号 分数 学号 课程编号 分数 0001 0001 80 0002 0004 70 0001 0002 90 0002 0005 89 0001 0003 87 0003 0001 83 0001 0004 86 0003 0002 73 0001 0005 78 0003 0003 84 0002 0001 76 0003 0004 75 0002 0002 73 0003 0005 65 0002 0003 67 0004 0006 80 表6-3curriculum 课程编号 课程名称 学分 0001 大学计算机基础 2 0002 C语言程序设计 2 0003 SQLSERVER数据库及其应用 2 0004 英语 4 0005 高等数学 4 0006 数据结构 2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 数据库 练习题