4、mysql实际场景增删改查(2)

排序

给同学们以身高的高矮进行排序(默认正序排序)
select * from student order by height;
select * from student order by height asc;

排序默认数字小的在前面 也就是正序排序

给同学们以身高的高矮进行排序(倒序排序 desc)
select * from student order by height desc;

怎么排序 desc倒序 asc正序 默认正序
select 字段 form 表名 order by字段  (desc||asc||没有)

子查询

image.png
求身高最高的那个人语文成绩以及他的姓名
select chinese_score as '语文成绩',s_name as '姓名' from student where height= (select max(height) from student );

连表查询

image.png

image.png

image.png

student <===> c_id <===> class <===> t_id <===> teacher

查出 小明 的 班级的名字

1、把所有的表列出来
select class.c_name from student,class where student.c_id =class.c_id and student.s_name= '小明';
当遇上多表查询的时候,最简单的方式是把表格全部罗列出来 并且把条件解析出来用and连接
这样效率低 因为查的是两张表

2、正常应该把两张表连接起来  去查询(笛卡尔积的思想)  推荐使用第二种方法
select  字段 from 表1 表1别名
left join 表2 表2别名
on 表1别名.字段 = 表2别名.字段
left  join 表3 表3别名
on 表2别名.字段 = 表3别名.字段
.......
......
left  join 表n 表n别名
on 表n-1别名.字段 = 表n别名.字段
where 条件;

select c.c_name from student s
left join class c
on s.c_id=c.c_id
where s.s_name='小明';
查询李雷的班主任姓名
select t.t_name from student s
left join class c
on s.c_id=c.c_id
left join teacher t
on c.t_id=t.t_id
where s.s_name='李雷';


查询韩梅梅的班主任的年龄
select t.age from student s
left join class c
on s.c_id=c.c_id
left join teacher t
on c.t_id=t.t_id
where s.s_name='韩梅梅';
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容