MySQL中的多表操作
MySQL多表操作
1、联合查询
联合查询:union,是指将多个查询结果合并成一个结果显示,联合查询是针对查询结果的合并(多条select 语句合并)
基本语法
select 查询 [决定字段名称]
union 查询选项
select 查询
联合查询要求
1)联合查询时结果联合显示
2)多个联合查询的字段结果数据一致
3)联合查询的字段来源于第一个查询语句的字段
4)查询选项:all(保留所有记录),distinct
注意:联合查询不要求字段类型一致,只对数量要求一致,而且字段于第一条查询语句相关
联合查询排序:针对联合查询的结果进行排序
order by本身对内部结果进行排序,union的优先级高于order by,所以 order by 默认是对union结果进行排序
如果想要对单独select 的结果进行排序,需要两个步骤
将需要排序的select指令进行括号包裹(括号里使用order by)
order by 必须配合limit才能生效(limit是一个足够大的数据即可)
2、连接查询
连接查询有三种类型:1)交叉连接 2)内连接 3)外连接
1)交叉连接:cross join,不需要连接条件的连接
交叉连接产生的结果就是笛卡尔积
左表的每一条记录都会与右表的所有记录连接并保留
select * from t1 cross join t2(t1,t2)
2)内连接:[inner] join,将两张表根据指定的条件连接起来,严格连接
基本语法:右表 join 右表 on 连接条件
内连接匹配规则就是必须保证左表和右表同时存储连接关系,这样的数据才会保留
3)外连接:outer join,是一种不严格的连接方式
外连接分为两种
左外连接(左连接):left join
右外连接(右连接):right join
外连接有主表和从表之分
左连接:左表为主表
右连接:右表为主表
外连接是将主表的记录去匹配从表的记录
匹配成功保留
匹配失败(全表):也保留,只是从表字段位置空
4、自然连接
自然连接:natural join,是一种自动寻找连接条件的连接查询
自然连接不是一种特殊的连接方式,而是一种自动匹配条件的连接
自然连接包含自然内连接和自然外连接
自然内连接:natural join
自然外连接:natural left/right join
自然连接匹配模式:自动寻找想通过字段名作为连接条件(字段名相同)