連線查詢有哪些不同的連線方式 有什麼特點

  • 作者:由 匿名使用者 發表于 收藏
  • 2021-10-10

連線查詢有哪些不同的連線方式 有什麼特點 匿名使用者 1級 2019-01-13 回答

連線查詢有:

1。交叉連線

交叉連線即笛卡兒乘積,是指兩個關係中所有元組的任意組合。一般情況下,交叉查詢是沒有實際意義的。

2。內連線查詢

內連線是一種最常用的連線型別。內連線查詢實際上是一種任意條件的查詢。使用內連線時,如果兩個表的相關欄位滿足連線條件,則從這兩個表中提取資料並組合成新的記錄,也就是說,在內連線查詢中,只有滿足條件的元組才能出現在結果關係中。

3。自連線查詢

如果在一個連線查詢中,涉及到的兩個表都是同一個表,這種查詢稱為自連線查詢。同一張表在FROM字句中多次出現,為了區別該表的每一次出現,需要為表定義一個別名。自連線是一種特殊的內連線,它是指相互連線的表在物理上為同一張表,但可以在邏輯上分為兩張表。

4。外連線查詢

內連線的查詢結果都是滿足連線條件的元組。但是,有時我們也希望輸出那些不滿足連線條件的元組的資訊。比如,我們想知道每個學生的選課情況,包括已經選課的學生(這部分學生的學號在學生表中有,在選課表中也有,是滿足連線條件的),也包括沒有選課的學生(這部分學生的學號在學生表中有,但在選課表中沒有,不滿足連線條件),這時就需要使用外連線。外連線是隻限制一張表中的資料必須滿足連線條件,而另一張表中的資料可以不滿足連線條件的連線方式。

連線查詢有哪些不同的連線方式 有什麼特點 lethe 1級 2019-01-13 回答

create table `chx` ( `id` varchar(20) not null, `name` varchar(50) default null, `name2` char(4) default null, `name3` varchar(4) default null, `score` int(11) default null, primary key (`id`) ) engine=innodb default charset=utf8 create table `test` ( `id` int(11) default null, `age` int(11) default null ) engine=innodb default charset=utf8 1。mysql支援的連線查詢方式列舉如下: a:內連線 inner join也是預設的連線方式 根據比較方式不同分為如下三種: 等值連線:使用等號來作為連線條件 自然連線:natural join,透過在兩張表裡尋找列名和資料型別都相同的欄位(長度不管),然後再根據這些相同的欄位進行連線(內連線)。並返回所有符合條件 的結果。 不等值連線:就是在連線條件中使用除等號以外的其他比較運算子,例如:on c。id between s。xxx and s。xxx; 注意:可以使用using關鍵字簡化連線: 使用條件:1。查詢必須是等值連線 2。等值連線中的列必須具有相同的名稱和資料型別。 b:外連線 outer join 外連線可以分為以下三類: 左外連線(left outer join 或left join):檢索結果為滿足連線條件的資料行+左表中不滿足連線條件的資料行,然後再根據過濾條件過濾即為查詢結果(先連線後 過濾)注意:此處過濾條件很容易犯錯,一般要以左表的條件進行過濾,不然容易犯錯。例如: select c。*,t。* from chx c left join test t on c。id = t。id where c。`id`= 1和 select c。*,t。* from chx c left join test t on c。id = t。id where t。`id`= 1 的結果不一樣, 因為當副表t沒有等於1的記錄而主表c有的話第一條語句是由結果的,而第二條是沒有結果的。見下圖: 右外連線(right outer join 或right join):與左外連線相反。 全外連線(full outer join 或full join):注意:mysql不支援全外連線:除了顯示滿足連線條件的行外,還顯示join兩側表中所有滿足檢索條件的行。

Top