MySQL學習筆記 連線

2021-08-03 02:07:52 字數 1390 閱讀 3533

a——table a

b——table b

1 笛卡爾積:

為a,b兩個表產生笛卡爾積(

x=y=

x y 的笛卡爾積為, , , , , }

)個人理解:即將a表所有的屬性和b表中的所有屬性進行合併,且每條記錄都產生乙個這樣的關係。

select * from a cross join b;  

orselect * from a, b

2 自然連線:

自然連線只考慮在兩個關係模式中都出現的屬性上取值相同的元組對。

且這兩個表中屬相相同的列中值也必須相同,例如:

表1:idab

c1ab1

c1表2:idb

cd1b2

c2d雖然發現表1和表2中都有相同的屬性列id,b,c,但是b,c的屬性列中值沒有乙個相同,所以自然連線是就是empty。

表3:idab

c1ab1

c12ab1

c3ab2

c24ab3

c表4:idb

cd1b

cd2b1

cd3b2

c2d4b

c3d表3和表4的自然連線的結果是:

select * from table_1 natural join table_2;
idbc

ad1b

cad2

b1cad

3b2c2a

d發現,在表3和表4中,相同的屬性列有id,b,c三個,但是在表3和表4中,相同屬性列id,b,c相同值的列只有

表3.id==2 <==> 表4.id==2

表3.id==3 <==> 表4.id==3

這樣的結果證實了剛才的結論。

為了不必要的相等屬性帶來的危險,自然連線也支援允許使用者支援哪些列來進行自然連線。

select * from a join b using('name')
左連線where隻影向右表,右連線where只影響左表。

其實左右連線的英文我覺得剛好相反,例如:左連線按中國人的習慣,應該是join left,就是將右表中滿足條件的資料加入到左表的完整資料中。不過沒辦法,人家發明的。所以,我們還有很長的路要走。

select * from tbl1 left join tbl2 where tbl1.id = tbl2.id
上面這句查詢語句最終造成的結果就是查詢tbl1中的所有資料和查詢滿足where條件的tbl2的資料,並將這兩個集合的資料做笛卡爾積然後表示出來。

同樣,右連線的關鍵字只是將left換成了right,然後where條件裡為左表滿足的條件,最後將右表的所有資料與左表中滿足where條件的資料做笛卡爾積。

PHP學習筆記 PDO連線MySQL

作業要做乙個網頁系統,臨時需要用到php,現學一下。php iis mysql的環境配置等會上。需要開啟外掛程式支援。資料庫變數 servername localhost 資料庫位址 username daya password 123456 dbname person 資料庫名 tbname in...

PHP學習筆記之連線MYSQL

現在php連線mysql主要使用兩種方式mysqli 和 pdo,這裡介紹的是mysqli這種方式。第一步 連線資料庫 採用的是mysqli connect 這個函式 conn mysqli connect localhost root 123456 3306 這個函式中引數localhost 是連...

MySql 學習筆記 連線表(JOIN)

inner join內連線 將乙個表中的行與其他表中的行進行匹配 select column list from t1inner join t2 on join condition1 inner join t3 on join condition2 where where conditions 由於...