美文网首页
数据库第二周总结

数据库第二周总结

作者: 恬恬i阿萌妹O_o | 来源:发表于2018-08-20 08:22 被阅读0次

如何进行多张表的查询?
联结查询

内联结?

inner join 表名 on 表名.外键=表名.主键
select * from students inner join classes on students.clsid=classes.id;

添加条件

select * from students inner join classes on students.clsid=classes.id where classes.id > 1;

为表添加别名

select s.id,s.name,c.name from students as s inner join classes as c on s.clsid=c.id where c.id > 1;
外联结?
左联结
left join 表名 on 表名.外键=表名.主键
select s.id,s.name,c.name from students as s left join classes as c on s.clsid=c.id where c.id > 1;
右联结
right join 表名 on 表名.外键=表名.主键
select s.id,s.name,c.name from students as s right join classes as c on s.clsid=c.id where c.id > 1;

多个表之间的关联查询

我们需要创建一个教师表,每一个班级分配一个教师
1.创建一个教师表
2.在班级表里面设置一个外键,为教师表里的主键

询出学生的姓名,在哪个班级,是哪个班主任

select students.name,classes.name,teachers.name from students inner join classes on students.clsid=classes.id inner join teachers on classes.teacherid=teachers.id;

使用外联结

select students.name,classes.name,teachers.name from students right join classes on students.clsid=classes.id left join teachers on classes.teacherid=teachers.id;

子查询: 子查询是嵌入到主查询中 子查询是辅助主查询的,

要么充当条件,要么充当数据源 子查询是可以独立存在的语句,
是一条完整的 select

子查询作为条件

select * from students where clsid in(select id from classes);
select * from students where age < (select avg(age) from students);

子查询作为数据源(列)

select (select avg(age) from students) as avgage from students where age = 18;
子查询的一个小小分类根据子查询返回的结果:
标量 子查询: 子查询返回的结果是一个数据(一行一列)
列 子查询: 返回的结果是一列(一列多行)
行 子查询: 返回的结果是一行(一行多列)
子查询中特定关键字使用
in 范围
格式: 主查询 where 条件 in (列子查询)
select * from students where clsid in(select id from classes);
any 相当于或条件(只要满足的any中的任意一个条件即可)
select * from students where clsid>any(select id from classes);
格式: 主查询 where 条件 (比较运算符) any (列子查询)
all 相当于and(必须同时满足and括号里面的条件)
select * from students where clsid!=any(select id from classes);
格式: 主查询 where 条件 (比较运算符) all (列子查询)
union组合查询
UNION:使用UNION连接的查询语句,会将查询到的结果汇总并去重(去除重复的记录)
select * from students where id > 180506 UNION select * from students where gender=1 order by id desc limit 3;
=>
select * from students where id > 180506 or gender=1 order by id desc limit 3;
UNION ALL:使用UNION连接的查询语句,会将查询到的结果汇总不去重,假如有形同的记录会返回多条
select * from students where id > 180506 UNION ALL select * from students where gender=1 order by id desc limit 3;

相关文章

  • Python实战计划学习笔记:week2_1 在MongoDB中

    学习爬虫第二周,对Mongodb进行学习。 代码如下: 运行效果: 数据库情况: 总结: 复习了网页爬虫的相关知识...

  • 数据库第二周总结

    如何进行多张表的查询?联结查询 内联结? inner join 表名 on 表名.外键=表名.主键select *...

  • Python实战计划学习笔记:在MongoDB中筛选房源

    第二周,开始使用mongodb。这是我第一次使用非关系型数据库 最终成果 代码 总结 mongodb 所占用硬盘内...

  • 第二周

    第二周总结 阿里巴巴商业体系

  • 2018-03-10

    Python第二周学习总结 导读:这是python学习的第二周,在第二周,学习了大量的python基础,其中有字符...

  • 2019年五月第二周总结和第三周规划

    五月第二周总结和第三周计划 五月第二周周总结 一、工作方面 1/本周工作5天,结案0件。 需要集中精力在最关键的结...

  • 2.0 践行第二周第一小组各成员总结

    2.0 践行第二周总结 w/e 9.12.18 Hellen:2.0 践行第二周,是充满挑战的一周。我依然担任轮值...

  • 第二周周总结

    #周总结#第二周:1.计划与目标完成情况: 亲子英语4天,听绘本明天10分钟。瑜伽运动没有捡起来。 2.有哪些收获...

  • 第二周周总结

    本不知该如何做这个总结,这一周什么事情都没做。而且内心觉得很对不起大家特别是咱们的发起人寒冬,觉得自己辜负了他对自...

  • 第二周周总结

    (1)按照计划,完成的事有哪些? 每天育儿资讯或正能量语录;注意饮食;每天水果蔬菜一次;早起 (2)计划外做...

网友评论

      本文标题:数据库第二周总结

      本文链接:https://www.haomeiwen.com/subject/unqkiftx.html