【Oracle】--連線查詢
為什麼使用連線?
分解資料為多個表,能避免過多的資料冗餘,這樣可以讓資料庫具有更大的伸縮性。但是表數量的增多,多於多表查詢怎麼解決呢?答案就是:連線。
什麼是內連線、自連線、外連線?
表1-custominfo
表2-orderinfo
內連線
也稱為簡單連線,它會把兩個或多個表進行連線,只能查詢出匹配記錄,不匹配的記錄將無法查詢出來。
常用的兩種連線方式:
1)等值
連線條件中使用“=”(等號)連線兩個條件列表。
下面的這兩種查詢方式,結果一樣~
①SELECT * FROM CUSTOMINFO c ,ORDERINFO d WHERE c.CID=d.CUSTOMID
②SELECT * FROM CUSTOMINFO c INNER JOIN ORDERINFO d ON c.CID=d.CUSTOMID
2)不等值
連線條件中使用“>”、”>=”、”<=”、”<”、”!=”、”<>”、”BETWEEN…AND…”、”IN”等連線兩個條件列表,但是這種方式通常需要和其他等值運算一起使用,否則檢索出來的資料可能沒有實際意義。
①SELECT * FROM CUSTOMINFO c ,ORDERINFO d WHERE c.CID IN d.CUSTOMID
②SELECT * FROM CUSTOMINFO c INNER JOIN ORDERINFO d ON d.CUSTOMID IN c.CID
內連線中,關鍵字“INNER JOIN”可以直接寫成“JOIN”,系統會把“JOIN”識別成內連線。但是“ON”關鍵字不能省略。
自連線
把自身表的一個引用作為另一個表來處理,獲取特殊資料。
外連線
1)左外連線
返回結果符合連線條件的行記錄,還包含左邊表中的全部記錄。
①SELECT * FROM CUSTOMINFO c LEFT JOIN ORDERINFO D ON D .CUSTOMID = c.CID
2)右外連線
同左外連線。
3)全外連線
返回所有匹配成功的記錄,並返回左表未匹配成功的記錄,也返回右表未匹配成功的記錄。
①SELECT * FROM CUSTOMINFO c FULL JOIN ORDERINFO D ON D .CUSTOMID = c.CID
連線查詢需要注意什麼?
1)SELECT * FROM A ,B得到的結果是A*B條資料。
2)A左連線B A.ID=B.ID,B左連線C B.ID=C.ID ,不要擔心B.ID是否存在,即使它不存在,也能關聯C表,只不過關聯的那部分欄位資料為null.
3)Oracle大小寫敏感,不要寫錯了欄位,關鍵字還是可以寫成小寫的。
4)多表級聯查詢很方便,但是很可能會影響查詢效率,這就要看開啟、關閉資料庫跟關聯表哪個用的時間久了。
相關文章
- oracle 連線查詢Oracle
- oracle連線查詢詳解Oracle
- 水煮oracle31----連線查詢&合併查詢Oracle
- 連線查詢
- SQL連線查詢SQL
- sql 連線查詢例項(left join)三表連線查詢SQL
- MySQL之連線查詢和子查詢MySql
- mysql查詢語句5:連線查詢MySql
- select查詢之四:連線查詢
- Oracle查詢轉換(四)連線謂詞推入Oracle
- 查詢oracle歷史最大連線[會話]數Oracle會話
- MySQL之連線查詢MySql
- 資料庫 - 連線查詢、巢狀查詢、集合查詢資料庫巢狀
- mysql-分組查詢-子查詢-連線查詢-組合查詢MySql
- MySQL學習-連線查詢MySql
- Hibernate連線查詢join
- 【janes】多表查詢 外連線
- MySQL8:連線查詢MySql
- 資料庫資料的查詢----連線查詢資料庫
- oracle心得4--集合查詢@oracle中的多表連線@案例分析Oracle
- Oracle查詢轉換(三)外連線檢視合併Oracle
- MySQL內連線查詢語句MySql
- 分組查詢連線號段
- Sql Server系列:多表連線查詢SQLServer
- SQL複雜查詢多表連線SQL
- 3.DQL資料查詢語言(內連線,外連線,自連線)
- MySQL 連線查詢超全詳解MySql
- Hibernate【查詢、連線池、逆向工程】
- PHP連線、查詢MySQL資料庫PHPMySql資料庫
- select查詢中union連線符
- MySql中的資料查詢語言(DQL)三:連線查詢MySql
- 深圳軟體測試學習:【資料庫】-【oracle】-連線查詢資料庫Oracle
- 【從零開始學習Oracle資料庫】(3)函式與子查詢和連線查詢Oracle資料庫函式
- MYSQL學習筆記23: 多表查詢(自連線內連線+左右外連線)MySql筆記
- mysql求交集:UNION ALL合併查詢,inner join內連線查詢,IN/EXISTS子查詢MySql
- MySQL講義第27講——select 查詢之自連線查詢MySql
- 資料庫學習(四)連線查詢資料庫
- 1112跨表連線查詢