回顾数据库视频(较简单select)

  上篇文章总结的select语句基本应用,非常简单(给自己的暗示)。现在总结下select语句的复杂应用(连接查询和嵌套查询),这个相对前面简单系数稍微低一些,所有用形容词“较简单”。

  select的简单应用大部分都是针对当个表的处理,只有INTO和UNION子句涉及到两个表。可能是因为DBA发现对两个或两个以上的处理时单单这两个语句不够用法,所以向上司反应在select基本应用的基础上有添加新的功能。这便有了select语句的复杂应用,复杂应用重点是对两个或两个以上的表的数据进行处理。

  复杂应用中包括连接查询和嵌套查询。

  1、连接查询:更具两个表的连接逻辑关系可以分为—内、外、交叉。

   (1)内连接: (默认连接)

                  表达式:数据表1 inter join 数据表2 on 连接表达式

                  例如:select * from  SellCard_info

                               inter join

                               ExitCard_info

                               on  CellCrad_info.cardID  = ExitCard_info.cardID  号记录。

                  解释:上面select语句便从售卡表 和 退卡表中找 出相同卡

  (2)外连接:更具查询的侧重方向,分为左、右、 完整。

                 <1>左向外连接:

                         表达式:把内连接的 inter 改为left。

                           例如:select * from  SellCard_info

                                       left join

                                         ExitCard_info

                                        on  CellCrad_info.cardID  = ExitCard_info.cardID

                          解释:结果集中的内容

  a、两个表的所有属性(列)

  b、左表(售卡表)的所有记录

  c、右表(退卡表)中卡号与售卡表相同的记录。

  d、右表(退卡表)区域 可能会有Nul

ps:说道左向外连接让我想到数据库原理第四章关系代数中的左外连

 接。不过必看一字之差(向),效果是截然 不同的。

                          a、所在模型不同。

                                   左外连接是对关系模式中数据的操纵属于逻辑模型阶段;

                                   左向外连接是对数据库模式中的数据进行操纵属于物理模型

                                            阶段。

                           b、返回的结果集不同。

                                        左外连接      消去相同属性(列)

                                        左向外连接   返回所有属性 (列)

                    <2>右向外连接

                              跟左相反

                     <3>完整外连接

                              左右的结合。

                              现象:左右表的区域都有可能有Null.

             (3)交叉连接

                      个人理解 :返回两个表笛卡儿积。

                      例如:假设 售卡表有3条记录、退卡表有4条记录

                                执行代码   select * from  SellCard_info

                                                   cross   join

                                                    ExitCard_info

                                   返回 12条记录。

                       ps: 和数据库原理中迪卡儿积运算效果相同。

  总结:连接查询肯定是两个表的连接,

  2、嵌套查询:

        嵌套查询就是两个select查询语句,子查询的查询结果作为主查询的

  查询条件。只要灵活运用select语句的基本操作,嵌套查询没有问题。

  嵌套查询按照分类的依据不同可以分为 单值和多值、存在和不存在。

  单值:主要运用一些运算法——<    >   =    <=    >=    <>

  多值:all 加运算符

  存在:Exists

  不存在: not Exists

  总结:嵌套查询对表的数量没有限制,但是最少是两个select语句

     


  全文总结:高级应用是在基本应用的基础上扩展过来的,而且它们的语法都是通的,在用的时候要灵活,要学会举一反三。会用select以后其实update、insert、delete 也就会了。

你可能感兴趣的:(回顾数据库视频(较简单select))