多表查询-mysql数据库

多表最基础查询:
select * from 表A,表B;
结果为笛卡尔积:取A,B集合所有组合情况

多表查询:从多张表查询数据
1.连接查询

  • 内连接:相当于查询AB交集数据外连接

    • 隐式内连接:select 列名 from 表A,表B where 条件;

    • 显示内连接:select 列名 from 表A inner join 表B on 条件; --inner可去掉

  • 外连接:

    • 左外连接:相当于查询A表所有数据和交集部分数据
      select * from 表A left join 表B on 条件;
      不满足条件的右边部分显示为NULL,如下图第六行数据所示:
      多表查询-mysql数据库_第1张图片
    • 右外连接:相当于查询B表所有数据和交集部分数据
      select * from 表A right join 表B on 条件;
      实际中做外连接用的更多,右外连接可以将表互换互换位置写成做外连接的形式

2.子查询(嵌套查询)

  • 单行单列:作为条件值,使用 = 、!=、>、<等进行条件判断
    select 字段列表 from 表名 where 字段名 = (子查询); --因为只有一个数值
  • 多行单列:作为条件值,使用in等关键字进行条件判断
    select 字段列表 from 表名 where 字段名 in (子查询);
    因为子查询查出来的是多行数据,in相当于是判断是否满足在这多行数据当中。
  • 多行多列:作为虚拟表
    select 字段列表 from (子查询) where 条件;

你可能感兴趣的:(数据库基础,mysql)