MySQL入门基础教程大全(10)

例如,查询白杨的班级、id、年龄和课程名称以及对应课程的成绩

select a.id,a.class,a.age,c.course,b.achievement from student as a left join achievement as b on a.id=b.sid left join course as c on c.id=b.cid where a.name='白杨';

练习:

查询id为20的学生的考试总分.

```sql

select sum(b.achievement) sum # 有时候as可以不写
from student as a
left join achievement as b on a.>where a.>​ ```

查询305班级所有学生的课程名称、课程成绩、以及对应课程的授课老师。

1. 先查305的学生信息 2. 再查305的学生成绩 3. 再查305的学生成绩对应的课程 4. 最后查305的学生成绩对应的课程的老师 select a.name,b.achievement,course,d.name from student as a left join achievement as b on a.id=b.sid left join course as c on b.cid=c.id left join lecturer as d on d.id=c.lecturer_id where a.>305; 上面代码的效果: +--------+-------------+----------------+--------+ | name | achievement | course | name | +--------+-------------+----------------+--------+ | 谭季同 | 100.0 | Photoshop | 唐老师 | | 谭季同 | 79.0 | 负载均衡 | 杜老师 | | 谭季同 | 78.5 | Flask项目 | 白老师 | | 白瀚文 | 73.0 | go | 陈老师 | | 白瀚文 | 65.0 | webpy | 林老师 | | 白瀚文 | 86.0 | 数据分析 | 郑老师 | | 白瀚文 | 60.0 | API接口 | 宋老师 | | 晁然 | 0.0 | Flask | 陈老师 | | 晁然 | 78.0 | Python网络编程 | 江老师 | | 晁然 | 78.0 | HTML5 | 丘老师 | | 白素欣 | 81.0 | Django项目 | 易老师 | | 白素欣 | 90.0 | Python | 黄老师 | | 白素欣 | 39.0 | Nginx | 曹老师 | | 庄晓敏 | 82.5 | Nginx | 曹老师 | | 庄晓敏 | 68.0 | Python | 黄老师 | | 庄晓敏 | 100.0 | API接口 | 宋老师 | +--------+-------------+----------------+--------+ 14 单表的连表查询[自关联查询]

核心就是把一张表看做2张表来操作

# 建表: create table area( id smallint not null auto_increment comment '主键ID', name char(30) not null comment '地区名称', pid smallint not null default 0 comment '父级地区ID', primary key (id) ) engine=innodb charset=utf8; insert into area (name,pid) values ('广东',0),('深圳',1),('龙岗',2),('福田',2),('宝安',2);

格式:

select 字段1,字段2... from 主表(当前表) as a left join 从表(当前表) as b on a.主键=b.外键

查找深圳地区的子地区,SQL代码:

# 主表看成保存深圳的表, # 从表看成保存深圳子地区的表 select b.id,b.name from area as a left join area as b on a.id=b.pid where a.name='深圳'; 15 子查询

在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句

格式:

select 字段 from 表名 where 条件(另一条查询语句) 主查询

主要查询的对象,第一条 select 语句

主查询和子查询的关系

子查询是嵌入到主查询中

子查询是辅助主查询的,要么充当条件,要么充当数据源

子查询是可以独立存在的语句,是一条完整的 select 语句

例如:查询406班上大于平均年龄的学生

使用 子查询:

查询406班学生平均年龄

查询大于平均年龄的学生

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e89071a8349d877d32dc0f176eafdb36.html