首页 / 大宽带服务器 / 正文
MySQL练习题及答案,mysql试题及答案

Time:2025年01月07日 Read:6 评论:42 作者:y21dr45

背景介绍

MySQL练习题及答案,mysql试题及答案

在学习MySQL的过程中,实际操作和练习是巩固知识的重要手段,本文将通过一系列练习题,帮助读者熟悉MySQL的基本操作、查询语句、多表连接以及一些高级特性,这些练习题适合MySQL初学者以及需要复习的开发者,希望能通过实际动手操作提升对MySQL的理解和应用能力。

练习题

一、数据库和表的创建

1、创建一个名为students的表:

   CREATE TABLE students (
       student_id INT AUTO_INCREMENT PRIMARY KEY,
       name VARCHAR(100),
       age INT,
       gender VARCHAR(10)
   );

2、创建一个名为courses的表:

   CREATE TABLE courses (
       course_id INT AUTO_INCREMENT PRIMARY KEY,
       course_name VARCHAR(100),
       credits INT
   );

3、创建一个名为enrollments的表来存储学生选课信息:

   CREATE TABLE enrollments (
       enrollment_id INT AUTO_INCREMENT PRIMARY KEY,
       student_id INT,
       course_id INT,
       enrollment_date DATE,
       FOREIGN KEY (student_id) REFERENCES students(student_id),
       FOREIGN KEY (course_id) REFERENCES courses(course_id)
   );

二、数据插入与查询

4、插入数据到students表中:

   INSERT INTO students (name, age, gender) VALUES 
   ('Alice', 20, 'Female'),
   ('Bob', 22, 'Male'),
   ('Charlie', 23, 'Male');

5、插入数据到courses表中:

   INSERT INTO courses (course_name, credits) VALUES 
   ('Math', 3),
   ('Science', 4),
   ('Literature', 2);

6、插入数据到enrollments表中:

   INSERT INTO enrollments (student_id, course_id, enrollment_date) VALUES 
   (1, 1, '2024-07-01'),
   (2, 2, '2024-07-01'),
   (1, 3, '2024-07-02');

三、基本查询操作

7、查询所有学生的信息:

   SELECT * FROM students;

8、查询名字为Alice的学生信息:

   SELECT * FROM students WHERE name = 'Alice';

9、查询所有课程的信息:

   SELECT * FROM courses;

四、多表联结查询

10、查询所有学生及其选课信息:

    SELECT students.name, courses.course_name, enrollments.enrollment_date
    FROM students
    JOIN enrollments ON students.student_id = enrollments.student_id
    JOIN courses ON enrollments.course_id = courses.course_id;

11、查询选修了特定课程的学生名单,比如Math课程:

    SELECT DISTINCT students.name
    FROM students
    JOIN enrollments ON students.student_id = enrollments.student_id
    JOIN courses ON enrollments.course_id = courses.course_id
    WHERE courses.course_name = 'Math';

五、聚合函数与分组

12、查询每门课程的选修学生人数:

    SELECT courses.course_name, COUNT(enrollments.student_id) AS student_count
    FROM courses
    LEFT JOIN enrollments ON courses.course_id = enrollments.course_id
    GROUP BY courses.course_id;

13、查询平均年龄大于21岁的学生名单:

    SELECT name 
    FROM students 
    WHERE age > 21;

六、数据更新与删除

14、更新学生Alice的年龄为21岁:

    UPDATE students SET age = 21 WHERE name = 'Alice';

15、删除名字为Bob的学生记录:

    DELETE FROM students WHERE name = 'Bob';

七、子查询与视图

16、创建一个视图来显示所有学生的选课情况:

    CREATE VIEW student_courses AS
    SELECT students.name, courses.course_name, enrollments.enrollment_date
    FROM students
    JOIN enrollments ON students.student_id = enrollments.student_id
    JOIN courses ON enrollments.course_id = courses.course_id;

17、使用子查询查找没有选修任何课程的学生名单:

    SELECT name FROM students WHERE student_id NOT IN (SELECT DISTINCT student_id FROM enrollments);

答案解析与总结

上述练习题涵盖了MySQL的基础知识和常见操作,包括表的创建、数据的插入与查询、多表联结、聚合函数、数据更新与删除以及视图和子查询的使用,通过完成这些练习,读者可以更好地理解MySQL的各种功能并在实际应用中灵活运用,在实际开发中,除了掌握基本的SQL操作,还应注重SQL语句的优化和性能调优,以确保数据库系统的高效运行,希望这些练习能帮助大家更好地掌握MySQL,提高数据库管理和编程能力。

排行榜
关于我们
「好主机」服务器测评网专注于为用户提供专业、真实的服务器评测与高性价比推荐。我们通过硬核性能测试、稳定性追踪及用户真实评价,帮助企业和个人用户快速找到最适合的服务器解决方案。无论是云服务器、物理服务器还是企业级服务器,好主机都是您值得信赖的选购指南!
快捷菜单1
服务器测评
VPS测评
VPS测评
服务器资讯
服务器资讯
扫码关注
鲁ICP备2022041413号-1