欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql 单表多表查询 全 详细代码注释

程序员文章站 2024-03-02 19:53:28
...

score表student表数据查询连接 点击进入

 

以上是两张表的数据,以下是一些不太难的查询语句,代码其实一点也不恶心人,但是恶心起来不像个人。淦!

自己总结了学习这些查询的技巧,思路,为方便后来人查询答案的同时能明白基本思路,因为简单的查询语言一目了然,但是后面有很多查询四五句,七八句常有的事情

如果没搞懂基本逻辑思路,抄起来都懵逼,而且在抄这些代码的过程中会非常的痛苦。话不多说,看详细注释代码【点击链接进入解释】!
查询student表的第2条到4条记录

SELECT * FROM student LIMIT 1,3;--检索行2--4


limit 用法 数字含义解释 点击进入

● 从student表中查询计算机系和英语系的学生的信息

SELECT * FROM student WHERE department='计算机系' OR department='英语系';

● 从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息

SELECT id, name,department FROM student ;

● 从student表中查询年龄18~22岁的学生信息

SELECT * FROM student WHERE (2021-birth)>18 AND (2021-birth)<22;

● 从student表中查询每个院系有多少人

select department,COUNT(department) from student GROUP BY department;

● 从score表中查询每个科目的最高分

SELECT c_name,MAX(grade) FROM score GROUP BY c_name;

带蓝色圆点符号 详细代码解释 点击进入

▲ 查询李四的考试科目(c_name)和考试成绩(grade)

SELECT b.name,a.c_name,a.grade FROM score a,student b WHERE a.stu_id=b.id AND b.name='李四';

▲  用连接的方式查询所有学生的信息和考试信息

SELECT * FROM student b JOIN score a ON b.id=a.stu_id;

▲  查询计算机成绩低于95的学生信息 

SELECT b.*,a.* FROM score a JOIN student b ON b.id=a.stu_id AND a.grade<95 AND a.c_name='计算机';

▲  查询同时参加计算机和英语考试的学生的信息

SELECT  * FROM student WHERE id IN(
SELECT a.stu_id FROM
(SELECT stu_id FROM score WHERE c_name='计算机') a JOIN
(SELECT stu_id FROM score WHERE c_name='英语') b ON a.stu_id=b.stu_id)

▲  查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩

SELECT *FROM score s1 JOIN student s2 ON s1.stu_id= s2.id AND s2.address LIKE '湖南%';

三角符号题目 详细代码解释 点击进入