背景介绍
在学习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,提高数据库管理和编程能力。
随着互联网的普及和信息技术的飞速发展台湾vps云服务器邮件,电子邮件已经成为企业和个人日常沟通的重要工具。然而,传统的邮件服务在安全性、稳定性和可扩展性方面存在一定的局限性。为台湾vps云服务器邮件了满足用户对高效、安全、稳定的邮件服务的需求,台湾VPS云服务器邮件服务应运而生。本文将对台湾VPS云服务器邮件服务进行详细介绍,分析其优势和应用案例,并为用户提供如何选择合适的台湾VPS云服务器邮件服务的参考建议。
工作时间:8:00-18:00
电子邮件
1968656499@qq.com
扫码二维码
获取最新动态