我们本次测试的方向是题目,使用Baidu Comate智能代码助手出一些MySQL的题目,看看情况如何。
问题1:
我正在学习MySQL,当前基本掌握了MySQL的操作,你能出一些题目让我测评一下我的学习情况吗?
返回结果:
先是给了思考过程,后来给了参考资料,这个参考资料是CSDN平台的博主文章。
当然,我很乐意为您出一些MySQL的题目来测评您的学习情况。以下是五道题目,每道题目都附有解答,以帮助您评估自己的知识掌握程度。
题目1:数据表操作
- 创建一个名为
students
的数据表,包含以下字段:id
(主键,自增)、name
(学生姓名)、age
(学生年龄)、gender
(学生性别)。
CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, age INT, gender VARCHAR(10) );
- 插入三个学生记录:
John, 20, Male
、Jane, 22, Female
、Bob, 19, Male
。
INSERT INTO students (name, age, gender) VALUES ('John', 20, 'Male'), ('Jane', 22, 'Female'), ('Bob', 19, 'Male');
- 查询年龄大于20岁的学生姓名。
SELECT name FROM students WHERE age > 20;
题目2:查询与聚合
- 查询所有学生的姓名和年龄。
SELECT name, age FROM students;
- 查询年龄最小的学生的姓名和年龄。
SELECT name, age FROM students ORDER BY age ASC LIMIT 1;
- 计算总的学生数量。
SELECT COUNT(*) FROM students;
题目3:条件查询
- 查询所有男性的学生姓名。
SELECT name FROM students WHERE gender = 'Male';
- 查询年龄在19到21岁之间的学生姓名。
SELECT name FROM students WHERE age BETWEEN 19 AND 21;
- 查询没有学习过任何课程的学生姓名(假设有一个
courses
表,包含student_id
和course_id
字段)。
SELECT s.name FROM students s LEFT JOIN courses c ON s.id = c.student_id WHERE c.student_id IS NULL;
题目4:连接查询
- 假设有一个
courses
表,包含course_id
和course_name
字段,查询每个学生及其选修的课程名称。
SELECT s.name, c.course_name FROM students s JOIN courses c ON s.id = c.student_id;
- 查询选修了多门课程的学生姓名。
SELECT s.name FROM students s JOIN ( SELECT student_id FROM courses GROUP BY student_id HAVING COUNT(course_id) > 1 ) c ON s.id = c.student_id GROUP BY s.id HAVING COUNT(DISTINCT c.course_id) > 1;
题目5:子查询
- 查询选修了“Math”课程的学生姓名。
SELECT name FROM students WHERE id IN ( SELECT student_id FROM courses WHERE course_name = 'Math' );
- 查询没有被其他学生选修的课程名称。
SELECT course_name FROM courses WHERE student_id NOT IN ( SELECT DISTINCT student_id FROM courses );
这些题目涵盖了MySQL的基本操作,包括数据表创建、插入、查询、聚合、条件查询、连接查询和子查询等。希望这些题目能帮助您评估自己的MySQL学习情况。
总结
这里出了5个题目,到了子查询停止的,后面的存储过程,触发器什么的都没有提问,问的也就是初级的掌握情况了,还是比较听话的,对应的题目也不是很难,很适合初学者。