六天帶你玩轉Mysql筆記 第四天

2021-07-29 19:43:33 字數 3055 閱讀 4775

1. 連線查詢

1.1 連線查詢分類

1.1.1交叉連線

1.1.2 內連線

1.1.3 外連線

1.1.4 自然連線(

natural join)

(1)連線查詢:將多張表(大於

2張)進行記錄的連線(按照某個指定的條件進行資料拼接)。最終結果是記錄數有可能變化,字段數一定會增加(至少兩張表合併)。

(2)連線查詢的意義:在使用者檢視資料的時候,需要顯示的資料來自多張表。

(3)連線查詢(

join

)使用方式:

左表 join 右表

左表

:在join關鍵字左邊的表

右表

:在join關鍵字右邊的表

sql將連線查詢分成四類:

內連線,外連線,自然連線和交叉連線

(1)交叉連線:cross join,從一張表中迴圈取出每一條記錄,每天記錄都去另外一張表進行匹配。匹配一定保留(沒有條件匹配),而連線本身欄位就會增加,最終形成的結果叫笛卡爾積。

(2)基本語法:

左表 cross join 右表

(3)笛卡爾積沒有意義,應盡量避免。交叉連線存在的價值是保證連線結構的完整性。

(1)內連線([inner]  join)

:從左表中取出每一條記錄,去右表中與所有的記錄進行匹配,匹配必須是某個條件在左表與右表中相同,最終才會保留結果,否則不保留。

(2)基本語法:

左表 [inner]  join 右表

on 左表.欄位

=右表.欄位

;on表示連線條件,條件字段就是代表相同的業務含義

-- 內連線

(3)字段別名以及表別名的使用:在查詢資料的時候,不同表有同名字段,這個時候需要加上表名才能區分,而表名太長,通常使用別名。

-- 內連線+別名

(4)內連線可以沒有連線條件:沒有on之後的內容,這個時候系統會保留所有結果(笛卡爾積 )

(5)內連線可以使用where代替

on關鍵字(

where沒有

on效率高

外連線:outer join,以某張表為主,取出其所有記錄,然後每條與另外一張表進行連線。

(1)左連線

select s.*,c.name as c_name,c.room from

my_student as s left join my_class as c  --  my_student為主表

右連線select s.*,c.name as c_name,c.room from

my_student as s right join my_class as c

-- my_class 為主表

雖然左連線和右連線有主表差異,但是顯示的結果:左表的資料在左表,右表的資料在右邊,左連線和右連線可以互換。

(1)自然連線,就是自動匹配連線條件:系統以欄位名字作為匹配條件(同名字段作為條件,多個同名字段都作為條件)。

(2)自然連線分為

自然內連線

自然外連線

。自然內連線:左表natural

自然連線自動使用同名字段作為連線條件,連線之後會合併同名字段。

(3)自然外連線:

左表 natural left/right join 右表

(4)其實內連線和外連線都可以模擬自然連線,使用同名字段,合併字段。

左表 left/right/inner join 右表

using

(欄位名)

; --

使用同名字段作為連線條件,自動合併條件。

(5)外連線模擬自然連線:using

六天玩轉mysql筆記 mysql學習筆記 第六天

改變資料表的結構 alter table tb name action,action,action 使用alter table 之前,需要檢視資料表的當前定義,需要執行show create table 語句 alter table tb name modify columns 資料型別 alter...

第四天筆記

linux許可權問題 使用者管理和組管理 軟體的操作 軟體的安裝 軟體的解除安裝 軟體的查詢 ram rpm redhat package manager rpm rpm i 安裝軟體 rpm ivh 安裝軟體,並且顯示進度 rpm e 解除安裝軟體 rpm e nodeps 解除安裝軟體時或略依賴...

RHCSA筆記 第四天

一 linux服務管理方式 1 關於linux服務管理 linux系統從啟動到提供服務的過程 先加電,然後通過mbr或者uefi載入grub,在啟動核心,核心啟動服務,然後開始對外服務。主要有三種管理方式 sysv init upstart systemd。2 sysv init的優缺點 rhel ...