数据库学习第五篇(对基本表数据的查询3)

数据库连接查询与嵌入查询详解
本文深入探讨了数据库连接查询的多种类型,包括等连接、非等连接、自身连接、外连接以及复合条件连接,并详细介绍了嵌入查询的概念及其在实际应用中的常见形式,如普通嵌入查询、使用IN谓词的子查询、带有比较运算符的子查询、any或all运算符的子查询以及带有exists的子查询。通过具体的SQL示例,展示了如何运用这些查询技术解决复杂的数据检索问题。

八、连接查询

        前面的查询都只是涉及一个表,如果我们要查询的数据在多个表上进行,我们就要涉及到连接查询。

a)等值连接

             比如我门要查询读者的所有信息即包括借阅信息和其本身信息

             select 读者.*,借阅.*

             from 读者,借阅
            where 读者.借书证号=借阅.借书证号;

      b) 非等值连接(即所谓的连接符不为'=')

      c) 自身连接(即自身与自身连接)

         例如我们有一张表,表上有选修的学科以及先选修课,现在我们要知道间接先选修课,那么我们就要将其尽心自身连接

         select  first.cno,second.cpno

         from course first,course second              //相当于将一个表命名为first 和 second 两个不同的名字

        where first.cpno=second.cno;

      d) 外连接

          例如查询所有借阅信息,包括罚款信息

          select *
          from 借阅 left outer join 罚款分类 on (借阅.罚款分类号=罚款分类.罚款分类号);

          有时候我们希望消去重复属性

          select *
          from 借阅 left outer join 罚款分类 using (罚款分类号);

      e) 复合条件连接 即有多重限制

            例如:我们要查询即借阅过a书也借阅过b书的人

 九、嵌入查询

     a) 普通的嵌入查询即一个父查询包含一个子查询

     b)带有IN 谓词的子查询

            例如:查询与王菲同性别的读者

            select *
            from 读者
            where 读者.性别 in 

                                       (
                                        select 性别
                                        from 读者
                                        where 姓名='王菲'

                                        );

     c) 带有比较运算符的子查询

     d)带有any 或者 all 的子查询

            (< | > | >= | <= | =)any ( 大于 | 小于 | 大于等于 | 小于等于 | 等于)其中的任意值

             (< | > | >= | <= | =)all   (大于 | 小于 | 大于等于 | 小于等于 | 等于)其中的所有值

     e)带有exists 的子查询

          带有exists的子查询不返回任何数据,只是产生逻辑判断'true' 或者 'false';

             

           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值