多表查询

select 查询事物1,查询事物2 … from 表1,表2, …

笛卡尔集合

  • 有两个集合A、B,取这两个集合的所有组成情况。
  • 要完成多表查询,需要消除无用的数据。

多表查询的分类

  1. 内连接查询
    1. 隐式内连接:使用where条件消除无用数据select emp.name, emp.gender, dept.name from emp, dept where emp.'dept_id' = dept.'id';(等同于:select t1.name, t1.gender, t2.name from emp t1, dept t2 where t1.'dept_id' = t2.'id';
      常用格式
    2. 显示内连接:
      • 语法:select 字段列表 from 表名1 inner(可省略) join 表名2 on 条件
    3. 内连接查询
      1. 从哪些表中查询数据
      2. 条件是什么
      3. 查询哪些字段
  2. 外连接查询
    1. 左外连接
      • 语法:select 字段列表 from 表1 left outer(可省略) join 表2 on 条件
      • 查询的是左表所有数据及其交集部分
    2. 右外连接
      • 语法:select 字段列表 from 表1 right outer(可省略) join 表2 on 条件
      • 查询的是右表所有数据及其交集部分
  3. 子查询
    • 概念:查询中嵌套查询,称嵌套查询为子查询。
      select * from table_name where table_name.'math' = (select max(salary) from emp);
    • 子查询不同情况:
      1. 子查询的结果是单行单列的:
        • 子查询可以作为条件,使用运算符去判断。运算符:> >= < <= =
      2. 子查询的结果时多行单列的:
        • select * from emp where dept_id in (select id from dept where name = '条件1' or name = '条件2');
      3. 子查询的结果时多行多列的:
        • 子查询可以作为一张虚拟表参与查询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值