mysql联表查询聚合_mysql中的多表查询内连接:只会显⽰两个表中匹配到的数值信息
多个表查询(表数量>2)
1.where
select 表名.列名表格随机数函数
from 表名1,表名2,表名3
where 表名1.列=表名2.列 and 表名2.列=表名3.列;
<
select 表名.列名
from 表名1 inner join 表名2
on 表名1.列=表名2.列 inner join 表3
on 表名2.列=表名3.列
外部连接:
特征:⾄少会返回出⼀个表的所有内容
分类:左外部连接 右外部连接
左外部连接:对左边的表不加限制,返回左表的所有⾏
右外部连接:对右边的表不加限制,返回右表的所有⾏
在from之后,先写的表是左表,后写的表是右表
外部连接 on数据库自动化运维
左外部连接的格式:
select 表名.列名
from 表名1 left outer join 表名2
on 表名1.列=表名2.列
会返回左表的所有内容,如果在右表中没有匹配到,在对应位置上就显⽰为null
右外部连接格式:
select 表名.列名
from 表名1 right outer join 表名2
on 表名1.列=表名2.列;
会返回右表的所有内容,如果在左表中没有匹配到,在对应位置上就显⽰为null
⼦查询:
指的就是查询语句⾥⾯嵌套查询语句西地那非片说明书?
格式:
select 列名 from 表名 where 列名 in(select查询语句);
⼦查询的注意事项:
1.where后⾯的条件要什么,我的⼦查询就查什么
例:条件要学号,⼦查询就查学号
2.什么情况优先考虑⼦查询?
2.1 题上给出的条件没有明确的提⽰结果
例. 查询计算机系学⽣选修了哪些课程?问:计算机系学⽣有哪些?
2.2 where后⾯要⽤到聚合函数当条件
聚合函数不能直接写,就可以借助查询语句把聚合函数的结果给查出来就OK
成绩⼤于平均成绩
where grade>(select avg(grade) from sc)
==>where grade>78
例⼦:
1.select 列名 from 表名 where 列名 in(select 列名 from 表名 where 列名 in(select 列名 from 表名 where 条件));
2.select 列名 from 表名 where 列名 in(select 列名 from 表名 where 条件);
嵌套⼦查询:指的是⼦查询中还包含其他的⼦查询
select(select(select(select)))
相关⼦查询:指的是⼦查询的结果有且只有⼀个值
当insert语句和select语句做结合,就是把查询的结果插⼊到某⼀张表中。
格式:mysql语句多表查询
insert into 表名 select查询语句
update语句
update 表名
set 列名
源代码是什么重不重要
where 列名 in(select语句)
删除语句
delete from 表名 where 列名 in(select查询语句)
例:删除计算机系学⽣的成绩
delete from sc where sno in(select sno from student where sdept='计算机系');
视图:指的是根据某个实际的表(实表)查询出来,⽣成的⼀个虚表。
创建视图
格式:
create view 视图的名字 as select语句;html首页
注意:
1.视图既然作为⼀张虚表存在,那么对实表的增删改查操作,视图同样成⽴
2.视图既然是根据实表得到的,那么对视图的增删改操作,也会影响实表。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。