《数据库基础(MySQL)》试卷
满分:100分
一、选择题(每题3分,共10题,总计30分)
在MySQL中,用于放置可执行文件的目录是(A)
- A. bin目录
- B. data目录
- C. include目录
- D. lib目录
以下哪个命令可以实现切换到test数据库(D)
- A. \s test
- B. \h test
- C. ? Test
- D. \u test
创建视图的SQL语句命令是(C)
- A. CREATE SCHEMA
- B. CREATE TABLE
- C. CREATE VIEW
- D. CREATE INDEX
在MySQL中,建立数据库的命令是(D)
- A. CREATE TABLE
- B. CREATE TRIGGER
- C. CREATE INDEX
- D. CREATE DATABASE
删除数据库的命令是(A)
- A. DROP DATABASE
- B. DELETE DATABASE
- C. ALTER DATABASE
- D. REMOVE DATABASE
以下哪个命令可以删除表中的所有数据,但保留表结构(C)
- A. DELETE FROM table_name
- B. DROP TABLE table_name
- C. TRUNCATE TABLE table_name
- D. CLEAR TABLE table_name
在MySQL中,使用哪种语句可以向表中插入一行或多行数据(A)
- A. INSERT
- B. UPDATE
- C. DELETE
- D. REPLACE
在MySQL中,用于定义主键约束的关键字是(A)
- A. PRIMARY KEY
- B. FOREIGN KEY
- C. UNIQUE
- D. CHECK
以下哪个聚合函数可以用来计算表中某一列的平均值(B)
- A. SUM()
- B. AVG()
- C. COUNT()
- D. MAX()
在MySQL中,局部变量名以什么符号开头(A)
- A. @
- B. #
- C. $
- D. %
二、填空题(每题3分,共10题,总计30分)
- 在MySQL中,通常使用 __ 语句来指定一个已有数据库作为当前工作数据库。
答案:use database - MySQL的存储引擎有 __ 和 __ 两种常见类型。
答案:InnoDB;MyISAM - 在SELECT查询语句中, __ 子句用于指定查询结果中的字段列表。
答案:select - 在SELECT查询语句中, __ 子句用于对查询结果排序。
答案:order by - 在MySQL中,字符串常量用 __ 引起来,日期型常量用 __ 引起来。
答案:单引号;单引号 - 函数LENGTH('I am a student')的返回值是 ________。
答案:14 - 函数REPLACE('计算机软件技术专业', '软件', '网络')的返回值是 ________。
答案:计算机网络技术专业 - 函数YEAR('1941-7-6')的返回值是 ________。
答案:1941 - 在MySQL中,创建存储过程的命令是 ________。
答案:CREATE PROCEDURE - 在MySQL中,创建触发器的命令是 ________。
答案:CREATE TRIGGER
三、判断题(每题2分,共10题,总计20分)
- 视图是一个虚拟表,它并不实际存储数据。( 对 )
- 在视图上可以创建新的基本表。( 错 )
- MyISAM存储引擎支持事务处理。( 错 )
- InnoDB存储引擎支持外键约束。( 对 )
- 使用TRUNCATE TABLE语句删除数据后,可以通过回滚操作恢复数据。( 错 )
- 在MySQL中,全局变量是由系统提供并赋值,用户不能修改其值。( 对 )
- 存储过程可以带参数,也可以不带参数。( 对 )
- 触发器可以在表上创建,但不能在视图上创建。( 对 )
- 在MySQL中,DELETE语句可以一次删除多行数据。( 对 )
- 在MySQL中,局部变量名以@开头。( 对 )
四、简答题(每题10分,共20分)
请编写一段SQL代码,创建一个名为
students
的数据库,并在其中创建一个名为student_info
的表,表结构包括学号(主键,无符号递增)、姓名、性别、年龄四个字段。答案:
创建
students
数据库:CREATE DATABASE students;
切换到
students
数据库:USE students;
创建
student_info
表,学号为主键且无符号递增:CREATE TABLE student_info ( 学号 INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 姓名 VARCHAR(50) NOT NULL, 性别 CHAR(2) NOT NULL, 年龄 INT NOT NULL );
请编写一段SQL代码,创建一个名为
grades
的表,表结构包括学号、课程编号、成绩三个字段,并为学号
和课程编号
设置联合主键。然后插入两条记录,分别是:学号202301
,课程编号CS101
,成绩85
;学号202302
,课程编号CS101
,成绩90
。答案:
创建
grades
表,学号和课程编号为联合主键:CREATE TABLE grades ( 学号 CHAR(6) NOT NULL, 课程编号 CHAR(6) NOT NULL, 成绩 INT NOT NULL, PRIMARY KEY (学号, 课程编号) );
插入两条记录:
INSERT INTO grades (学号, 课程编号, 成绩) VALUES ('202301', 'CS101', 85); INSERT INTO grades (学号, 课程编号, 成绩) VALUES ('202302', 'CS101', 90);
五、综合题(每题10分,共20分)
假设有一个名为
employees
的表,包含以下字段:id
(员工ID,主键,无符号递增),name
(员工姓名),department
(部门名称),salary
(工资)。请编写SQL语句完成以下操作:a. 查询所有员工的姓名和工资。
b. 将部门为“销售部”的员工工资增加10%。
c. 删除工资低于3000的员工记录。
d. 插入一条新记录,员工ID为1001,姓名为“张三”,部门为“市场部”,工资为5000。
答案:
查询所有员工的姓名和工资:
SELECT name, salary FROM employees;
将部门为“销售部”的员工工资增加10%:
UPDATE employees SET salary = salary * 1.1 WHERE department = '销售部';
删除工资低于3000的员工记录:
DELETE FROM employees WHERE salary < 3000;
插入一条新记录:
INSERT INTO employees (id, name, department, salary) VALUES (1001, '张三', '市场部', 5000);
假设有两个表:
students
(学生表)和courses
(课程表)。students
表包含字段:id
(学生ID,主键),name
(学生姓名)。courses
表包含字段:id
(课程ID,主键),course_name
(课程名称),student_id
(学生ID,外键)。请编写SQL语句完成以下操作:a. 查询所有选修了“计算机基础”课程的学生姓名。
b. 使用左连接查询所有学生及其选修的课程名称,即使没有选修任何课程的学生也要显示。
c. 使用右连接查询所有课程及其选修该课程的学生姓名,即使没有学生选修的课程也要显示。
d. 更新
courses
表,将所有选修了“计算机基础”课程的学生的课程名称改为“计算机科学导论”。答案:
查询所有选修了“计算机基础”课程的学生姓名:
SELECT s.name FROM students s JOIN courses c ON s.id = c.student_id WHERE c.course_name = '计算机基础';
使用左连接查询所有学生及其选修的课程名称:
SELECT s.name, c.course_name FROM students s LEFT JOIN courses c ON s.id = c.student_id;
使用右连接查询所有课程及其选修该课程的学生姓名:
SELECT s.name, c.course_name FROM students s RIGHT JOIN courses c ON s.id = c.student_id;
更新
courses
表,将所有选修了“计算机基础”课程的学生的课程名称改为“计算机科学导论”:UPDATE courses SET course_name = '计算机科学导论' WHERE course_name = '计算机基础';
试卷格式说明
- 选择题:直接在题目上标明答案,使用括号标明选项字母。
- 填空题:题干中的空格用下划线标明,答案放在题目后面。
- 判断题:答案直接写在题干后面,使用“对”或“错”表示。
- 简答题:题目和答案分开,答案部分详细描述操作步骤或SQL代码。
- 综合题:题目分为多个小问题,每个小问题的答案分别给出。
评论 (0)