4结构化查询语言SQL习题与答案.doc_第1页
4结构化查询语言SQL习题与答案.doc_第2页
4结构化查询语言SQL习题与答案.doc_第3页
4结构化查询语言SQL习题与答案.doc_第4页
4结构化查询语言SQL习题与答案.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 结构化查询语言sql一、选择题1. 在sql包含的功能中,最重要的功能是_。a) 数据查询 b) 数据操纵 c) 数据定义 d) 数据控制2. 使用sql语言有两种方式,它们是_。a) 菜单式和交互式 b) 嵌入式和程序式 c) 交互式和嵌入式 d) 命令式和解释式3. sql的全部功能可以用9个动词概括,其中动词insert是属于下列_功能。a) 数据查询 b) 数据操纵 c) 数据定义 d) 数据控制4. sql语言支持数据库的三级模式结构,其中模式对应于_。a) 存储文件 b) 视图 c) 基本表 d) 视图和基本表5. 在创建数据表时,可以给字段规定null或not null值,null值的含义是_。a) 0 b) 空格 c) null d) 不确定6. 在sql的alter语句中,用于删除字段的子句是_。a) alter b) delete c) drop d) modify7. sql中的insert语句可以用于_。a) 插入一条记录 b) 插入一个字段 c) 插入一个索引 d) 插入一个表8. 下列描述错误的是_。a) 用insert-sql语句可以插入一条记录 b) 用insert-sql语句可以插入多条记录c) 使用insert-sql语句可以插入记录的部分数据d)使用insert-sql语句插入记录时列名的排列顺序必须与表定义时的顺序一致9. insert-sql语句中所使用的数据不能来自于_。a) 数组 b) 变量 c) 查询 d) 索引10. sql中的update语句可以用于_。a) 更新数据表的结构 b) 更新数据表的值c) 更新索引 d) 更新查询11. 下列描述错误的是_。a) sql中的update语句可以修改一条记录b) sql中的update语句可以修改多条记录c)sql中的update语句可以用子查询提供要修改的值d)sql中的update语句可以修改子查询的结果12. sql中的delete语句可以用于_。a) 删除数据表的结构 b) 删除数据表c) 删除数据表的记录 d) 删除数据表的字段13. 在select语句中,为了在查询结果中消去重复记录,应使用_项。a) percent b) distinct c) top n d) with ties14. 为了在查询结果中只包含两个表中符合条件的记录,应使用_联接类型。a) inner b) left c) right d) full 15. 在select-sql语句中,要将查询结果保存在文本文件中的选项是_。a) into新表名 b) to file 文件名 c) to printer d) to screen 16. 在sql查询时,使用where 子句提出的是_。a) 查询目标 b) 查询结果 c) 查询条件 d) 查询分组 17. 在select语句中,如果要对输出的记录进行排序,应选使用_项。a) order b) group c) having d) top 18. 在select语句中,_子句后可能带有having短语。a) order b) group c) where d) select 19. 在select-sql语言中,_子句相当于关系中的投影运算。a) where b) join c) from d) select 20. 如果要选择分数在70和80之间的记录,_是正确的。a) 分数=70 and =70 or 分数=80 d) 分数in (70,80) 21. 如果学生表中有”所在系”字段,要统计全校有多少个系,可用命令子句_。a) select sum(所在系) b) select sum(distinct 所在系)c) select count(所在系) d) select count(distinct 所在系) 22. 下列语句错误的是_。a) select * from 学生表b) select 学号 as 学生编号 from 学生表c) select all fields from 学生表d) select distinct 学号 from 选课表 23. 查询除教授和副教授以外的教师姓名,其where子句为_。a)where 职称 not between “教授” and “副教授”b)where 职称!=“教授” and “副教授”c)where 职称 not like (“教授”,”副教授”)d)where 职称not in (“教授”,”副教授”)24. 在选课表中,找出成绩不为空的记录,应使用下列语句_。a)select *from 选课表 where 成绩 is “ “ b)select *from 选课表 where 成绩=0c)select *from 选课表 where 成绩nulld)select *from 选课表 where 成绩 is not null25. 下列count函数的用法错误的是_。a)count(all) b)count(*)c)count(成绩) d)count(distinct 学号)26. 要从选课表中统计每个学生选修的课程门数,应使用的select-sql语句是_。a)select count(*)from 选课表b)select count(*)from 选课表 group by 学号c)select distinct count(*)from 选课表d)select distinct count(*)from 选课表 group by 学号27. 要从选课表中查询选修了三门课程以上的学生学号,应使用的select-sql语句是_。a)select 学号 from 选课表 where count(*)=3b)select 学号 from 选课表 having count(*)=3c)select 学号 from 选课表 group by 学号 having count(*)=3d)select 学号 from 选课表 group by 学号 where count(*)=328. 要从学生表中查询入校总分最高的3个学生的记录,应使用的select-sql语句是_。a)select * from 学生表 order by 入校总分ascb)select * from 学生表 order by 入校总分descc)select * from 学生表 top 3 order by 入校总分ascd)select * from 学生表 top 3 order by 入校总分desc29. 在进行多表联接查询时,用_表明联接的条件。a)for或while b)for或wherec)where 或on d)join 或on30. 查询选修课成绩在80分以上的女生姓名,用_语句。a)select 姓名 from 学生表,选课表 where 学生表.学号=选课表.学号 .or.性别=“女”.and.成绩=80b)select 姓名 from 学生表,选课表 where 学生表.学号=选课表.学号 .and.性别=“女”.or.成绩=80c)select 姓名 from 学生表,选课表 where 学生表.学号=选课表.学号 .or.性别=“女”.or.成绩=80d)select 姓名 from 学生表,选课表 where 学生表.学号=选课表.学号 .and.性别=“女”.and.成绩=8031. 查询所有教师所讲授的课程,列出教师号,姓名和课程号,用_语句。a)select 教师表.教师号,姓名,课程号 from 教师表,授课表 where 教师表.教师号=教师号 b)select教师表.教师号,姓名,课程号 from 教师表,授课表 on教师表.教师号=授课表.教师号 c)select教师表.教师号,姓名,课程号 from 教师表 inner jion授课表 on 教师表.教师号=授课表.教师号 d)select教师表.教师号,姓名,课程号 from 教师表 inner jion授课表 where 教师表.教师号=授课表.教师号 32. 查询”陈静”教师所讲授的课程,列出姓名和课程名,用_语句。a)select姓名,课程名 from 教师表,授课表 ,课程表where 教师表.教师号=授课表.教师号 and 姓名=“陈静”b)select姓名,课程名 from 教师表,授课表 ,课程表where 教师表.教师号=授课表.教师号 and授课表.课程号=课程表.课程号and 姓名=“陈静”c) select姓名,课程名 from 教师表,授课表 ,课程表where 教师表.教师号=授课表.教师号 and授课表.教师号=课程表.课程号and 姓名=“陈静”d) select姓名,课程名 from 教师表,授课表 ,课程表where 授课表.课程号=课程表.课程号and 姓名=“陈静”33. 查询所有比”陈静”教师工资高的教师姓名及工资,使用下列语句 select x.姓名,x.工资 from 教师表 as x,教师表 as ywhere x.工资y.工资and y.姓名=“陈静”。该语句使用的查询是_。a) 内连接查询 b) 外连接查询c) 自身连接查询 d) 子查询 34. 查询与”陈静”教师职称相同的教师名,用_语句。a)select 姓名from 教师表 where 职称=“陈静”职称。b)select x.姓名from 教师表 as x,教师表 as ywhere x.职称=y.职称where y.姓名=“陈静”。c)select姓名from 教师表where 职称=(select职称 from 教师and 姓名=“陈静”)d)select姓名from 教师表where 职称=(select职称 from 教师where 姓名=“陈静”)35. 当子查询返回的值是一个集合时,_不是在比较运算符和子查询中使用的量词。a) rest b) in c) all d) any 36. 查询讲授课程号为c140的教师姓名,错误的语句是_。a)select 姓名from 教师表 where(教师号=any (select 教师号from 授课表 where课程号=“c140”)b)select 姓名from 教师表 where exists(select * from授课表 where 教师号=教师表.教师号 and课程号=“c140”)c)select 姓名from 教师表,授课表 where教师表.教师号=授课表.教师号 and授课表.课程号=“c140”d)select 姓名from 教师表 where(教师号=all (select 教师号from 授课表 where课程号=“c140”)37. 查询其他系中比计算机系所有教师工资都高的教师姓名和工资,正确的语句是_。a)select 姓名,工资from 教师表 where工资any(select 工资 from 教师表 where所在系=“计算机”)and 所在系计算机b)select 姓名,工资from 教师表 where工资(select min(工资) from 教师表 where所在系=“计算机”)and 所在系计算机c)select 姓名,工资from 教师表 where工资all(select 工资 from 教师表 where所在系=“计算机”)and 所在系计算机d)select 姓名,工资from 教师表 where工资(select max(工资) from 教师表 where所在系=“计算机”and 所在系计算机)38. 下列查询select 学号,sum(成绩)as 总分from 选课表 where (学号=“c1011101”)group by 学号unionselect 学号,sum(成绩)as 总分from 选课表 where (学号=“c1011102”)group by 学号使用的是_。a) 合并查询 b) 外连接查询c) 自身连接查询 d) 子查询 39. 下列_不是sql语言具有的功能。 a) 数据定义 b) 数据操纵 c) 数据分配 d) 数据查询40. sql语言的核心是_。a) 建表 b) 查询 c) 汇总 d) 定义41. dcl是下列_语言的简称。 a) 数据定义 b) 数据查询 c) 数据操纵 d) 数据控制42. 视图和基本表对应于数据库三级模式中的_。 a) 外模式 b) 模式 c) 内模式 d) 全部模式43. 下列的完整性约束_是惟一性约束。a) check b) primary key c) null/not null d) unique44. 使用下列_约束,可以确保输入的值在指定的范围内。a) check b) primary key c) null/not null d) foreign key45. 不属于数据定义功能的sql语句是_。a) create table b) create cursorc) update d) alter table46. 在alter-sql语句中_子句用于增加字段的长度。a) add b) alterc) modify d) drop47. sql的数据操作语句不包括_。a) insert b) alter c) delete d) update48. 在使用命令 insert into 表名(列名) valuse(值)时下列描述错误的是_。a) insert-sql语句中列名的顺序可以与表定义时的列名顺序一致b) insert-sql语句中列名的顺序可以与表定义时的列名顺序不一致c) insert-sql语句中值的顺序可以与列名的顺序不一致d)insert-sql语句中值的顺序必须与列名的顺序一致49. update-sql语句的功能是_。a) 定义数据 b) 修改数据 c) 查询数据 d) 删除数据50. alter-sql语句的功能是_。a) 增加数据表 b) 修改数据表 c) 查询数据表 d) 删除数据表51. 下列描述错误的是_。a) sql中的delete语句可以删除一条记录b) sql中的delete语句可以删除多条记录c) sql中的delete语句可以用子查询选择要删除的行d) sql中的delete语句可以删除子查询的结果52. 创建数据表,使用_。a) create b) alter c) add d) modify53. select-sql语句可以用于多表查询,其中的数据表联接类型有四种,下列_项代表内部联接。a) inner b) left c) right d) full54. 用select-sql语句查询学生表中所有学生的姓名中,使用的是下列_项。a) 投影查询 b) 条件查询 c) 分组查询 d) 查询排序 55. 在select-sql语句中,要将查询结果保存数据表中的选项是_。a)into新表名 b) to file 文件名 c) to printer d) to screen 56. 在select-sql语句中_函数不能使用。a) ave b) count c) sum d) eof57. 用select-sql语句中,统计女生的人数使用_函数。a) ave b) count c) sum d) max58. 下列描述错误的是_。a)select-sql语句可以为输出的字段重新命名b)select-sql语句可以为输出的记录进行排序c)select-sql语句不能重新指定列的顺序d)select-sql语句不能省略from 子句59. 下列描述错误的是_。a)select-sql语句可以将查询的结果追加到已有的数据表b)select-sql语句可以将查询的结果输出到一个新的数据表c)select-sql语句可以将查询的结果输出到一个文本文件d)select-sql语句可以将查询的结果输出到屏幕60. 下列运算符中,_属于字符匹配。a) != b) between c) in d) like61. 为了在选课表中查询选修了”c140”和”c160”课程的学号,select-sql语句的where子句的格式为_。a)where 课程号 between “c140” and “c160”b)where 课程号=“c140” and “c160”c)where 课程号 in (“c140”,”c160”)d)where 课程号 like (“c140”,”c160”)62. 在下列函数中,可以对字符型字段进行计算的是_。a)sum b)count c)avg d)max63. 下列不正确的搭配是_。a)count(学号)与distinct b)count(课程号)与distinct c)count(教师号)与distinct d)count(*)与distinct64. 统计选课门数在两门以上学生的学号,select-sql语句为_。a)select 学号 from 选课表 having count(*)=2b)select 学号 from 选课表 group by 学号 having count(*)=2c)select 学号 from 选课表 where count(*)=2d)select 学号 from 选课表 group by 学号 where count(*)=265. 查询选修了课程”c140”的学生学号和成绩,并按成绩降序排列,select-sql语句为_。a)select 学号,成绩 from 选课表 where 课程号=“c140” order by 成绩 descb)select 学号,成绩 from 选课表 where 课程号=“c140” group by 成绩 descc)select 学号,成绩 from 选课表 where 课程号=“c140” order by 成绩 group by 学号descd)select 学号,成绩 from 选课表 where 课程号=“c140” order by 学号 desc66. 要显示两个表中所有符合条件和不符合条件的记录行,使用下列_。a)inner join b)left join c)right join d)full join67. 当join前的连接类型缺省时,是指_。a)inner join b)left join c)right join d)full join68. 查询比王力同学入校总分高的学生姓名和入校总分,select-sql语句为_。a)select 姓名,入校总分 from 学生表 where 入校总分 (入校总分 where 姓名=“王力”)b)select 姓名,入校总分 from 学生表 where 入校总分 (select 入校总分for 姓名=“王力”)c)select x.姓名,x.入校总分 from 学生表 as x,学生表 as ywhere x.入校总分y.入校总分 and y.姓名=“王力”d)select 姓名,入校总分 from 学生表 where 入校总分 in (select 入校总分where 姓名=“王力”)69. 当子查询返回的值是一个集合时,下列_可以完全代替any。a) exists b) in c) all d) between 70. 查询比所有女生入校总分高的男生姓名和入校总分,正确的语句是_。a)select 姓名,入校总分from 学生表 where(入校总分any (select 入校总分from 学生表 where 性别=“女生”)and性别=“男”b)select 姓名,入校总分from 学生表 where(入校总分 (select min(入校总分)from 学生表 where 性别=“女生”)and性别=“男”c)select 姓名,入校总分from 学生表 where(入校总分all (select 入校总分from 学生表 where 性别=“女生”)and性别=“男”d)select 姓名,入校总分from 学生表 where(入校总分 (select max(入校总分)from 学生表 where 性别=“女生” and性别=“男”)71. 查询没有讲授课程号为c140的教师姓名,错误的语句是_。a)select 姓名from 教师表 where(教师号any (select 教师号from 授课表 where课程号=“c140”)b)select 姓名from 教师表 where not exists(select * from授课表 where 教师号=教师表.教师号 and课程号=“c140”)c)select 姓名from 教师表where not in(select * from授课表 where 教师号=教师表.教师号 and课程号=“c140”) d)select 姓名from 教师表 where(教师号 not all (select 教师号from 授课表 where课程号=“c140”)二、填空题1. 当要对基本表中的多个列一起约束时,应使用_。2. foreign key约束的作用是指定某一个列或一组列作为_。3. 在创建学生表时,要将学号字段定义为8个字符长度,且为主键,其列定义为_。4. 如果一个查询需要对多个表进行操作时,这种查询称为_。5. 要在一个数据表中添加完整性约束定义,应使用alter-sql 语句中的_子句。6. 在使用下列命令格式:insert into 表名(列名) valuse(值)向表中插入数据,如果没有指定列名,则新插入的记录要求在每个属性列上都_。7. 在选课表中插入一条选课记录,其中只给学号和课程号赋予了值,成绩字段没有赋值,这时成绩字段的值为_。8. 查询选修了c120、c140、c150、c160课程的学生学号、课程号和成绩,查询结果按学号升序排列,学号相同再按成绩降序排列。请对下列的select-sql语句填空。 select 学号, 课程号, 成绩 from 选课表;where 课程号 in(“c120”, ”c140”, ”c150”, ”c160”);order by 学号, _9. 插入一条记录到课程表,其值为课程号:c170;课程名:办公自动化;课时:50。请对下列的select-sql语句填空。_ 课程表 values (“c170”, “办公自动化”,50)10. 将教师表中工资小于或等于1000元的讲师的工资提高20%,请对下列的select-sql语句填空。update 教师 _ where(职称=“讲师”) and (工资=60 _order by sum(成绩)desc22. 用子查询的方式查询与”陈静”教师职称相同的教师姓名、性别及职称,使用语句。请对下列的select-sql语句填空。select 姓名,性别,职称from 教师表 where 职称=_23. 查询比任何一个男生入校总分高的女生姓名和入校总分。请对下列的select-sql语句填空。 select 姓名, 入校总分from 学生表where _; (select入校总分 from 学生where 性别=“男”); and 性别= “女”24. 查询比所有男生的入校总分都高的女生姓名和入校总分。请对下列的select-sql语句填空。select 姓名,入校总分from 学生表where _; (select入校总分from 学生表where 性别=“男” ); and 性别= “女”25. 查询学生的学号和总分,并将结果存入一个新数据表:总分表。请对下列的select-sql语句填空。 select 学号, sum(成绩) as 总分 into 总分表; from 选课表_26. sql语言既是一种交互式语言,又是一种_语言。27. 在学生表中输入的记录大部分是男生的记录,为了节省输入数据的时间,可以在创建数据表时为”性别”字段定义_值。28. 在创建数据表时,如果要将字段的输入值限定在某个区域,应使用_约束。29. 在创建教师表时,要将教师号字段定义为5个字符长度,不能为空,且为主键,其列定义为_。30. 在sql中,删除数据表的语句是_。31. 对于已创建好的数据表,如果要取消一项约束,应使用alter-sql中的_子句。32. 用insert-sql语句插入数据时,可以利用表达式、同名内存变量、数组和_。33. 给教师表中每个教师的工资增加50元。请对下列的select-sql语句填空。update 教师_。34. 在选课表中,查询平均成绩在80分以上(含80分)的学生的学号和平均成绩(输出列标题为学号,平均成绩)。请对下列的select-sql语句填空。select 学号, avg(成绩) as 平均成绩from 选课表group by 学号 _35. 在select-sql中,用_子句指定查询分组的条件。36. 在select-sql中,多表的联接条件和记录的筛选条件都可以用_子句来指定。37. 在select-sql中,用_子句来指定输出记录的百分比。38. 为了输出入校总分前三名的同学,在select-sql中,要用top子句和_子句。39. 查询教师表中全部信息,使用 _语句。40. 在选课表中,查询选修了课程的学号。请对下列的select-sql语句填空。select _ 学号 from 选课表41. 为了输出入校总分前三名的同学姓名和入校总分。请对下列的select-sql语句填空。select_姓名, 入校总分 from 学生表 order by 入校总分42. 在学生表中查询女三好生记录,其select-sql语句中的where子句应为_。43. 在选课表中,求学号为”s0201108”的学生的总分和平均分,并在查询的结果中以”总分”和”平均分”为列标题输出。请对下列的select

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论