連線表的關鍵在於:
1)規定要連線起來的所有表;
2)表之間如何關聯。
student表如下所示:
scoretable如下所示:
-- 1.通過兩個表的id number欄位將兩個表連線起來
select student.id, student.name, scoretable.score
from student, scoretable
where student.id=scoretable.number;
-- 連線條件
返回結果如下所示:
【笛卡爾積-叉連線】如果沒有連線條件檢索出來的行數將是第乙個表中的行數乘以第二個表中的行數。
-- 1.通過兩個表的id number欄位將兩個表連線起來
select student.id, student.name, scoretable.score
from student, scoretable;
-- 表1 inner join 表2 on 表1.某欄位=表2.某欄位;
1)from子句由 兩個表之間的關係 組成,由 inner join指定;
2)連線條件用特定的on子句;
3)與1的方法的對比:
1中的方法可以達到同樣的效果,而且比較簡單;
但是sql規範首選inner join 語法,同時inner join能夠確保不會忘記連線條件,有時能提高效能。
簡單的自連線
-- 這裡p1 p2是同乙個表的兩個別名,實現同乙個表的自連線
select p1.列名, p1.列名2
from 表 as p1, 表 as p2
where p1.id = p2.id
and p2.pid =
'***'
;
自然連線:排除多次出現,使每個列只返回一次;
表1
left
[outer
]join 表2
on 連線條件 -- 保留表1中所有行,空行擴充表2
表1right
[outer
]join 表2
on 連線條件 -- 保留表2中所有行,空行擴充表1
不論是 內連線、自連線、外部連線,都可以在連線之後的總表中使用聚合函式;
1)自然連線指的是沒有重複列的連線,自連線、內連線、外部連線都可以是自然連線;
2)一般情況下使用內部連線,但根據實際情況也要注意外部連線的使用;
3)一定要提供連線條件,防止出現笛卡爾積;同時要保證連線條件的正確性,否則結果錯誤;
4)在連線多個表時,應該乙個乙個逐個連線,逐步測試;最好不要一次性寫完再除錯。
MySQL必知必會1 5章總結
describe customers 是show columns from customers 的一種快捷方式。show status,用於顯示廣泛的伺服器狀態資訊。show create database和show create table,分別用來顯示建立特定資料庫或表的mysql語句。show...
《MYSQL必知必會》第1 9章
資料庫基礎 資料庫 儲存有組織的資料的容器 表 某種特定型別資料的結構化清單 列 表中的乙個字段資料型別 所容許的資料的型別 行 表中的乙個記錄 主鍵 一列,其值能夠唯一區分表中每個行 sql是結構化查詢語言 structured query language 的縮寫 mysql 簡介 mysql是...
mysql必知必會 連線mysql
為什麼需要連線mysql?這種情況類似於你有一張有很多錢的銀行卡,當然卡里不會自動給你吐錢的!你必須通過atm機或櫃檯,才能操作銀行卡中的錢。只有通過atm機或櫃檯這種中間連線才能操作卡裡面的錢。資料庫也是如此,只有連線了資料庫才能對資料倉儲裡面的資料進行各種操作。如何連線mysql呢?你如何如何從...