第41卷 数据库原理与应用技术—存储过程—河北省计算机类—考纲百套卷
|
2份
|
13页
|
44人阅读
|
0人下载
内容正文:
编写说明:河北省对口招生计算机类《考纲百套卷》,依据《河北省普通高等学校对口招生考试大纲(2028版专业课)计算机类》编写。本专辑涵盖9门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第41卷为专业核心模块训练卷,按《数据库原理与应用技术》中"数据库卷19——存储过程"范围和要求编写。具体内容为:掌握存储过程和存储函数的使用方法,包括:存储过程的基本概念、特点与作用;存储过程体的基本概念及构造方法;使用SQL语句创建、修改、删除存储过程的操作方法及应用;存储过程的调用方法
河北省对口招生职业技能考试
数据库原理与应用技术 试卷
(数据库卷19——存储过程)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. 下列关于MySQL存储过程的特点,说法错误的是()
A. 存储过程编译后存储在数据库中,可反复调用 B. 存储过程可接受输入、输出参数 C. 存储过程不能包含条件判断语句 D. 存储过程能提高代码复用性
【答案】C
【解析】MySQL存储过程支持条件判断语句(如IF...ELSE、CASE语句),可根据不同条件执行不同的逻辑;A、B、D均为存储过程的正确特点,其中存储过程编译后持久化存储,可反复调用,支持IN、OUT、INOUT三种参数,能有效提高代码复用性。
2. MySQL中,存储函数与存储过程在调用时,存储函数可以出现在()中
A.INSERT语句VALUES列表 B.SELECT语句的列表达式 C.UPDATE语句SET子句 D.以上都可以
【答案】D
【解析】存储函数与存储过程的调用区别之一是:存储函数有返回值,可作为表达式的一部分,能出现在INSERT语句VALUES列表、SELECT语句列表达式、UPDATE语句SET子句中;而存储过程需通过CALL命令单独调用,不能作为表达式一部分。
3. MySQL存储过程中,使用哪个关键字可以将结果返回给调用者()
A.RETURN B.SELECT C.OUT参数 D.GET
【答案】C
【解析】OUT参数是存储过程中用于将结果返回给调用者的核心方式;A错误,RETURN是存储函数返回值的关键字,存储过程不能用RETURN返回结果;B错误,SELECT语句用于查询数据,不能主动将结果返回给调用者;D错误,GET不是MySQL中用于返回结果的关键字。
4. 存储过程与普通SQL语句的主要区别是()
A.存储过程编译后存储在数据库中,可反复调用 B.存储过程不能接受参数 C.存储过程只能查询数据 D.存储过程不需要BEGIN...END
【答案】A
【解析】存储过程的核心特点是编译后持久化存储在数据库中,可反复调用,无需重复编译,这是其与普通SQL语句的主要区别;B错误,存储过程可接受IN、OUT、INOUT三种参数;C错误,存储过程可包含增删改查所有操作;D错误,存储过程体需用BEGIN...END包裹复合语句。
5. MySQL存储过程中,给参数加上IN关键字的作用是()
A.声明参数为输出参数 B.声明参数为输入参数 C.声明参数为输入输出参数 D.声明参数为可选
【答案】B
【解析】MySQL存储过程的参数类型分为三种:IN(输入参数,用于向存储过程传入数据)、OUT(输出参数,用于向调用者返回数据)、INOUT(输入输出参数,可传入也可返回数据);A对应OUT,C对应INOUT,D说法错误,参数无“可选”类型。
6. MySQL中,删除存储过程的命令是()
A.DROP PROCEDURE proc_name B.DROP FUNCTION proc_name C.DELETE PROCEDURE proc_name D.REMOVE PROCEDURE proc_name
【答案】A
【解析】删除存储过程的标准命令是DROP PROCEDURE 存储过程名;B错误,DROP FUNCTION用于删除存储函数;C、D均不是MySQL中删除存储过程的有效语法。
7. MySQL中,使用()来定义存储过程体的开始和结束
A.[ ] B.( ) C.BEGIN...END D.{ }
【答案】C
【解析】MySQL中,存储过程体必须用BEGIN...END包裹,用于定义复合语句块;A、B、D均不能用于定义存储过程体的开始和结束,其中()用于包裹参数列表。
8. 在MySQL中,BEGIN...END块用于()
A.定义数据库 B.定义复合语句块(存储过程、触发器等) C.开始一个事务 D.创建表
【答案】B
【解析】BEGIN...END的核心作用是定义复合语句块,常用于存储过程、触发器的语句体,将多条SQL语句组合成一个整体执行;A错误,定义数据库用CREATE DATABASE;C错误,开始事务用START TRANSACTION;D错误,创建表用CREATE TABLE。
9. MySQL中,删除存储函数的命令是()
A.DROP FUNCTION func_name B.DROP PROCEDURE func_name C.DELETE FUNCTION func_name D.REMOVE FUNCTION func_name
【答案】A
【解析】删除存储函数的标准命令是DROP FUNCTION 存储函数名;B错误,DROP PROCEDURE用于删除存储过程;C、D均不是MySQL中删除存储函数的有效语法。
10. MySQL存储函数中,使用()语句返回值
A.OUT B.SELECT C.RETURN D.GET
【答案】C
【解析】存储函数必须通过RETURN语句返回一个值,且返回值类型需与函数定义的RETURNS子句一致;A错误,OUT是存储过程的输出参数,不用于存储函数;B错误,SELECT用于查询数据,不能作为存储函数的返回方式;D错误,GET不是MySQL中用于返回值的关键字。
11. MySQL中,调用存储函数的语法是()
A.CALL func_name() B.SELECT func_name() C.EXECUTE func_name() D.RUN func_name()
【答案】B
【解析】存储函数有返回值,需作为表达式调用,语法为SELECT 存储函数名(参数);A错误,CALL用于调用存储过程;C、D均不是MySQL中调用存储函数的有效语法。
12. MySQL中,创建存储过程时,指定参数类型的关键字不包括()
A.IN B.OUT C.INOUT D.INT
【答案】D
【解析】MySQL存储过程的参数类型关键字有三种:IN(输入)、OUT(输出)、INOUT(输入输出);INT是数据类型,用于指定参数的数据类型,不是参数类型关键字。
13. MySQL中,调用存储过程的命令是()
A.EXECUTE proc_name B.CALL proc_name() C.RUN proc_name() D.START proc_name()
【答案】B
【解析】调用存储过程的标准命令是CALL 存储过程名(参数);A、C、D均不是MySQL中调用存储过程的有效语法。
14. MySQL存储过程中,用于声明局部变量的语句是()
A.DECLARE B.SET C.SELECT D.RETURN
【答案】A
【解析】存储过程中,局部变量需用DECLARE关键字声明,语法为DECLARE 变量名 数据类型 [DEFAULT 默认值];B错误,SET用于给变量赋值;C错误,SELECT用于查询;D错误,RETURN用于存储函数返回值。
15. MySQL中,存储过程的参数如果省略类型声明,默认是()类型
A.IN B.OUT C.INOUT D.无默认类型
【答案】A
【解析】MySQL存储过程中,参数若省略类型声明(IN/OUT/INOUT),默认是IN类型(输入参数),用于向存储过程传入数据。
16. MySQL存储函数的RETURNS子句用于指定()
A.参数类型 B.返回值的数据类型 C.函数名称 D.函数执行时间
【答案】B
【解析】存储函数的RETURNS子句专门用于指定返回值的数据类型(如INT、VARCHAR),且函数体中必须有一条RETURN语句返回对应类型的值;A错误,参数类型在函数参数列表中声明;C、D说法错误。
17. 存储函数与存储过程的主要区别是()
A.存储函数有返回值,存储过程没有;存储函数只能作为表达式调用 B.存储函数不能有参数 C.存储过程不能返回值 D.没有区别
【答案】A
【解析】存储函数与存储过程的核心区别:存储函数必须有返回值(通过RETURN),且只能作为表达式调用;存储过程可通过OUT参数返回结果,需通过CALL命令调用;B错误,存储函数可有参数;C错误,存储过程可通过OUT参数或SELECT返回结果;D错误,两者有明显区别。
18. 下列关于MySQL存储过程的说法,正确的是()
A. 存储过程不能包含循环语句 B. 存储过程必须有参数 C. 存储过程可通过SELECT语句返回多个结果集 D. 存储过程不能调用其他存储过程
【答案】C
【解析】A错误,存储过程支持循环语句(如WHILE、REPEAT);B错误,存储过程可无参数;C正确,存储过程可通过多个SELECT语句返回多个结果集;D错误,存储过程可以调用其他存储过程和存储函数。
19. MySQL存储函数中,函数体必须包含()语句
A.SELECT B.DELETE C.RETURN D.UPDATE
【答案】C
【解析】存储函数的核心要求是函数体中必须包含至少一条RETURN语句,用于返回一个值,且返回值类型需与RETURNS子句指定的类型一致;A、B、D均不是存储函数体的必需语句。
20. MySQL中,修改存储过程的命令是()
A.ALTER PROCEDURE proc_name B.MODIFY PROCEDURE proc_name C.UPDATE PROCEDURE proc_name D.CHANGE PROCEDURE proc_name
【答案】A
【解析】修改存储过程的标准命令是ALTER PROCEDURE 存储过程名 [修改内容];B、C、D均不是MySQL中修改存储过程的有效语法。
二、填空题(共10空,每空1分,共10分)
21. MySQL中,创建存储过程使用的关键字是_____。
【答案】PROCEDURE
【解析】MySQL中创建存储过程的语法为CREATE PROCEDURE 存储过程名(参数) BEGIN 存储过程体 END;核心关键字为PROCEDURE。
22. MySQL存储过程中,SET语句用于给变量进行_____。
【答案】赋值
【解析】存储过程中,SET语句的核心作用是给局部变量或参数赋值,语法为SET 变量名 = 值;此外也可通过SELECT...INTO语句给变量赋值。
23. MySQL中,存储过程和存储函数的核心区别是_____是否必须有返回值。
【答案】存储函数
【解析】存储函数必须有返回值(通过RETURN语句),且返回值类型需在RETURNS子句中指定;存储过程可通过OUT参数或SELECT返回结果,也可无返回结果。
24. MySQL存储函数通过_____语句返回值。
【答案】RETURN
【解析】存储函数的函数体中必须包含RETURN语句,用于返回一个值,该值的数据类型需与函数定义时RETURNS子句指定的类型一致。
25. MySQL存储过程体使用BEGIN..._____包裹。
【答案】END
【解析】MySQL中,存储过程体是复合语句块,必须用BEGIN...END包裹,用于将多条SQL语句组合成一个整体,作为存储过程的执行逻辑。
26. MySQL存储过程中,用于声明局部变量的关键字是_____。
【答案】DECLARE
【解析】存储过程中,局部变量需用DECLARE关键字声明,通常放在BEGIN...END块的开头,语法为DECLARE 变量名 数据类型 [DEFAULT 默认值],作用域仅限于当前BEGIN...END块。
27. MySQL存储过程中,IN参数用于向过程传入_____,OUT参数用于传出_____。
【答案】数据;结果
【解析】IN参数是输入参数,用于向存储过程传入数据,存储过程可使用该参数进行逻辑运算;OUT参数是输出参数,用于将存储过程的运算结果返回给调用者。
28. MySQL存储函数体中至少需要包含_____条RETURN语句。
【答案】1
【解析】存储函数的核心要求是必须有返回值,因此函数体中至少需要包含1条RETURN语句,用于返回指定类型的值,且只能返回一个值。
29. MySQL中,调用存储过程的命令关键字是_____。
【答案】CALL
【解析】MySQL中,调用存储过程的标准语法为CALL 存储过程名(参数),关键字CALL是调用存储过程的核心,不能省略。
30. MySQL中,创建存储函数使用CREATE_____关键字。
【答案】FUNCTION
【解析】创建存储函数的语法为CREATE FUNCTION 存储函数名(参数) RETURNS 数据类型 BEGIN 函数体 END;核心关键字为FUNCTION。
三、判断题(共5题,每题1分,共5分)
31. MySQL存储过程中可以使用SELECT语句返回结果集。( )
【答案】√
【解析】MySQL存储过程中,可通过SELECT语句查询数据并返回结果集,这是存储过程返回数据的方式之一,此外还可通过OUT参数返回结果。
32. MySQL存储函数与存储过程都可以使用OUT参数返回值。( )
【答案】×
【解析】OUT参数是存储过程特有的返回结果方式,存储函数不能使用OUT参数,只能通过RETURN语句返回一个值;因此两者不能都使用OUT参数返回值。
33. MySQL存储过程中,局部变量的作用域仅限于BEGIN...END块内部。( )
【答案】√
【解析】存储过程中,用DECLARE声明的局部变量,作用域仅局限于声明它的BEGIN...END块内部,超出该块则无法访问。
34. MySQL中,存储过程可以调用其他存储过程和存储函数。( )
【答案】√
【解析】MySQL存储过程支持嵌套调用,可在一个存储过程的体中,通过CALL命令调用其他存储过程,通过SELECT语句调用存储函数。
35. MySQL中,删除存储过程后,调用该存储过程的语句会报错。( )
【答案】√
【解析】存储过程删除后,其定义从数据库中移除,此时再调用该存储过程,MySQL会因找不到对应的存储过程而报错。
四、写命令题(共5题,每题9分,共45分)
36. 已知有员工表emp(empno INT, ename VARCHAR(30), sal DECIMAL(10,2)),请写一个存储过程p_emp_count,返回员工表中工资大于给定值的员工人数。
【答案】
CREATE PROCEDURE p_emp_count(IN p_sal DECIMAL(10,2), OUT p_count INT)
BEGIN
SELECT COUNT(*) INTO p_count FROM emp WHERE sal > p_sal;
END//
【解析】本题考存储过程的IN/OUT参数,SELECT...INTO将聚合结果赋给输出参数。
37. 已知有成绩表score(sno INT, cname VARCHAR(30), grade INT),请写一个存储函数p_avg_grade,接收课程名参数,返回该课程的平均成绩。
【答案】
CREATE FUNCTION p_avg_grade(p_cname VARCHAR(30))
RETURNS DECIMAL(10,2)
BEGIN
DECLARE avg_grade DECIMAL(10,2);
SELECT AVG(grade) INTO avg_grade FROM score WHERE cname = p_cname;
RETURN avg_grade;
END//
【解析】本题考存储函数的创建:CREATE FUNCTION...RETURNS type...RETURN expr。
38. 已知有视图v_cs(定义:WHERE sdept='CS'),请写出删除该视图的SQL。
【答案】
DROP VIEW v_cs;
【解析】DROP VIEW用于删除视图。
39. 已知有学生表student(sno CHAR(8) PRIMARY KEY, sname VARCHAR(20), sdept VARCHAR(20)),请写出SQL命令:查询计算机系(sdept='CS')和软件工程系(sdept='SE')的所有学生信息,按学号升序排列。
【答案】
SELECT *
FROM student
WHERE sdept IN ('CS', 'SE')
ORDER BY sno ASC;
【解析】本题考查IN关键字多值匹配+ORDER BY,考查内容关键词:IN多值匹配、ORDER BY ASC。
40. 已知有部门表dept(deptno INT PRIMARY KEY, dname VARCHAR(20), loc VARCHAR(20))和员工表emp(empno INT PRIMARY KEY, ename VARCHAR(30), deptno INT),emp.deptno是参照dept.deptno的外键,请写出SQL命令:查询每个部门的部门名称和在该部门工作的员工人数,只显示员工数大于2的部门,按人数降序排列。
【答案】
SELECT d.dname, COUNT(e.empno) AS emp_count
FROM dept d
LEFT JOIN emp e ON d.deptno = e.deptno
GROUP BY d.deptno, d.dname
HAVING COUNT(e.empno) > 2
ORDER BY emp_count DESC;
【解析】本题综合考查左连接+分组聚合+HAVING+ORDER BY,考查内容关键词:LEFT JOIN、GROUP BY、HAVING、COUNT。
学科网(北京)股份有限公司
$
编写说明:河北省对口招生计算机类《考纲百套卷》,依据《河北省普通高等学校对口招生考试大纲(2028版专业课)计算机类》编写。本专辑涵盖9门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第41卷为专业核心模块训练卷,按《数据库原理与应用技术》中"数据库卷19——存储过程"范围和要求编写。具体内容为:掌握存储过程和存储函数的使用方法,包括:存储过程的基本概念、特点与作用;存储过程体的基本概念及构造方法;使用SQL语句创建、修改、删除存储过程的操作方法及应用;存储过程的调用方法
河北省对口招生职业技能考试
数据库原理与应用技术 试卷
(数据库卷19——存储过程)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. 下列关于MySQL存储过程的特点,说法错误的是()
A. 存储过程编译后存储在数据库中,可反复调用 B. 存储过程可接受输入、输出参数
C. 存储过程不能包含条件判断语句 D. 存储过程能提高代码复用性
2. MySQL中,存储函数与存储过程在调用时,存储函数可以出现在()中
A.INSERT语句VALUES列表 B.SELECT语句的列表达式
C.UPDATE语句SET子句 D.以上都可以
3. MySQL存储过程中,使用哪个关键字可以将结果返回给调用者()
A.RETURN B.SELECT C.OUT参数 D.GET
4. 存储过程与普通SQL语句的主要区别是()
A.存储过程编译后存储在数据库中,可反复调用 B.存储过程不能接受参数
C.存储过程只能查询数据 D.存储过程不需要BEGIN...END
5. MySQL存储过程中,给参数加上IN关键字的作用是()
A.声明参数为输出参数 B.声明参数为输入参数
C.声明参数为输入输出参数 D.声明参数为可选
6. MySQL中,删除存储过程的命令是()
A.DROP PROCEDURE proc_name B.DROP FUNCTION proc_name
C.DELETE PROCEDURE proc_name D.REMOVE PROCEDURE proc_name
7. MySQL中,使用()来定义存储过程体的开始和结束
A.[ ] B.( ) C.BEGIN...END D.{ }
8. 在MySQL中,BEGIN...END块用于()
A.定义数据库 B.定义复合语句块(存储过程、触发器等)
C.开始一个事务 D.创建表
9. MySQL中,删除存储函数的命令是()
A.DROP FUNCTION func_name B.DROP PROCEDURE func_name
C.DELETE FUNCTION func_name D.REMOVE FUNCTION func_name
10. MySQL存储函数中,使用()语句返回值
A.OUT B.SELECT C.RETURN D.GET
11. MySQL中,调用存储函数的语法是()
A.CALL func_name() B.SELECT func_name() C.EXECUTE func_name() D.RUN func_name()
12. MySQL中,创建存储过程时,指定参数类型的关键字不包括()
A.IN B.OUT C.INOUT D.INT
13. MySQL中,调用存储过程的命令是()
A.EXECUTE proc_name B.CALL proc_name() C.RUN proc_name() D.START proc_name()
14. MySQL存储过程中,用于声明局部变量的语句是()
A.DECLARE B.SET C.SELECT D.RETURN
15. MySQL中,存储过程的参数如果省略类型声明,默认是()类型
A.IN B.OUT C.INOUT D.无默认类型
16. MySQL存储函数的RETURNS子句用于指定()
A.参数类型 B.返回值的数据类型 C.函数名称 D.函数执行时间
17. 存储函数与存储过程的主要区别是()
A.存储函数有返回值,存储过程没有;存储函数只能作为表达式调用
B.存储函数不能有参数
C.存储过程不能返回值
D.没有区别
18. 下列关于MySQL存储过程的说法,正确的是()
A. 存储过程不能包含循环语句 B. 存储过程必须有参数
C. 存储过程可通过SELECT语句返回多个结果集 D. 存储过程不能调用其他存储过程
19. MySQL存储函数中,函数体必须包含()语句
A.SELECT B.DELETE C.RETURN D.UPDATE
20. MySQL中,修改存储过程的命令是()
A.ALTER PROCEDURE proc_name B.MODIFY PROCEDURE proc_name
C.UPDATE PROCEDURE proc_name D.CHANGE PROCEDURE proc_name
二、填空题(共10空,每空1分,共10分)
21. MySQL中,创建存储过程使用的关键字是_____。
22. MySQL存储过程中,SET语句用于给变量进行_____。
23. MySQL中,存储过程和存储函数的核心区别是_____是否必须有返回值。
24. MySQL存储函数通过_____语句返回值。
25. MySQL存储过程体使用BEGIN..._____包裹。
26. MySQL存储过程中,用于声明局部变量的关键字是_____。
27. MySQL存储过程中,IN参数用于向过程传入_____,OUT参数用于传出_____。
28. MySQL存储函数体中至少需要包含_____条RETURN语句。
29. MySQL中,调用存储过程的命令关键字是_____。
30. MySQL中,创建存储函数使用CREATE_____关键字。
三、判断题(共5题,每题1分,共5分)
31. MySQL存储过程中可以使用SELECT语句返回结果集。( )
32. MySQL存储函数与存储过程都可以使用OUT参数返回值。( )
33. MySQL存储过程中,局部变量的作用域仅限于BEGIN...END块内部。( )
34. MySQL中,存储过程可以调用其他存储过程和存储函数。( )
35. MySQL中,删除存储过程后,调用该存储过程的语句会报错。( )
四、写命令题(共5题,每题9分,共45分)
36. 已知有员工表emp(empno INT, ename VARCHAR(30), sal DECIMAL(10,2)),请写一个存储过程p_emp_count,返回员工表中工资大于给定值的员工人数。
37. 已知有成绩表score(sno INT, cname VARCHAR(30), grade INT),请写一个存储函数p_avg_grade,接收课程名参数,返回该课程的平均成绩。
38. 已知有视图v_cs(定义:WHERE sdept='CS'),请写出删除该视图的SQL。
39. 已知有学生表student(sno CHAR(8) PRIMARY KEY, sname VARCHAR(20), sdept VARCHAR(20)),请写出SQL命令:查询计算机系(sdept='CS')和软件工程系(sdept='SE')的所有学生信息,按学号升序排列。
40. 已知有部门表dept(deptno INT PRIMARY KEY, dname VARCHAR(20), loc VARCHAR(20))和员工表emp(empno INT PRIMARY KEY, ename VARCHAR(30), deptno INT),emp.deptno是参照dept.deptno的外键,请写出SQL命令:查询每个部门的部门名称和在该部门工作的员工人数,只显示员工数大于2的部门,按人数降序排列。
学科网(北京)股份有限公司
$