2023全网Mysql 合集(25w字)附课程 从安装到高级,实战

mysql学习

1.安装mysql

安装教程

2.mysql的详细学习教程

mysql的详细教程

3.mysql 的高级优化

MySQL高级篇(SQL优化、索引优化、锁机制、主从复制)

4.MySQL 面试

MySQL数据库面试题总结

二.mysql实战

一、创建数据表并插入数据

1、学生表

Student(s_id,s_name,s_birth,s_sex) :学生编号、姓名、年月、性别

bash 复制代码
-- 1、学生表
-- Student(s_id,s_name,s_birth,s_sex) :学生编号、姓名、年月、性别
CREATE TABLE
IF NOT EXISTS `Student` (
	`s_id` VARCHAR (20),
	`s_name` VARCHAR (20) NOT NULL DEFAULT '',
	`s_birth` VARCHAR (20) NOT NULL DEFAULT '',
	`s_sex` VARCHAR (10) NOT NULL DEFAULT '',
	PRIMARY KEY (`s_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
-- 插入数据
INSERT INTO Student VALUES ('01', '赵雷', '1990-01-01', '男');
INSERT INTO Student VALUES ('02', '钱电', '1990-12-21', '男');
INSERT INTO Student VALUES ('03', '孙风', '1990-05-20', '男');
INSERT INTO Student VALUES ('04', '李云', '1990-08-06', '男');
INSERT INTO Student VALUES ('05', '周梅', '1991-12-01', '女');
INSERT INTO Student VALUES ('06', '吴兰', '1992-03-01', '女');
INSERT INTO Student VALUES ('07', '郑竹', '1989-07-01', '女');
INSERT INTO Student VALUES ('08', '王菊', '1990-01-20', '女');

2、课程表

Course(c_id,c_name,t_id) :课程编号、 课程名称、 教师编号

bash 复制代码
-- 2、课程表
-- Course(c_id,c_name,t_id) :课程编号、 课程名称、 教师编号
CREATE TABLE
IF NOT EXISTS `Course` (
	`c_id` VARCHAR (20),
	`c_name` VARCHAR (20) NOT NULL DEFAULT '',
	`t_id` VARCHAR (20) NOT NULL,
	PRIMARY KEY (`c_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
-- 插入数据
INSERT INTO Course VALUES ('01', '语文', '02');
INSERT INTO Course VALUES ('02', '数学', '01');
INSERT INTO Course VALUES ('03', '英语', '03');

3、教师表

Teacher(t_id,t_name) :教师编号、教师姓名

bash 复制代码
-- 3、教师表
-- Teacher(t_id,t_name) :教师编号、教师姓名
CREATE TABLE
IF NOT EXISTS `Teacher` (
	`t_id` VARCHAR (20),
	`t_name` VARCHAR (20) NOT NULL DEFAULT '',
	PRIMARY KEY (`t_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
-- 插入数据
INSERT INTO Teacher VALUES ('01', '张三');
INSERT INTO Teacher VALUES ('02', '李四');
INSERT INTO Teacher VALUES ('03', '王五');

4、成绩表

Score(s_id,c_id,s_score) :学生编号、课程编号、分数

bash 复制代码
-- 4、成绩表
-- Score(s_id,c_id,s_score) :学生编号、课程编号、分数
CREATE TABLE
IF NOT EXISTS `Score` (
	`s_id` VARCHAR (20),
	`c_id` VARCHAR (20),
	`s_score` INT (3),
	PRIMARY KEY (`s_id`, `c_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
-- 插入数据
INSERT INTO Score VALUES ('01', '01', 80);
INSERT INTO Score VALUES ('01', '02', 90);
INSERT INTO Score VALUES ('01', '03', 99);
INSERT INTO Score VALUES ('02', '01', 70);
INSERT INTO Score VALUES ('02', '02', 60);
INSERT INTO Score VALUES ('02', '03', 80);
INSERT INTO Score VALUES ('03', '01', 80);
INSERT INTO Score VALUES ('03', '02', 80);
INSERT INTO Score VALUES ('03', '03', 80);
INSERT INTO Score VALUES ('04', '01', 50);
INSERT INTO Score VALUES ('04', '02', 30);
INSERT INTO Score VALUES ('04', '03', 20);
INSERT INTO Score VALUES ('05', '01', 76);
INSERT INTO Score VALUES ('05', '02', 87);
INSERT INTO Score VALUES ('06', '01', 31);
INSERT INTO Score VALUES ('06', '03', 34);
INSERT INTO Score VALUES ('07', '02', 89);
INSERT INTO Score VALUES ('07', '03', 98);

select * FROM course

select * FROM score

select * FROM student

select * FROM teacher

课程

课程讲解50道

二、开始解题

2.1 题目1:查询"01"课程比"02"课程成绩高的学生的信息、课程分数

2.2 题目2:查询平均成绩大于等于60分且总分大于200分的同学且必须考3门的学生编号和学生姓名和平均成绩

2.3 题目3:查询平均成绩小于60分的同学的学生编号、学生姓名、平均成绩(包括有成绩的和无成绩)

2.4 题目4:查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩

2.5 题目5:查询"李"姓老师的数量

2.6 题目6:查询学过张三老师授课的同学信息

2.7 题目7:找出没有学过张三老师课程的学生

2.8 题目8:查询学过编号为01,并且学过编号为02课程的学生信息

2.9 题目9:查询学过01课程,但是没有学过02课程的学生信息

2.10 题目10:查询没有学完全部课程的同学的信息

2.11 题目11:查询至少有一门课与学号为01的同学所学相同的同学的信息

2.12 题目12:查询和01同学学习的课程完全相同的同学的信息

2.13 题目13:查询没有修过张三老师讲授的任何一门课程的学生姓名

2.14 题目14:查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩

2.15 题目15:LeetCode-for-SQL的第二题:第二高的薪水

2.16 题目16:求出第n高的成绩(找出语文科目第2高的成绩和学号)

2.17 题目17:LeetCode-SQL-596-超过5名学生的课程

2.18 题目18:LeetCode-SQL-181-超过经理收入的员工

2.19 题目19:检索01课程分数小于60,按分数降序排列的学生信息

2.20 题目20:按平均成绩从高到低(降序)显示所有学生的所有课程的成绩以及平均成绩

2.21 题目21:查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率(及格:>=60),中等率(中等为:70-80),优良率(优良为:80-90),优秀率(优秀为:>=90);---比较综合,多看!

2.22 题目22:按照各科成绩进行排序,并且显示排名---比较综合,多看!

2.23 题目23:查询学生的总成绩,并进行排名---比较综合,多看!

2.24 题目24:LeetCode-SQL-182-查找重复的电子邮箱,从给定的表Person中找出重复的电子邮箱

2.25 题目25:LeetCode-SQL-595-大的国家

2.26 题目26:LeetCode-SQL-184-部门工资最高/N高的员工---多看

2.27 题目27:查询不同老师所教不同课程平均分从高到低显示

2.28 题目28:查询所有课程的成绩第2名到第3名的学生信息及该课程成绩

2.29 题目29:统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[0-60]及所占百分比

2.30 题目30:查询学生的平均成绩及名次---比较综合,多看,定义变量,实现rank函数

2.31 题目31:查询各科成绩前三名的记录---比较综合,多看

2.32 题目32:查询每门课被选修的学生数

2.33 题目33:查询出只有两门课程的全部学生的学号和姓名

2.34 题目34:查询男女生人数

2.35 题目35:查询名字中含有风字的学生信息

2.36 题目36:查询同名同性的学生名单,并统计同名人数

2.37 题目37:查询每门课程的平均成绩,结果按平均成绩降序排列;平均成绩相同时,按课程编号c_id升序排列

2.38 题目38:查询平均成绩大于等于85的所有学生的学号、姓名和平均成绩

2.39 题目39:查询所有学生的课程及分数(均分、总分)情况

2.40 题目40:查询选修"张三"老师所授课程的学生中,成绩最高的学生信息及其成绩

2.41 题目41:查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩---比较综合,多看!一个表自连

2.42 题目42:题目的要求就是找出每门课的前2名同学---多看,比较综合,解决前几名排序的问题

2.43 题目43:统计每门课程的学生选修人数(超过5人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列

2.44 题目44:检索至少选修两门课程的学生学号

2.45 题目45:查询选修了全部课程的学生信息

2.46 题目46:查询各学生的年龄:按照出生日期来算,当前月日 < 出生年月的月日则,年龄减1

2.47 题目47:查询本周过生日的学生

2.48 题目48:查询下周过生日的学生

2.49 题目49:查询本月过生的同学

2.50 题目50:查询下月过生的同学

相关推荐
小白教程26 分钟前
MySQL数据库的安全性防护
数据库·mysql
Lion Long28 分钟前
CodeBuddy 中国版 Cursor 实战:Redis+MySQL双引擎驱动〈王者荣耀〉战区排行榜
数据库·redis·mysql·缓存·腾讯云·codebuddy首席试玩官·codebuddy
apcipot_rain3 小时前
【应用密码学】实验五 公钥密码2——ECC
前端·数据库·python
辛一一6 小时前
neo4j图数据库基本概念和向量使用
数据库·neo4j
巨龙之路7 小时前
什么是时序数据库?
数据库·时序数据库
蔡蓝7 小时前
binlog日志以及MySQL的数据同步
数据库·mysql
teacher伟大光荣且正确8 小时前
Qt Creator 配置 Android 编译环境
android·开发语言·qt
是店小二呀8 小时前
【金仓数据库征文】金融行业中的国产化数据库替代应用实践
数据库·金融·数据库平替用金仓·金仓数据库2025征文
炒空心菜菜8 小时前
SparkSQL 连接 MySQL 并添加新数据:实战指南
大数据·开发语言·数据库·后端·mysql·spark
专注于大数据技术栈8 小时前
Mac上安装Mysql的详细步骤及配置
mysql