内容正文:
《数据库原理与应用技术-MySQL》河北科学技术出版社
第七章 数据查询与更新
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共25小题,每题2分,共50分)
1、在MySQL中,最基本、最重要的操作是( )
A.数据查询 B. 数据插入
C.数据更新 D.数据删除
2、关于 SELECT 语句,以下描述错误的是( )。
A.SELECT 语句用于查询一个表或多个表的数据
B.SELECT 语句属于数据操作语言
C.SELECT 语句查询的结果列必须是基于表中的列
D.SELECT 语句用于查询数据库中一组特定的数据记录
3、在学生选课系统中,有如下3张表。
学生表(学号,姓名,性别,年龄,所在院系)。
课程表(课程编号,课程名称,选修课编号,学分)。
选修表(选修编号,学生学号,课程编号,成绩)。在该系统中,若要查询每位学生选修的课程数目,正确的 SQL 语句是( )
A.SELECT学号, SUM (*) FROM 选修表 GROUP BY 学号
B.SELECT 学号, SUM (*) FROM 选修表 GROUP BY 课程编号
C.SELECT 学号, COUNT (*) FROM 选修表 GROUP BY 课程编号
D.SELECT学号,COUNT (*) FROM 选修表 GROUP BY 学号
4、DELETE FROM adminUser 语句的作用是( )。
A.删除当前数据库中整个 adminUser 表,包括表结构
B.删除当前数据库中 adminUser 表内的所有行
C.由于没有 where 子句,因此不删除任何数据
D.删除当前数据库中 adminUser 表内的当前行
5、关于 UPDATE 语句描述不正确的是( )。
A .用 WHERE 子句指定需要更新的数据
B .用 SET 子句指定新值
C .被定义为 NOT NULL 的字段,不允许被更新为 NULL
D .每次只能修改数据表中的一个数据
6、下列属于数据操作语言的 SQL关键字是( )。
A . CREATE
B . DELETE
C . TRUNCATE
D . DROP
7、SQL语言中,条件为"年龄 BETWEEN 15 AND 35"表示年龄在15~35岁,且( )。
A .包括15岁和35岁
B .不包括15岁和35岁
C .包括15岁但不包括35岁
D .包括35岁但不包括15岁
8、查询员工工资信息时,结果按工资降序排列,正确的是()。
A . ORDER BY 工资
B . ORDER BY 工资 DESC
C . ORDER BY 工资 ASC
D . ORDER BY 工资 DISTINCT
9、相关子查询使用的关键字为( )。
A . EXISTS
B . EXIST
C . LIMIT
D . REGEXP
10、MySQL中,下列涉及空值的操作,不正确的是( )。
A . age IS NULL
B . age IS NOT NULL
C . age = NULL
D . NOT ( age IS NULL )
11、假设数据表"职工"表中有10条记录,获得"职工"表最前面两条记录的命令为( )。
A.SELECT * FROM 职工
B.SELECT * FROM 职工 LIMIT 2
C.SELECT PERCENT 2* FROM 职工
D.SELECT 2 FROM 职工
12、下列选项中,哪个不属于聚合函数( )
A.MAX() B.SUM()
C.MIN() D.AVGERAGE()
13、设关系数据库中一个表S的结构为S(name,cname,grade),其中sname为学生姓名, cname为课程名,二者均为字符型;grade为成绩,为数值型,取值范围为0~100。若要更正张三的化学成绩为85分,则可用语句( )。
A. update s set grade=85 where sname=‘张三'and cname='化学'
B. update s set grade='85’ where sname='张三’and cname='化学'
C. update grade=85 where sname='张三'and cname='化学'
D. alter s grade=85 where sname='张三'and cname=‘化学'
14、下列聚合函数不忽略空值NULL的是( )。
A.SUM(列名) B.MAX(列名)
C.COUNT(*) D.COUUNT(列名)
15、下列关于DELETE语句和TRUNCATE TABLE语句的区别( )描述是错误的。
A.使用TRUNCATE TABLE语句后,表中的AUTO_INCREMENT计数器将被重新设置为该列的初始值
B.对于参与了索引和视图的表,不能使用TRUNCATE TABLE语句来删除数据
C.DELETE语句每删除一行,都会在事务日志中添加一行记录
D.使用TRUNCATE TABLE语句删除数据表中的所有数据后,也可以恢复
16、学生表student中包含字段:学生编号sid(主键),学生姓名sname。成绩表score包含字段:课程编号cid,学生编号sid(外键),学生成绩degree;其中学生表包含10行数据,成绩表包含6行记录(且sid列没有重复值),那么执行SQL语句:select *from student left outer join score on student.sid=score.sid,将返回( )条记录。
A.0 B. 6 C.10 D. 16
17、stu_score(stu_id,sub_id,score),即成绩表(学号,科目编号,成绩)。以下能够获取每个学生所有学科的平均成绩的选项是( )。
A . select stu_id,avg(score) from stu_score group by stu_id
B. select stu_id,avg(score) from stu_score
C. select stu_id,avg (score) from stu_score order by stu_id
D. select stu_id,sum(score)/count(score) from stu_score
18、查找条件为姓名不是NULL的记录,正确的是( )。
A.WHERE NAME! NULL B. WHERE NAME NOT NULL
C.WHERE NAME IS NOT NULL D.WHERE NAME!=NULL
19、使用SELECT语句随机地从表中挑出指定数量的行,可以使用的方法是( )。
A.在LIMIT子句中使用RAND()函数指定行数,并用ORDERBY子句定义一个排序规则
B.只要使用LIMIT子句定义指定的行数即可,无须使用ORDER BY子句
C.只要在ORDER BY子句中使用RAND()函数,无须使用LIMIT子句
D.在 ORDER BY子句中使用RAND()函数,并用LIMIT子句定义行数
20、SQL语言中,SELECT语句的执行结果是( )。
A.属性 B.表 C元组 D.数据库
21、下列哪个SQL语句将返回orders表中第11条到第20条的记录?( )
A. SELECT * FROM orders LIMIT 10 OFFSET 10;
B. SELECT * FROM orders LIMIT 20 OFFSET 10;
C. SELECT * FROM orders OFFSET 10 LIMIT 10;
D.SELECT * FROM orders OFFSET 20 LIMIT 10;
22、入数据但不希望插入重复的行时,以下描述正确的是( )。
A,在INSERT语句中使用UNIQUE关键字
B.在INSERT语句中使用PRIMARY KEY关键字
C.在表定义中设置UNIQUE约束
D,在INSERT语句中使用DISTINCT关键字
23、如果想从一个查询中检索不存在于另一个查询结果集中的行,应该使用( )关键字。
A.IN B.JOIN C.NOT IN D.HAVING
24、在使用嵌套查询时,以下哪个选项是正确的?( )
A.嵌套查询只能出现在SELECT语句中 B.嵌套查询的结果不能用于UPDATE语句
C.嵌套查询的结果可以被其他查询再次嵌套 D.嵌套查询不能使用GROUP BY子句
25、在图书管理系统中,有如下3张表。
图书表(总编号,分类号,书名,作者,出版单位,单价)。
读者表(借书证号,单位,姓名,性别,地址)。
借阅表(借书证号,总编号,借书日期)。
在该系统数据库中,若要查询借阅了《数据库技术》一书的借书证号的SQL语句如下:
SELECT借书证号FROM借阅WHERE总编号=_____;在横线处填写下面哪个子查询语句可以实现上述功能( )。
A. (SELECT借书证号FROM 图书WHERE书名=’数据库技术’)
B. (SELECT 总编号FROM 图书WHERE书名=’数据库技术’)
C.(SELECT 借书证号FROM借阅WHERE书名=’数据库技术’)
D. (SELECT 总编号FROM借阅WHERE书名=’数据库技术’)
二、填空题(本题共10小题,每题2分,共20分)
1、语句" SELECT 工号 FROM 员工表 WHERE 工资>1250"的功能是_________。
2、在SELECT语句中,用于去除重复行的关键字是_________。
3、HAVING 子句与WHERE子句的区别在于:WHERE子句的作用对象是_____. HAVING子句的作用对象是______。
4、使用WHERE子句中指定连接条件:表1.字段名=表2.字段名,这种连接条件简单明了,属于_________连接.
5、默认约束用于指定某一列的_________。
6、查询所有工资高于平均工资的员工姓名和工资,正确的SQL语句是“SELECT姓名,工资 FROM 员工表 WHERE工资>(SELECT AVG(工资) FROM )。
7、如果需要在连接查询中排除重复的行,可以使用 语句来合并结果集。。
8、假设student表中有200条记录,语句“SELECT * FROM STUDENT LIMIT 5,7;”实现的查询功能是_____
9、在MySQL中,查询employees表中薪水高于公司中任意一个经理薪水的所有员工,可以使用以下查询:
SELECT * FROM employees WHEREsalary > (SELECT salary FROM employees WHERE position = 'Manager');
10、在MySQL中,向表中插入数据时,应使用 。
1. 判断题(本题共10小题,每题2分,共20分)
1、SQL的数据操作语言主要通过DROP语句删除数据。( )
2、使用SELECT语句进行查询时,如果用户希望设置查询条件来限制返回的数据,可
以在SELECT语句后面使用WHILE子句来实现。( )
3、HAVING子句作用于组,选择满足条件的组,子句中可以包含聚合函数。( )
4、在MySQL中,使用group by语句进行分组时,只能对一个字段进行分组。( )
5、在在执行批量INSERT操作时,如果其中一条插入语句失败,MySQL将自动回滚所有之前成功的插入操作。( )
6、DELETE 语句执行的是物理删除,被删除的记录将不再存在于数据库表中。( )
7、在MySQL中,SELECT DISTINCT可以用来选择不同的行,但它不能与 ORDER BY子句一起使用。( )
8、在MySQL中,使用JOIN连接两个表时,只有INNER JOIN可以没有ON子句,因为默认情况下它就会执行笛卡儿积。( )
9、如果省略WHERE子句,UPDATE语句将更新表中的所有记录。( )
10、使用INNERJOIN时,如果连接条件不满足,那么相关的行将不会出现在结果集中。( )
四、命令题(本大题共5小题,每小题2分,共10分)
有数据表rs(name,department, parttime,amount,totalamount,allowance,sex),各字段含义分别为姓名,部门,人党时间,基本工资,实发金额,补贴,性别。
1、将rs表中基本工资大于2000元的记录删除。
2、查询rs表中所有人党时间超过3年的且实发金额在4000元(包括)以上的记录。
3、为rs表建立一个按实发金额排降序的索引,索引名为sy_totalamount。
4、在rs表中增加一条记录,内容为:宝莉,女,就业处,基本工资为5000。
5、在rs表中,将“生产”部门的所有职工的补贴在原来的基础上增加20%
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
《数据库原理与应用技术-MySQL》河北科学技术出版社
第七章 数据查询与更新
考试时间:90分钟 满分:100分
姓名 班级 学号
1. 单项选择题(本题共25小题,每题2分,共50分)
1、在MySQL中,最基本、最重要的操作是( )
A.数据查询 B. 数据插入
C.数据更新 D.数据删除
【答案】A
【解析】在MySQL中,数据查询是最重要也是最基本的操作。
2、关于 SELECT 语句,以下描述错误的是( )。
A.SELECT 语句用于查询一个表或多个表的数据
B.SELECT 语句属于数据操作语言
C.SELECT 语句查询的结果列必须是基于表中的列
D.SELECT 语句用于查询数据库中一组特定的数据记录
【答案】C
【解析】选项C:SELECT查询结果列可以是基于表中的列进行计算、拼接等得到的虚拟列,并非必须是表中原本就有的列,比如 SELECT name, salary*1.1 AS new_salary FROM employees;里的 new_salary,所以该描述错误。
3、在学生选课系统中,有如下3张表。
学生表(学号,姓名,性别,年龄,所在院系)。
课程表(课程编号,课程名称,选修课编号,学分)。
选修表(选修编号,学生学号,课程编号,成绩)。在该系统中,若要查询每位学生选修的课程数目,正确的 SQL 语句是( )
A.SELECT学号, SUM (*) FROM 选修表 GROUP BY 学号
B.SELECT 学号, SUM (*) FROM 选修表 GROUP BY 课程编号
C.SELECT 学号, COUNT (*) FROM 选修表 GROUP BY 课程编号
D.SELECT学号,COUNT (*) FROM 选修表 GROUP BY 学号
【答案】D
【解析】要统计每位学生选修的课程,需要用到统计函数count(),统计每位学生的选课数量需要按照学号分组,故应选D。
4、DELETE FROM adminUser 语句的作用是( )。
A.删除当前数据库中整个 adminUser 表,包括表结构
B.删除当前数据库中 adminUser 表内的所有行
C.由于没有 where 子句,因此不删除任何数据
D.删除当前数据库中 adminUser 表内的当前行
【答案】B
【解析】DELETE FROM 表名 功能是删除表中所有行,故选择B。
5、关于 UPDATE 语句描述不正确的是( )。
A .用 WHERE 子句指定需要更新的数据
B .用 SET 子句指定新值
C .被定义为 NOT NULL 的字段,不允许被更新为 NULL
D .每次只能修改数据表中的一个数据
【答案】D
【解析】UPDATE命令可以修改表中所有记录,若后面有where条件,则修改满足条件的记录。
6、下列属于数据操作语言的 SQL关键字是( )。
A . CREATE
B . DELETE
C . TRUNCATE
D . DROP
【答案】B
【解析】数据操作语言包括:SELECT、DELETE、UPDATE,故选B。
7、SQL语言中,条件为"年龄 BETWEEN 15 AND 35"表示年龄在15~35岁,且( )。
A .包括15岁和35岁
B .不包括15岁和35岁
C .包括15岁但不包括35岁
D .包括35岁但不包括15岁
【答案】A
【解析】BETWEEN……AND 表达的含义中包含边界值。
8、查询员工工资信息时,结果按工资降序排列,正确的是()。
A . ORDER BY 工资
B . ORDER BY 工资 DESC
C . ORDER BY 工资 ASC
D . ORDER BY 工资 DISTINCT
【答案】B
【解析】按照工资降序排列:ORDER BY 工资 DESC,故选择B。
9、相关子查询使用的关键字为( )。
A . EXISTS
B . EXIST
C . LIMIT
D . REGEXP
【答案】A
【解析】EXISTS 用于测试子查询的结果是否为空,若结果不为空则返回TRUE,否则返回FALSE。
10、MySQL中,下列涉及空值的操作,不正确的是( )。
A . age IS NULL
B . age IS NOT NULL
C . age = NULL
D . NOT ( age IS NULL )
【答案】C
【解析】MySQL中使用IS NULL 或IN NOT NULL来判断是否为空。
11、假设数据表"职工"表中有10条记录,获得"职工"表最前面两条记录的命令为( )。
A.SELECT * FROM 职工
B.SELECT * FROM 职工 LIMIT 2
C.SELECT PERCENT 2* FROM 职工
D.SELECT 2 FROM 职工
【答案】B
【解析】从职工表中查询记录使用SELECT * FROM 职工;取前两条记录使用LIMIT 2,故选择B。
12、下列选项中,哪个不属于聚合函数( )
A.MAX() B.SUM()
C.MIN() D.AVGERAGE()
【答案】D
【解析】AVG()属于聚合函数,而不是AVGERAGE( )
13、设关系数据库中一个表S的结构为S(name,cname,grade),其中sname为学生姓名, cname为课程名,二者均为字符型;grade为成绩,为数值型,取值范围为0~100。若要更正张三的化学成绩为85分,则可用语句( )。
A. update s set grade=85 where sname=‘张三'and cname='化学'
B. update s set grade='85’ where sname='张三’and cname='化学'
C. update grade=85 where sname='张三'and cname='化学'
D. alter s grade=85 where sname='张三'and cname=‘化学'
【答案】A
【解析】UPDATE命令格式为:UPDATE 表名 set 字段名=值 where 条件,故选择A。
14、下列聚合函数不忽略空值NULL的是( )。
A.SUM(列名) B.MAX(列名)
C.COUNT(*) D.COUUNT(列名)
【答案】C
【解析】主码和外码子句都属于数据库的完整性措施。
15、下列关于DELETE语句和TRUNCATE TABLE语句的区别( )描述是错误的。
A.使用TRUNCATE TABLE语句后,表中的AUTO_INCREMENT计数器将被重新设置为该列的初始值
B.对于参与了索引和视图的表,不能使用TRUNCATE TABLE语句来删除数据
C.DELETE语句每删除一行,都会在事务日志中添加一行记录
D.使用TRUNCATE TABLE语句删除数据表中的所有数据后,也可以恢复
【答案】D
【解析】D项RUNCATE TABLE 语句是一种数据快速删除操作,它类似于将表结构保留,但彻底清空表中的数据。与DELETE语句不同,TRUNCATE TABLE 操作是不可恢复的,一旦执行,数据就被永久删除,故D项错误。
16、学生表student中包含字段:学生编号sid(主键),学生姓名sname。成绩表score包含字段:课程编号cid,学生编号sid(外键),学生成绩degree;其中学生表包含10行数据,成绩表包含6行记录(且sid列没有重复值),那么执行SQL语句:select *from student left outer join score on student.sid=score.sid,将返回( )条记录。
A.0 B. 6 C.10 D. 16
【答案】C
【解析】left join(左外连接)规则:返回左表(student表 )的所有行,右表(score表 )中匹配连接条件(student.sid = score.sid )的行。若左表行在右表无匹配,右表列填NULL ,故本题应该返回左表的总行数。
17、stu_score(stu_id,sub_id,score),即成绩表(学号,科目编号,成绩)。以下能够获取每个学生所有学科的平均成绩的选项是( )。
A . select stu_id,avg(score) from stu_score group by stu_id
B. select stu_id,avg(score) from stu_score
C. select stu_id,avg (score) from stu_score order by stu_id
D. select stu_id,sum(score)/count(score) from stu_score
【答案】B
【解析】选项A:group by stu_id按学号分组,对每组(每个学生)用avg(score)算平均成绩,符合“每个学生所有学科平均成绩”需求,正确 。
选项B:无group by,错误 。
选项C: order by是排序,不解决分组求平均问题,错误 。
选项D:用sum(score)/count(score)虽能算平均,但未分组,会算出所有学生成绩的整体平均,不是每个学生的,错误。
18、查找条件为姓名不是NULL的记录,正确的是( )。
A.WHERE NAME! NULL B. WHERE NAME NOT NULL
C.WHERE NAME IS NOT NULL D.WHERE NAME!=NULL
【答案】C
【解析】查找条件要放在where后面,姓名不是null即NAME IS NOT NULL,故选C。
19、使用SELECT语句随机地从表中挑出指定数量的行,可以使用的方法是( )。
A.在LIMIT子句中使用RAND()函数指定行数,并用ORDERBY子句定义一个排序规则
B.只要使用LIMIT子句定义指定的行数即可,无须使用ORDER BY子句
C.只要在ORDER BY子句中使用RAND()函数,无须使用LIMIT子句
D.在 ORDER BY子句中使用RAND()函数,并用LIMIT子句定义行数
【答案】D
【解析】- 选项A: LIMIT子句用于限定结果行数,无法用RAND()函数指定行数,语法逻辑错误,排除。
- 选项B:仅用LIMIT无ORDER BY随机排序,无法实现“随机挑行”,排除。
- 选项C: ORDER BY RAND()能随机排序,但无LIMIT会返回所有行,无法指定数量,排除。
- 选项D: ORDER BY RAND()让行随机排序, LIMIT限定挑出的行数,符合“随机挑指定数量行”需求,正确。
20、SQL语言中,SELECT语句的执行结果是( )。
A.属性 B.表 C元组 D.数据库
【答案】B
【解析】SELECT语句的执行结果是一张表,故选B。
21、下列哪个SQL语句将返回orders表中第11条到第20条的记录?( )
A. SELECT * FROM orders LIMIT 10 OFFSET 10;
B. SELECT * FROM orders LIMIT 20 OFFSET 10;
C. SELECT * FROM orders OFFSET 10 LIMIT 10;
D.SELECT * FROM orders OFFSET 20 LIMIT 10;
【答案】A
【解析】用法:LIMIT N1 OFFSET N2 N1表示要取的行数,N2表示要跳过的行数。第11条到第20条,所以要取的行数是10行,要跳过的行数也是10行,故选A
22、入数据但不希望插入重复的行时,以下描述正确的是( )。
A,在INSERT语句中使用UNIQUE关键字
B.在INSERT语句中使用PRIMARY KEY关键字
C.在表定义中设置UNIQUE约束
D,在INSERT语句中使用DISTINCT关键字
【答案】C
【解析】A选项: INSERT 语句里不能直接用 UNIQUE 防重复, UNIQUE 是定义约束用的,A错误。
B选项:PRIMARY KEY 是定义主键约束,不在 INSERT 语句里直接用,B错误。
C选项:表定义时设 UNIQUE 约束,插入重复数据会触发约束报错,阻止插入,可实现不插入重复行,C正确。
D选项: DISTINCT 用于 SELECT 去重,和 INSERT 防重复无关,D错误。
23、如果想从一个查询中检索不存在于另一个查询结果集中的行,应该使用( )关键字。
A.IN B.JOIN C.NOT IN D.HAVING
【答案】C
【解析】如果想从一个查询中检索不存在于另一个查询结果集中的行应该使用NOT IN关键字。
24、在使用嵌套查询时,以下哪个选项是正确的?( )
A.嵌套查询只能出现在SELECT语句中 B.嵌套查询的结果不能用于UPDATE语句
C.嵌套查询的结果可以被其他查询再次嵌套 D.嵌套查询不能使用GROUP BY子句
【答案】C
【解析】选项A:嵌套查询(子查询)不仅能在SELECT语句,还可用于WHERE、HAVING等子句构造条件,选项B:嵌套查询结果可用于UPDATE语句,选项C:嵌套查询结果能被其他查询再次嵌套,支持多层嵌套,选项D:嵌套查询里,子查询可使用GROUP BY子句分组统计,故选择C。
25、在图书管理系统中,有如下3张表。
图书表(总编号,分类号,书名,作者,出版单位,单价)。
读者表(借书证号,单位,姓名,性别,地址)。
借阅表(借书证号,总编号,借书日期)。
在该系统数据库中,若要查询借阅了《数据库技术》一书的借书证号的SQL语句如下:
SELECT借书证号FROM借阅WHERE总编号=_____;在横线处填写下面哪个子查询语句可以实现上述功能( )。
A. (SELECT借书证号FROM 图书WHERE书名=’数据库技术’)
B. (SELECT 总编号FROM 图书WHERE书名=’数据库技术’)
C.(SELECT 借书证号FROM借阅WHERE书名=’数据库技术’)
D. (SELECT 总编号FROM借阅WHERE书名=’数据库技术’)
【答案】B
【解析】要查借阅《数据库技术》的借书证号,主查询 SELECT 借书证号 FROM 借阅 WHERE 总编号 = _ ,需子查询获取该书总编号,通过 图书 表关联。
选项A: 图书表无“借书证号”字段,且子查询目标错误,排除。
选项B: 图书表有书名和总编号, SELECT 总编号 FROM 图书 WHERE 书名=‘数据库技术’能获取对应总编号,填入主查询可关联借阅表,正确。
选项C: 借阅表无书名字段,无法用书名筛选,排除。
选项D: 借阅表无书名字段,无法用书名筛选,排除。
二、填空题(本题共10小题,每题2分,共20分)
1、语句" SELECT 工号 FROM 员工表 WHERE 工资>1250"的功能是_________。
【答案】从员工表中检索工资大于1250的职工号
2、在SELECT语句中,用于去除重复行的关键字是_________。
【答案】DISTINCT
3、HAVING 子句与WHERE子句的区别在于:WHERE子句的作用对象是_____. HAVING子句的作用对象是______。
【答案】表或视图 分组结果
4、使用WHERE子句中指定连接条件:表1.字段名=表2.字段名,这种连接条件简单明了,属于_________连接.
【答案】内
5、默认约束用于指定某一列的_________。
【答案】默认值
6、查询所有工资高于平均工资的员工姓名和工资,正确的SQL语句是“SELECT姓名,工资 FROM 员工表 WHERE工资>(SELECT AVG(工资) FROM )。
【答案】员工表
7、如果需要在连接查询中排除重复的行,可以使用 语句来合并结果集。。
【答案】UNION
8、假设student表中有200条记录,语句“SELECT * FROM STUDENT LIMIT 5,7;”实现的查询功能是_____
【答案】查询student表中第6位学生开始的7条记录
9、在MySQL中,查询employees表中薪水高于公司中任意一个经理薪水的所有员工,可以使用以下查询:
SELECT * FROM employees WHEREsalary > (SELECT salary FROM employees WHERE position = 'Manager');
【答案】ANY
10、在MySQL中,向表中插入数据时,应使用 。
【答案】INSERT
3、 判断题(本题共10小题,每题2分,共20分)
1、SQL的数据操作语言主要通过DROP语句删除数据。( )
【答案】错误。SQL的数据操作语言主要通过DELETE语句删除数据。
2、使用SELECT语句进行查询时,如果用户希望设置查询条件来限制返回的数据,可
以在SELECT语句后面使用WHILE子句来实现。( )
【答案】错误。如果用户希望设置查询条件来限制返回的数据,在select后面使用where子句。
3、HAVING子句作用于组,选择满足条件的组,子句中可以包含聚合函数。( )
【答案】正确。HAVING 条件 是对分组的结果集进行筛选,在该子句中可以包含聚合函数。
4、在MySQL中,使用group by语句进行分组时,只能对一个字段进行分组。( )
【答案】错误。使用GROUP BY进行分组时,可以跟多个分组项,优先按照第一个分组项进行分组。
5、在在执行批量INSERT操作时,如果其中一条插入语句失败,MySQL将自动回滚所有之前成功的插入操作。( )
【答案】正确。MySQL 里批量 INSERT 默认在事务中执行,事务遵循原子性,只要一条插入失败,为保证数据一致,会回滚所有已成功插入,所以该描述正确。
6、DELETE 语句执行的是物理删除,被删除的记录将不再存在于数据库表中。( )
【答案】错误。DELETE是逻辑删除,标记记录为删除、可被后续复用,并非物理清除(记录还在数据库存储结构,只是标记不可见 );物理删除常用TRUNCATE等,所以该描述错误。
7、在MySQL中,SELECT DISTINCT可以用来选择不同的行,但它不能与 ORDER BY子句一起使用。( )
【答案】错误。SELECT DISTINCT (去重)和 ORDER BY (排序)可共存,先去重再按规则排序结果集,所以“不能一起使用”说法错误。
8、在MySQL中,使用JOIN连接两个表时,只有INNER JOIN可以没有ON子句,因为默认情况下它就会执行笛卡儿积。( )
【答案】错误。 INNER JOIN必须用ON子句指定连接条件,不存在“默认执行笛卡儿积”,CROSS JOIN(交叉连接)才会在无 ON 时执行笛卡儿积,所以该描述错误。
9、如果省略WHERE子句,UPDATE语句将更新表中的所有记录。( )
【答案】正确。UPDATE语句里,若省略WHERE子句,就没有条件限制,会更新表中所有符合更新操作范围(如无WHERE时是全表)的记录,所以描述正确。
10、使用INNERJOIN时,如果连接条件不满足,那么相关的行将不会出现在结果集中。( )
【答案】正确。INNER JOIN(内连接)逻辑是只返回满足ON后连接条件的行,条件不满足则不包含对应行,所以描述正确。
四、命令题(本大题共5小题,每小题2分,共10分)
有数据表rs(name,department, parttime,amount,totalamount,allowance,sex),各字段含义分别为姓名,部门,人党时间,基本工资,实发金额,补贴,性别。
1、将rs表中基本工资大于2000元的记录删除。
【答案】DELEFT FROM rs WHERE amount>2000;
2、查询rs表中所有人党时间超过3年的且实发金额在4000元(包括)以上的记录。
【答案】SELECT *FROM rs WHERE year(date())-year(parttime)>3 AND totalamount>=4000;
3、为rs表建立一个按实发金额排降序的索引,索引名为sy_totalamount。
【答案】CREATE INDEX sy_totalamount ON rs( totalamount desc);
4、在rs表中增加一条记录,内容为:宝莉,女,就业处,基本工资为5000。
【答案】INSERT INTO rs(name,sex ,parttime,amount) VALUES("宝莉","女","就业处",5000);
5、在rs表中,将“生产”部门的所有职工的补贴在原来的基础上增加20%
【答案】UPDATE rs SET allowance=allowance*1.2 WHERE parttime=“生产”;
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$