如果乙個查詢同時涉及兩個以上的表,則稱之為連線查詢,連線查詢是關聯式資料庫中最主要的查詢,主要包括等值連線查詢、非等值連線查詢、自身連線查詢、外連線查詢和復合條件連線查詢。
這篇博文我們來學習等值與非等值連線查詢。
乙個使用者查詢請求涉及到多個表的時候,連線兩個表的條件為=時,就是等值連線查詢;其他的運算子連線的就是非等值查詢。
注意:連線條件中的各連線字段型別必須是可比的,但不必是相同的,整型和實型是可比的,但是字元型和整型就不可比。
例如:查詢每個學生及選修課程的情況。
原始兩個**如下:
其中select子句和where子句中的屬性名前都加上了表名做為字首,這是為了避免混淆。如果屬性名在參加連線的各表中是唯一的,則可以省略表名字首。
連線運算中有兩個特殊情況:
卡氏積連線和自然連線。
卡氏積連線是兩張表的交叉乘積,就是說其中乙個表中的每乙個元組都要與另一表中的每乙個元組做拼接,然後結果就會很多。
自然連線是按照等值連線,並且展示的結果中不包含重複的屬性列,保留了所有不重複的屬性列,則稱之為自然連線。
下面就是乙個自然連線的例子。
資料庫 mysql學習筆記1之建立等基本操作
1.查詢 select from admin where admin id 1 2.建立資料庫 create database test 3.建立資料表 create table pet name varchar 20 not null default comment 寵物姓名 owner varc...
《資料庫系統概念》6 資料型別 授權等
一 一致性 一致性包括not null unique check a not null name varchar 20 not null b unique 如果a1,a2.等構成了候選鍵,可以用unique a1,a2.來保證其唯一性,但這些字段仍然可為空,而為空值與任何值都不相等。c check ...
《資料庫系統概念》6 資料型別 授權等
一 一致性 一致性包括not null unique check a not null name varchar 20 not null b unique 如果a1,a2.等構成了候選鍵,可以用unique a1,a2.來保證其唯一性,但這些字段仍然可為空,而為空值與任何值都不相等。c check ...