MySQL数据库入门试题
MySQL数据库是一种常用的开源关系型数据库管理系统,广泛应用于各类Web应用和企业级应用中,掌握MySQL的基本操作和SQL语法是成为一名合格的数据库管理员或开发人员的重要技能,本文将通过一系列练习题帮助初学者快速掌握MySQL的基本知识和操作技巧。
创建表和插入数据
1、创建学生表:创建一个名为student
的表,包含字段:学号(id
)、姓名(name
)、出生年月(birth
)、性别(sex
)。
CREATE TABLE student ( id INT(10) NOT NULL AUTO_INCREMENT, name CHAR(20) NOT NULL, birth YEAR(4) DEFAULT NULL, sex CHAR(10) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
2、创建成绩表:创建一个名为score
的表,包含字段:学号(stu_id
)、课程号(c_id
)、成绩(grade
)。
CREATE TABLE score ( id INT(10) NOT NULL AUTO_INCREMENT, stu_id INT(10) NOT NULL, c_id CHAR(20) DEFAULT NULL, grade INT(10) DEFAULT NULL, PRIMARY KEY (id), KEY score_ibfk_1 (stu_id), CONSTRAINT score_ibfk_1 FOREIGN KEY (stu_id) REFERENCES student (id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
3、为学生表和成绩表增加记录:
向student表插入记录 INSERT INTO student (id, name, sex, birth) VALUES (1, '张老大', '男', 1985); INSERT INTO student (id, name, sex, birth) VALUES (2, '张老二', '男', 1986); INSERT INTO student (id, name, sex, birth) VALUES (3, '张三', '女', 1990); INSERT INTO student (id, name, sex, birth) VALUES (4, '李四', '男', 1990); INSERT INTO student (id, name, sex, birth) VALUES (5, '王五', '女', 1991); INSERT INTO student (id, name, sex, birth) VALUES (6, '王六', '男', 1988); 向score表插入记录 INSERT INTO score (stu_id, c_id, grade) VALUES (1, '计算机', 98); INSERT INTO score (stu_id, c_id, grade) VALUES (1, '英语', 80); INSERT INTO score (stu_id, c_id, grade) VALUES (2, '计算机', 65); INSERT INTO score (stu_id, c_id, grade) VALUES (2, '中文', 88); INSERT INTO score (stu_id, c_id, grade) VALUES (3, '中文', 95); INSERT INTO score (stu_id, c_id, grade) VALUES (3, '计算机', 70);
基础查询练习
1、查询所有学生的信息:
SELECT * FROM student;
2、查询第2条到第4条学生记录:
SELECT * FROM student LIMIT 1, 3;
3、查询学生的学号、姓名和院系信息:
SELECT id, name, department FROM student;
4、查询年龄在18到35岁之间的学生信息:
SELECT * FROM student WHERE TIMESTAMPDIFF(YEAR, birth, CURDATE()) BETWEEN 18 AND 35;
5、查询每个院系的学生人数:
SELECT department, COUNT(*) AS student_count FROM student GROUP BY department;
6、查询每个科目的最高分:
SELECT c_id, MAX(grade) AS max_grade FROM score GROUP BY c_id;
进阶查询练习
1、查询姓“张”或者姓“王”的同学的姓名、院系和考试科目及成绩:
SELECT name, department, c_id, grade FROM student JOIN score ON student.id = score.stu_id WHERE name LIKE '张%' OR name LIKE '王%';
2、查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩:
SELECT name, TIMESTAMPDIFF(YEAR, birth, CURDATE()) AS age, department, c_id, grade FROM student JOIN score ON student.id = score.stu_id WHERE address = '湖南省';
3、查询计算机成绩低于95分的学生信息:
SELECT * FROM student JOIN score ON student.id = score.stu_id WHERE c_id = '计算机' AND grade < 95;
4、查询同时参加计算机和英语考试的学生的信息:
SELECT * FROM student WHERE id IN (SELECT stu_id FROM score WHERE c_id = '计算机') AND id IN (SELECT stu_id FROM score WHERE c_id = '英语');
5、将计算机考试成绩按从高到低进行排序:
SELECT * FROM student JOIN score ON student.id = score.stu_id WHERE c_id = '计算机' ORDER BY grade DESC;
FAQs常见问题解答
1、如何删除一个数据库?
答案:使用DROP DATABASE
语句可以删除一个数据库,要删除名为mydb
的数据库,可以使用以下命令:
DROP DATABASE mydb;
2、如何在MySQL中查看当前数据库中的所有表?
答案:使用SHOW TABLES
命令可以查看当前数据库中的所有表。
SHOW TABLES;
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1222286.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复