总结 分析 子查询 自关联 应用场景 及举例

子查询应用场景

    数据库有没有记忆力
    但查询结果需要的数据,本表已有数据还不够,还需要另外查询.
    想运行一次就能查到结果,怎么办?子查询.


1)对于一张表而言:
    a,查询的结果需要使用本表数据还不够,还需要用本表再去查询得到的数据
    如:查询大于平均年龄的学生
    b,存上下级数据的表,也可以用子查询做
2)对于多张表而言:
    a.子查询相比连接查询的缺点:
      结果只能体现本表字段.不能像连接查询能体现多表的所有字段.
    b.查询到结果,数据需要来源于多张表.而所需字段主表就能全部展示,就用子查询
    c.又想用子查询,所求结果字段又需要来源于多张表,就用表子查询(提升性能).



如何判断子查询应用时,是一张表还是多张表?

    看结果所求的字段和字段'的'前面的词是不是来自于一张表.

    如:查询男生中年龄最大的学生信息
    如:查询数据库和系统测试的课程成绩
    如:显示没有商品的品牌

   
   单张表的操作方法,先易后难
   1.先数据
   2.后查询语句
   如:查询男生中年龄最大的学生信息
    

   多张表的操作方法,先主后子
   1.先写出主查询语句
   2.写子查询语句
   3.结合

 主查询语句的方法
    a)分析主表,子表:看结果字段在哪个表,就把这个表作为主表,结果字段'的'前面的字段就是子表,
    b)分析主表和子表的连接条件并写出主查询语句

    子查询语句的方法
    a)写出子查询语句所求的目标,往往是题目中结果所求字段,替换连接字段即可

    b)求出子查询目标


                                            自关联

一张表有上下级关系,可以自己跟自己关联

介绍寻找连接条件的一种技巧

-- 1.找一条连接正确的数据
-- 2.找一条连接错误的数据

-- 3.分析为什么正确,为什么错,就找到这个连接条件

-- 一个sql语句可以查表多次,但是前提条件是要给表取别名,给表取两个别名


-- 两表连接(自关联一次),得到一个两级关系


-- .....

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值