第34卷 数据库原理与应用技术—数据插入操作—河北省计算机类—考纲百套卷
|
2份
|
13页
|
52人阅读
|
0人下载
内容正文:
编写说明:河北省对口招生计算机类《考纲百套卷》,依据《河北省普通高等学校对口招生考试大纲(2028版专业课)计算机类》编写。本专辑涵盖9门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第34卷为专业核心模块训练卷,按《数据库原理与应用技术》中"数据库卷12——数据插入操作"范围和要求编写。具体内容为:掌握插入数据的语句:INSERT...VALUES、INSERT...SET、INSERT...SELECT
河北省对口招生职业技能考试
数据库原理与应用技术 试卷
(数据库卷12——数据插入操作)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. SQL中,用于向表中插入数据的命令是()
A.INSERT INTO B.ADD INTO C.PUT INTO D.APPEND INTO
【答案】A
【解析】SQL中插入数据的标准命令是INSERT INTO,核心语法为INSERT INTO 表名 (字段名) VALUES (值);其余选项均不是MySQL中插入数据的有效语法,属于干扰项。
2. INSERT INTO ... VALUES语句的作用是()
A.查询数据 B.向表中插入指定行数据 C.更新数据 D.删除数据
【答案】B
【解析】INSERT INTO ... VALUES是最基础的插入语句,用于向指定表中插入一行或多行具体数据,需保证字段与值的数量、类型一致。
3. MySQL中,INSERT ... SET语句的特点是()
A.只能插入单行数据 B.只能插入多行数据 C.必须指定所有字段 D.无需按表中字段顺序插入
【答案】D
【解析】INSERT ... SET语句通过“字段名=值”的形式插入数据,可灵活指定部分字段,无需按照表中字段的顺序排列,默认插入单行数据。
4. INSERT INTO ... SELECT语句的作用是()
A.查询数据 B.将查询结果插入到目标表中 C.更新数据 D.删除数据
【答案】B
【解析】INSERT INTO ... SELECT是批量插入语句,核心作用是将一个查询(SELECT)的结果集,直接插入到指定的目标表中,实现数据批量迁移或复制。
5. 使用INSERT INTO ... VALUES插入多行数据时,多个值列表之间应使用()分隔
A.逗号(,) B.分号(;) C.冒号(:) D.顿号(、)
【答案】A
【解析】插入多行数据的语法为INSERT INTO 表名 (字段1,字段2) VALUES (值1,值2), (值3,值4), ...;多个值列表之间用逗号分隔,语句末尾加分号结束。
6. 下列关于INSERT ... VALUES语句的说法,正确的是()
A.可以插入与表中字段类型不匹配的数据 B.必须指定所有字段才能插入数据 C.字段与值的数量必须一致 D.插入的数据可以超出字段的长度限制
【答案】C
【解析】A错误,插入的数据类型必须与表中对应字段类型一致,否则会报错;B错误,可指定部分字段插入,未指定的字段取默认值或NULL(需允许为空);D错误,插入的数据不能超出字段设置的长度限制;C正确,字段与值的数量、顺序需对应一致。
7. 使用INSERT ... SET语句插入数据时,若未指定某字段,该字段会()
A.报错 B.取默认值 C.取空值 D.取0或空字符串
【答案】B
【解析】INSERT ... SET语句未指定的字段,会自动取该字段的默认值(若字段设置了默认值);若字段未设置默认值且允许为空,则取NULL;若字段不允许为空且无默认值,则报错。
8. 下列INSERT INTO ... SELECT语句语法正确的是()
A.INSERT INTO t1 SELECT * FROM t2; B.INSERT SELECT * FROM t2 INTO t1; C.INSERT INTO t1 VALUES SELECT * FROM t2; D.SELECT * FROM t2 INSERT INTO t1;
【答案】A
【解析】INSERT INTO ... SELECT的标准语法为INSERT INTO 目标表名 SELECT 字段/(*) FROM 源表名;其余选项均为语法错误,顺序或关键字错误。
9. 使用INSERT ... SELECT插入数据时,源表和目标表的要求是()
A.表名必须相同 B.字段数量和类型必须一致 C.字段名称必须相同 D.表结构完全一致
【答案】B
【解析】插入时,源表查询结果的字段数量、数据类型需与目标表对应字段一致(字段名称可不同),否则会报错;无需表名相同或表结构完全一致。
10. MySQL中,插入数据时,若字段设置为NOT NULL且无默认值,未指定该字段会()
A.自动取空值 B.自动取0 C.报错 D.自动取当前时间
【答案】C
【解析】NOT NULL约束表示字段不允许为空,若该字段无默认值,插入数据时未指定该字段,MySQL会报错,提示“字段不能为空”。
11. 下列哪种插入方式可以一次性插入多行数据()
A.INSERT ... SET B.INSERT ... VALUES(单个值列表) C.INSERT ... VALUES(多个值列表) D.以上都可以
【答案】C
【解析】INSERT ... VALUES后跟随多个用逗号分隔的值列表,可一次性插入多行数据;INSERT ... SET只能插入单行数据;单个值列表的INSERT ... VALUES只能插入单行数据。
12. 若表t_student有字段id(INT)、name(VARCHAR)、age(INT),下列插入语句正确的是()
A.INSERT INTO t_student VALUES (1, '张三', '20'); B.INSERT INTO t_student (id, name, age) VALUES (1, '张三', 20); C.INSERT INTO t_student VALUES (1, '张三'); D.INSERT INTO t_student (id, age) VALUES ('1', 20);
【答案】B
【解析】A错误,age字段是INT类型,插入字符串'20'会类型不匹配;C错误,值的数量(2个)与字段数量(3个)不一致,且未指定字段;D错误,id字段是INT类型,插入字符串'1'会类型不匹配;B正确,字段与值的数量、类型均一致。
13. INSERT ... SET语句中,赋值表达式的分隔符是()
A.逗号(,) B.分号(;) C.冒号(:) D.等号(=)
【答案】A
【解析】INSERT ... SET语句的语法为INSERT INTO 表名 SET 字段1=值1, 字段2=值2, ...;多个“字段=值”的赋值表达式之间用逗号分隔。
14. 使用INSERT ... SELECT插入数据时,若目标表中存在主键约束,以下说法正确的是()
A.可以插入与主键重复的数据 B.插入主键重复的数据会报错 C.会自动修改主键值 D.会删除目标表中原有主键重复的数据
【答案】B
【解析】主键约束要求主键字段的值唯一且非空,若插入的数据中主键值与目标表中已有主键值重复,MySQL会报错,拒绝插入该条数据。
15. 下列关于数据插入的说法,错误的是()
A.插入的数据需符合表的字段约束 B.INSERT ... SELECT可以插入查询到的部分字段 C.INSERT ... VALUES只能插入单行数据 D.INSERT ... SET可以灵活指定插入的字段
【答案】C
【解析】C错误,INSERT ... VALUES可以通过多个值列表(用逗号分隔)一次性插入多行数据;A、B、D选项均为正确说法。
16. MySQL中,若要向表中插入当前系统时间,可使用的函数是()
A.NOW() B.TIME() C.DATE() D.YEAR()
【答案】A
【解析】NOW()函数返回当前系统的日期和时间,适合插入到DATETIME类型的字段中;TIME()仅返回时间,DATE()仅返回日期,YEAR()仅返回年份。
17. 下列INSERT语句中,能正确插入NULL值的是()
A.INSERT INTO t1 (name) VALUES (NULL); B.INSERT INTO t1 (name) VALUES ('NULL'); C.INSERT INTO t1 (name) VALUES (空); D.INSERT INTO t1 (name) VALUES ();
【答案】A
【解析】插入NULL值时,直接写NULL(不加引号),前提是该字段允许为空;B选项插入的是字符串'NULL',不是空值;C、D选项均为语法错误。
18. 使用INSERT ... SELECT插入数据时,若源表查询结果为空,会()
A.报错 B.插入一条空数据 C.不插入任何数据 D.删除目标表中所有数据
【答案】C
【解析】INSERT ... SELECT是将查询结果插入目标表,若源表查询结果为空(无匹配数据),则不会向目标表中插入任何数据,也不会报错。
19. 若表t_book有字段book_id(INT, PRIMARY KEY)、book_name(VARCHAR),下列插入语句错误的是()
A.INSERT INTO t_book VALUES (1, '数据库原理'); B.INSERT INTO t_book (book_id, book_name) VALUES (2, 'MySQL教程'); C.INSERT INTO t_book SET book_id=3, book_name='Python基础'; D.INSERT INTO t_book (book_name) VALUES ('Java编程');
【答案】D
【解析】D错误,book_id是主键字段,具有非空约束,未指定该字段且无默认值,插入时会报错;A、B、C选项均为正确的插入语句。
20. 下列哪种插入语句可以灵活指定部分字段,且无需按字段顺序插入()
A.INSERT ... VALUES B.INSERT ... SET C.INSERT ... SELECT D.以上都可以
【答案】B
【解析】INSERT ... SET通过“字段名=值”的形式插入,可灵活选择部分字段,且无需按照表中字段的顺序排列;INSERT ... VALUES需保证字段与值的顺序一致;INSERT ... SELECT依赖查询结果的顺序,无法灵活调整。
二、填空题(共10空,每空1分,共10分)
21. SQL中,用于向表中插入数据的核心命令是_____。
【答案】INSERT INTO
【解析】INSERT INTO是插入数据的基础命令,后续可配合VALUES、SET、SELECT子句实现不同方式的插入操作。
22. MySQL中,INSERT ... _____语句通过“字段名=值”的形式插入数据,可灵活指定部分字段。
【答案】SET
【解析】INSERT ... SET语句的核心特点是通过赋值表达式指定插入的字段和值,无需按表中字段顺序排列。
23. INSERT INTO ... VALUES语句插入多行数据时,多个值列表之间用_____分隔。
【答案】逗号(,)
【解析】例如:INSERT INTO t1 (id, name) VALUES (1, '张三'), (2, '李四'); 多个值列表用逗号分隔。
24. INSERT INTO ... SELECT语句的作用是将_____的结果插入到目标表中。
【答案】SELECT查询
【解析】该语句是批量插入的常用方式,可直接将一个SELECT查询得到的结果集,插入到指定的目标表中。
25. 使用INSERT语句插入数据时,字段与值的_____和类型必须一致,否则会报错。
【答案】数量
【解析】插入数据时,指定的字段数量需与提供的值的数量一一对应,且数据类型匹配,才能正常插入。
26. MySQL中,若字段设置为NOT NULL且无默认值,插入数据时_____该字段会报错。
【答案】未指定
【解析】NOT NULL约束禁止字段为空,无默认值时,必须指定该字段的值,否则MySQL会拒绝插入并报错。
27. INSERT ... SET语句默认只能插入_____行数据。
【答案】单
【解析】INSERT ... SET语句一次只能通过一组“字段=值”表达式插入一行数据,无法直接插入多行。
28. 使用INSERT ... SELECT插入数据时,源表查询结果的字段类型需与_____的字段类型一致。
【答案】目标表
【解析】若源表查询结果的字段类型与目标表对应字段类型不匹配,会导致插入失败,提示类型错误。
29. 向表中插入空值时,需在VALUES或SET子句中写_____(不加引号)。
【答案】NULL
【解析】插入空值的正确写法是直接使用NULL关键字,不加引号;加引号的'NULL'表示字符串,不是空值。
30. INSERT INTO ... VALUES语句中,若不指定字段列表,需按_____的顺序插入所有字段的值。
【答案】表中字段
【解析】不指定字段列表时,值的顺序必须与表中字段的定义顺序完全一致,否则会出现字段与值不匹配的错误。
三、判断题(共5题,每题1分,共5分)
31. INSERT INTO ... VALUES语句只能插入单行数据。( )
【答案】×
【解析】INSERT INTO ... VALUES语句可以插入多行数据,只需将多个值列表用逗号分隔即可。
32. INSERT ... SET语句可以灵活指定部分字段,无需按表中字段顺序插入数据。( )
【答案】√
【解析】INSERT ... SET通过“字段名=值”的形式赋值,可选择需要插入的字段,且无需遵循表中字段的定义顺序。
33. 使用INSERT ... SELECT插入数据时,源表和目标表的字段名称必须相同。( )
【答案】×
【解析】只需保证源表查询结果的字段数量、数据类型与目标表对应字段一致即可,字段名称可以不同。
34. 插入数据时,若字段设置了默认值,未指定该字段则会自动取默认值。( )
【答案】√
【解析】字段设置默认值后,插入数据时未指定该字段,MySQL会自动将该字段的值设为预设的默认值。
35. INSERT语句插入的数据可以超出表中字段设置的长度限制。( )
【答案】×
【解析】插入的数据长度不能超出字段设置的最大长度,否则会报错,或被MySQL自动截断(取决于系统配置)。
四、写命令题(共5题,每题9分,共45分)
36. 已知有两张表:教师表teacher(tid INT, tname VARCHAR(20), dept VARCHAR(20), salary DECIMAL(10,2)),授课表teaching(tid INT, cid VARCHAR(10), semester VARCHAR(20)),请写出SQL命令:查询没有参与授课的教师(即在teaching表中没有记录)的姓名和所在院系。
【答案】
SELECT tname, dept
FROM teacher
WHERE tid NOT IN (SELECT DISTINCT tid FROM teaching);
【解析】本题考查子查询(NOT IN)来查找不存在的关联记录,考查内容关键词:子查询、NOT IN、DISTINCT。
37. 已知有学生表student(sno VARCHAR(10) PRIMARY KEY, sname VARCHAR(20) NOT NULL, sage INT, sdept VARCHAR(20)),请写出SQL命令:查询计算机系(sdept='CS')中,成绩在80分及以上的学生的学号、姓名和成绩,按成绩降序排列。
【答案】
SELECT s.sno, s.sname, sc.grade
FROM student s
INNER JOIN sc ON s.sno = sc.sno
WHERE s.sdept = 'CS' AND sc.grade >= 80
ORDER BY sc.grade DESC;
【解析】本题考查多表连接+条件查询+ORDER BY排序,考查内容关键词:SELECT、连接查询、条件查询、ORDER BY DESC。
38. 请写出撤销用户user1对mydb数据库的INSERT权限,并删除该用户的SQL语句。
【答案】
REVOKE INSERT ON mydb.* FROM 'user1'@'localhost';
DROP USER 'user1'@'localhost';
【解析】REVOKE撤销权限,DROP USER删除用户。
39. 已知有订单表orders(order_id INT PRIMARY KEY, customer_id INT, order_date DATE, total_amount DECIMAL(12,2), status VARCHAR(20)),请写出SQL命令:统计每种订单状态(status)的订单数量和平均订单金额,只显示订单数量大于10的,按平均金额降序排列。
【答案】
SELECT status, COUNT(*) AS order_count, AVG(total_amount) AS avg_amount
FROM orders
GROUP BY status
HAVING COUNT(*) > 10
ORDER BY avg_amount DESC;
【解析】本题综合考查GROUP BY+HAVING+聚合函数+ORDER BY,考查内容关键词:GROUP BY、HAVING、COUNT、AVG聚合函数。
40. 已知有学生表student(sno CHAR(8) PRIMARY KEY, sname VARCHAR(20), ssex CHAR(2), sage INT, sdept VARCHAR(20)),请写出SQL命令:查询每个院系的学生人数和平均年龄,只显示人数大于5的,按平均年龄降序排列。
【答案】
SELECT sdept, COUNT(*) AS stu_count, AVG(sage) AS avg_age
FROM student
GROUP BY sdept
HAVING COUNT(*) > 5
ORDER BY avg_age DESC;
【解析】本题综合考查分组统计+HAVING过滤+ORDER BY,考查内容关键词:GROUP BY、HAVING、COUNT、AVG聚合函数。
学科网(北京)股份有限公司
$
编写说明:河北省对口招生计算机类《考纲百套卷》,依据《河北省普通高等学校对口招生考试大纲(2028版专业课)计算机类》编写。本专辑涵盖9门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第34卷为专业核心模块训练卷,按《数据库原理与应用技术》中"数据库卷12——数据插入操作"范围和要求编写。具体内容为:掌握插入数据的语句:INSERT...VALUES、INSERT...SET、INSERT...SELECT
河北省对口招生职业技能考试
数据库原理与应用技术 试卷
(数据库卷12——数据插入操作)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. SQL中,用于向表中插入数据的命令是()
A.INSERT INTO B.ADD INTO C.PUT INTO D.APPEND INTO
2. INSERT INTO ... VALUES语句的作用是()
A.查询数据 B.向表中插入指定行数据 C.更新数据 D.删除数据
3. MySQL中,INSERT ... SET语句的特点是()
A.只能插入单行数据 B.只能插入多行数据
C.必须指定所有字段 D.无需按表中字段顺序插入
4. INSERT INTO ... SELECT语句的作用是()
A.查询数据 B.将查询结果插入到目标表中 C.更新数据 D.删除数据
5. 使用INSERT INTO ... VALUES插入多行数据时,多个值列表之间应使用()分隔
A.逗号(,) B.分号(;) C.冒号(:) D.顿号(、)
6. 下列关于INSERT ... VALUES语句的说法,正确的是()
A.可以插入与表中字段类型不匹配的数据
B.必须指定所有字段才能插入数据
C.字段与值的数量必须一致
D.插入的数据可以超出字段的长度限制
7. 使用INSERT ... SET语句插入数据时,若未指定某字段,该字段会()
A.报错 B.取默认值 C.取空值 D.取0或空字符串
8. 下列INSERT INTO ... SELECT语句语法正确的是()
A.INSERT INTO t1 SELECT * FROM t2; B.INSERT SELECT * FROM t2 INTO t1;
C.INSERT INTO t1 VALUES SELECT * FROM t2; D.SELECT * FROM t2 INSERT INTO t1;
9. 使用INSERT ... SELECT插入数据时,源表和目标表的要求是()
A.表名必须相同 B.字段数量和类型必须一致 C.字段名称必须相同 D.表结构完全一致
10. MySQL中,插入数据时,若字段设置为NOT NULL且无默认值,未指定该字段会()
A.自动取空值 B.自动取0 C.报错 D.自动取当前时间
11. 下列哪种插入方式可以一次性插入多行数据()
A.INSERT ... SET B.INSERT ... VALUES(单个值列表) C.INSERT ... VALUES(多个值列表) D.以上都可以
12. 若表t_student有字段id(INT)、name(VARCHAR)、age(INT),下列插入语句正确的是()
A.INSERT INTO t_student VALUES (1, '张三', '20');
B.INSERT INTO t_student (id, name, age) VALUES (1, '张三', 20);
C.INSERT INTO t_student VALUES (1, '张三');
D.INSERT INTO t_student (id, age) VALUES ('1', 20);
13. INSERT ... SET语句中,赋值表达式的分隔符是()
A.逗号(,) B.分号(;) C.冒号(:) D.等号(=)
14. 使用INSERT ... SELECT插入数据时,若目标表中存在主键约束,以下说法正确的是()
A.可以插入与主键重复的数据 B.插入主键重复的数据会报错
C.会自动修改主键值 D.会删除目标表中原有主键重复的数据
15. 下列关于数据插入的说法,错误的是()
A.插入的数据需符合表的字段约束 B.INSERT ... SELECT可以插入查询到的部分字段 C.INSERT ... VALUES只能插入单行数据 D.INSERT ... SET可以灵活指定插入的字段
16. MySQL中,若要向表中插入当前系统时间,可使用的函数是()
A.NOW() B.TIME() C.DATE() D.YEAR()
17. 下列INSERT语句中,能正确插入NULL值的是()
A.INSERT INTO t1 (name) VALUES (NULL); B.INSERT INTO t1 (name) VALUES ('NULL'); C.INSERT INTO t1 (name) VALUES (空); D.INSERT INTO t1 (name) VALUES ();
18. 使用INSERT ... SELECT插入数据时,若源表查询结果为空,会()
A.报错 B.插入一条空数据 C.不插入任何数据 D.删除目标表中所有数据
19. 若表t_book有字段book_id(INT, PRIMARY KEY)、book_name(VARCHAR),下列插入语句错误的是()
A.INSERT INTO t_book VALUES (1, '数据库原理');
B.INSERT INTO t_book (book_id, book_name) VALUES (2, 'MySQL教程');
C.INSERT INTO t_book SET book_id=3, book_name='Python基础';
D.INSERT INTO t_book (book_name) VALUES ('Java编程');
20. 下列哪种插入语句可以灵活指定部分字段,且无需按字段顺序插入()
A.INSERT ... VALUES B.INSERT ... SET C.INSERT ... SELECT D.以上都可以
二、填空题(共10空,每空1分,共10分)
21. SQL中,表示数字大小范围(包含端点)的区间查询关键字是_____。
22. 子查询可以分为标量子查询、_____子查询和表子查询。
23. SQL中,用于向表中插入数据的命令是_____。
24. 在SQL中,用LIKE进行模糊查询时,代表任意字符序列的通配符是_____。
25. 在SELECT语句中,用于消除重复行的关键字是_____。
26. MySQL中,计算某列平均值的聚合函数是_____。
27. MySQL用户账号信息存储在mysql数据库的_____表中。
28. MySQL中,删除用户的命令是DROP_____。
29. 数据库事务的四个特性简称_____。
30. 关系数据库中,二维表中的每一行称为_____。
三、判断题(共5题,每题1分,共5分)
31. SELECT语句可以使用WHERE子句进行条件筛选。( )
32. MySQL增量备份记录自上次备份以来发生变化的所有数据。( )
33. 关系数据库第三范式(3NF)消除的是非主属性对主键的传递依赖。( )
34. COMMIT语句可以撤销事务中的操作。( )
35. 在MySQL中,一张表只能有一个索引。( )
四、写命令题(共5题,每题9分,共45分)
36. 已知有两张表:教师表teacher(tid INT, tname VARCHAR(20), dept VARCHAR(20), salary DECIMAL(10,2)),授课表teaching(tid INT, cid VARCHAR(10), semester VARCHAR(20)),请写出SQL命令:查询没有参与授课的教师(即在teaching表中没有记录)的姓名和所在院系。
37. 已知有学生表student(sno VARCHAR(10) PRIMARY KEY, sname VARCHAR(20) NOT NULL, sage INT, sdept VARCHAR(20)),请写出SQL命令:查询计算机系(sdept='CS')中,成绩在80分及以上的学生的学号、姓名和成绩,按成绩降序排列。
38. 请写出撤销用户user1对mydb数据库的INSERT权限,并删除该用户的SQL语句。
39. 已知有订单表orders(order_id INT PRIMARY KEY, customer_id INT, order_date DATE, total_amount DECIMAL(12,2), status VARCHAR(20)),请写出SQL命令:统计每种订单状态(status)的订单数量和平均订单金额,只显示订单数量大于10的,按平均金额降序排列。
40. 已知有学生表student(sno CHAR(8) PRIMARY KEY, sname VARCHAR(20), ssex CHAR(2), sage INT, sdept VARCHAR(20)),请写出SQL命令:查询每个院系的学生人数和平均年龄,只显示人数大于5的,按平均年龄降序排列。
学科网(北京)股份有限公司
$