編寫sql語句一些關鍵詞的注意事項

2021-09-30 14:23:32 字數 1916 閱讀 2376

1. 資料庫中的左連線(left join)和右連線(right join)區別

left join / right join /inner join相關

關於左連線和右連線總結性的一句話:

左連線where只影響右表,右連線where只影響左表。

left join(以左表為基準,對於右表是多舍少補空)

select * from tbl1 left join tbl2 where tbl1.id = tbl2.id

左連線後的檢索結果是顯示tbl1的所有資料和tbl2中滿足where 條件的資料。

簡言之 left join影響到的是右邊的表

right join(以右表為基準,對於左表是多舍少補空)

select * from tbl1 right join tbl2 where tbl1.id = tbl2.id

檢索結果是tbl2的所有資料和tbl1中滿足where 條件的資料。

簡言之 right join影響到的是左邊的表。

inner join(找出兩表共有的屬性等價於與join)

select * from tbl1 inner join tbl2 on tbl1.id = tbl2.id

功能和 select * from tbl1,tbl2 where tbl1.id=tbl2.id相同。

full join(先找出兩個表的共同資料,然後在新增兩個表中獨有的資料,會包含兩個表中所有的資料,某些資料庫中也成為full outer join)

其他相關資料

1 .where子句中使用的連線語句,在資料庫語言中,被稱為隱性連線。inner join……on子句產生的連線稱為顯性連線。(其他join引數也是顯性連線)where 和inner join產生的連線關係,沒有本質區別,結果也一樣。但是!隱性連線隨著資料庫語言的規範和發展,已經逐漸被淘汰,比較新的資料庫語言基本上已經拋棄了隱性連線,全部採用顯性連線了。

2 .無論怎麼連線,都可以用join子句,但是連線同乙個表的時候,注意要定義別名,否則產生錯誤!

a> inner join:理解為「有效連線」,兩張表中都有的資料才會顯示left join:理解為「有左顯示」,比如on a.field=b.field,則顯示a表中存在的全部資料及a\\b中都有的資料,a中有、b沒有的資料以null顯示

b> right join:理解為「有右顯示」,比如on a.field=b.field,則顯示b表中存在的全部資料及a\\b中都有的資料,b中有、a沒有的資料以null顯示

c> full join:理解為「全連線」,兩張表中所有資料都顯示,實際就是inner +(left-inner)+(right-inner)

3 .join可以分主次表 外聯接有三種型別:完全外聯,左聯,右聯.

完全外聯包含兩張表的所有記錄.

左聯是以左邊的表為主,右邊的為輔,右聯則相反

4.一般要使得資料庫查詢語句效能好點遵循一下原則:

在做表與表的連線查詢時,大表在前,小表在後

不使用表別名,通過字段字首區分不同表中的字段

查詢條件中的限制條件要寫在表連線條件前

盡量使用索引的字段做為查詢條件

2.union 操作符

union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。

union      的結果是:第乙個表的全部資料,第二個表中與第乙個表中不重複的資料

union all  的結果是:第乙個表的全部資料,第二個表中的全部資料

union all 命令和 union 命令幾乎是等效的,不過 union all 命令會列出所有的值

有需要進行輔導幫助解決問題的同學,可以**喔:不是推銷,就是it問題討論

c plus plus一些重要的關鍵詞

sizeof求資料型別佔記憶體的位元組數,用法sizeof getchar讀入函式的一種,返回型別為int型,為輸入的ascii碼或eof,該函式包含在stdio.h標頭檔案中,用法a getchar 這種函式任何乙個字元都可以輸入,而cin不能輸入空格 回車。輸入的字元會儲存在鍵盤緩衝區中,直到按...

編寫DLL時一些關鍵詞解釋以及舉例

1 extern 關鍵字 使用該關鍵字,可以使得函式名在dll中名稱不變。可以使用depends工具檢視dll中的匯出函式。因為c 中有函式過載,所以不要加extern c 2 declspec dllexport 將乙個函式聲名為匯出函式 3 declspec dllimport 將dll中的某函...

程式設計裡的一些不好分類的關鍵詞

1,dip dependency inversion principle 依賴倒置原則 ioc inversion of control 控制反轉 dip的具體實現方式 di dependency injection 依賴注入 ioc的具體實現方式 ioc容器 由容器控制程式之間的關係,而非傳統實現...