MySQL(八)子查询、多表查询

1.子查询
子查询是指嵌套在其他sql语句内的查询语句,且必须始终出现在圆括号内,查询结果作为外层另一个查询的过滤条件
查询张三的英语成绩
在这里插入图片描述
1.1用any、all、some关键字修饰子查询
any和some是同义词表示满足内层子查询任何一个条件
all表示同时满足所有内层查询条件
查询英语成绩低于60的学生信息
在这里插入图片描述
1.2
使用[not] in 引发的子查询
查询英语成绩低于60的学生信息
在这里插入图片描述
1.3当一个查询是另一个查询的条件时
一个查询出来的结果作为一个虚拟表进行二次在虚拟表中进行查询。
基础语句:
select * from (select * from 表) as 别名;
注意:
from子查询必须处理别名,否则无法正常使用from子查询
在这里插入图片描述
exists引发的子查询
select * from table where exists (子查询);
判断子查询是否返回行,如果有则返回true执行查询 否则返回false
2.多表链接查询
2.1高级查询
select 表名称1.字段,表名称2.字段2 from 表名称 where 表名称1.字段 = 表名称2.字段;
在这里插入图片描述
2.2内连接
语法
select column_list from tbl_name1
[inner] join tbl_name2 on 表之间的关系
[inner] join tbl_name3 on 表之间的关系

where 查询条件;
查询张三各科成绩
在这里插入图片描述
或者
在这里插入图片描述
2.3外链接
左外链接 left [outer] join
右外链接 right [outer] join
语法
select column_list from tbl_name1 left | right [outer] join tbl_name2 on 链接条件 where 查询条件;
查询每个学生所学科目
在这里插入图片描述
2.4自连接
同一个数据表对其自身连接查询
查询所有图书类别的图书编号,类别名称,上级分类名称
在这里插入图片描述
在这里插入图片描述
2.5多表删除
语法:
delete table1,table2… from table1 {[inner] join | {left | right} [outer] join} table2 on 链接条件 [where 条件];
删除学生表没有课程的学生
在这里插入图片描述
2.6多表更新
update table1 {[inner] join | {left | right} [outer] join} table2 on 链接条件 set
col1 = {修改值 | default},
col2 = {修改值 | default},

[where 条件];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值