<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    落落空間

    緣來是java
    posts - 12, comments - 12, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    sql內、外、左、右連接

    Posted on 2007-06-08 18:12 落落 閱讀(2065) 評論(0)  編輯  收藏 所屬分類: database
    在數據庫應用中,經常要涉及從兩個或更多的表中查詢數據,這就需要使用連接查詢。
                  其格式如下:
                  SELECT COLUMN_NAME,C O L U M N _ N A M E [ , . . . n ]
                  FROM TA B L E _ N A M E,TA B L E _ N A M E [ , . . . n ]
                  WHERE TABLE_NAME.COLUMN_NAME JOIN_OPERATOR TA B L E _ N A M E . C O L U M N _ N A M E
                 上述的連接操作符(J O I N _ O P E R ATO R)可以是:=、>、<、> =、< =、! =、< >、! >、! <、= *、* =。
                 在A N S I中,“=”連接應該寫成Inner Join;“* =”連接應該寫成LEFT OUT JOIN;“= *”連接應該寫成“ RIGHT OUT JOIN”。
                在SQL SERVER中,這些寫法都可以用。但是,A N S I規定的寫法是INNER JOIN等標志。一般而言,在任何連接中,都使用“主鍵=外鍵”的連接查詢條件。
    ---------------------------------------------------------------------------------

                非限制連接(CROSS JOIN),就是指不帶W H E R E子句的查詢。在數學上,就是表的笛卡爾積。若R表和S表非限制連接,而且R表有X行,S表有Y行,那么結果集是X * Y行。即:R表的一行對應著S表的所有行。在應用中,非限制連接產生的是無意義結果集,但在數據庫的數學模式上有重要的作用。
    -------------------------------------------------------------------------
                自然連接(INNER JOIN)也叫內連接。我們先看下面的例子:

                SELECT PUB_NAME,TITLE
                FROM TITLES,PUBLISHERS
                WHERE TITLES.PUB_ID=PUBLISHERS.PUB_ID
                或寫成:
                SELECT PUB_NAME,TITLE
                FROM TITLES INNER JOIN PUBLISHERS
                ON TITLES.PUB_ID=PUBLISHERS.PUB_ID
                其中,INNER JOIN是SQL Server的缺省連接,可簡寫為J O I N。在J O I N后面指定哪些表作連接。O N后面指定了連接的條件。
                以上操作的過程如下:
                     1) 從T I T L E S表中取出一條符合其條件的記錄。
                     2) 掃描P U B L I S H E R S表,分別檢查每條記錄是否在連接屬性上同表T I T L E S取出的記錄相
                     3) 相等就顯示信息。繼續從表T I T L E S中取下一條記錄,重復步驟2。其實,兩個或多個表要做連接,那么這些表之間必然存在著主鍵和外鍵的關系。所以,只需要將這些鍵的關系列出,就可以得出表連接的結果。如上例中, P U B _ I D是P U B L I S H E R S表的主鍵, P U B_ I D又是TI T L E S表的外鍵,參照P U B L I S H E R S表中的P U B _ I D .所以,這兩個表的連接條件就是T I T L E S.PUB_ID=PUBLISHERS. PUB_ID。
    -----------------------------------------------------------------------
                外連接(OUTER JOIN)允許限制一張表中的行,而不限制另一張表中的行。
                下面舉兩個例子來說明外連接的用法。請比較這兩個例子。
                例顯示所有的書名(無銷售記錄的書也包括在內,“*”在左邊表示不限制左邊表的數
                SELECT TITLES.TITLE_ID,title=convert(char(38),TITLE),QTY
                FROM TITLES,SALES
                WHERE TITLES.TITLE_ID *= SALES.TITLE_ID
                或寫為:
                SELECT TITLES.TITLE_ID,title=convert(char(38),TITLE),QTY
                FROM TITLES LEFT OUTER JOIN SALES
                ON TITLES.TITLE_ID = SALES.TITLE_ID

                外連接的方法有兩種:
                • A *= B 包括第一張表A的所有行在內,而不考慮語句限制(如: A . t i t l e _ i d = B . t i t l e _ i d)。
                相當于LEFT OUT JOIN。
                • A =* B 包括第二張表B的所有行在內,而不考慮語句限制(如: A . t i t l e _ i d = B . t i t l e _ i d)。
                相當于RIGHT OUT JOIN。
                創建外連接規則:
                     1) 外連接顯示外部表中的所有行,包括與相關表不相配的行在內。
                     2) 外連接只能在兩張表之間進行。
                     3) 不能在內部表上使用IS NULL檢索條件。

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费大香伊蕉在人线国产| 女人被男人桶得好爽免费视频| 亚洲精品456播放| 香蕉视频免费在线| 亚洲精品第一国产综合精品99| 美女羞羞喷液视频免费| 亚洲AV中文无码乱人伦在线视色 | 亚洲人成无码www久久久| 老司机福利在线免费观看| 免费国产成人午夜私人影视| 美女扒开尿口给男人爽免费视频 | 亚洲AV无码乱码在线观看富二代| 成人电影在线免费观看| 亚洲国产精品不卡在线电影| 日韩亚洲精品福利| 一级日本高清视频免费观看 | 亚洲一区二区三区高清不卡| 成全影视免费观看大全二| 亚洲av无码成人精品国产| 亚洲性日韩精品一区二区三区 | 182tv免费视视频线路一二三| 亚洲国产精品综合福利专区| 女人被男人躁的女爽免费视频 | 国产好大好硬好爽免费不卡 | 麻豆一区二区三区蜜桃免费| 青青草原亚洲视频| 30岁的女人韩剧免费观看| 亚洲日韩看片无码电影| 国产亚洲av片在线观看18女人| 一区二区免费视频| 亚洲国产精品18久久久久久| 最近中文字幕免费完整| 亚洲日韩国产AV无码无码精品| 亚洲一级片免费看| 啦啦啦完整版免费视频在线观看| 亚洲精品色播一区二区| 亚洲综合伊人久久大杳蕉| 男男AV纯肉无码免费播放无码 | 一级毛片aaaaaa免费看| 亚洲国产精品18久久久久久| 亚洲AV无码乱码国产麻豆穿越 |