在sql語言中,用join實現表與表的關聯,用on指定聯合表的查詢條件,如:
#實現三表聯查,可以用table1.*,table2.*來排列**顯示資訊的先後順序
select * from (`user`
left
join address on
`user`.id=address.user_id) left
join user_info on
`user`.id=user_info.id;
#三表查詢指定的資料,多表查詢為了區別各表中個字段,使用表名.欄位名區別
select
`user`.id,`user`.user_name,`user`.`password`,
address.province,address.city,address.street,
address.street_number,user_info.age,user_info.gender,user_info.hobby,user_info.company
from
(`user`
left
join address on
`user`.id=address.user_id)
left
join user_info on
`user`.id=`user_info`.id;
對於表的設計優化,在設定初期不僅要考慮到資料庫的規範性,還有考慮到業務,以及效能的影響。比如從資料庫規範的角度考慮可能需要分多個表,而在業務方面,龐大資料的聯合查詢相對於單錶來說可能會慢很多,可能需要冗餘幾個字段。
對於sql的優化,特別是進行多表查詢的時候,到底是採用inner join,還是left join,right join亦或是outer join,都需要通過效能測試得出結論。
在程式中呼叫的時候到底是採用懶載入還是非懶載入。
最後要用到資料的快取了,或者在程式與資料庫之間再加一層快取,一般建議用好的資料庫快取
mysql從入門到精通《四》
三 mysql高階 接上篇 1 檢視 檢視就是一條select語句執行後返回的結果集,所以我們在建立檢視的時候,主要的工作就落在建立這條sql語句上。檢視是對若干張基本表的引用,一張虛表,查詢語句執行的結果,不儲存具體的資料 基本表資料發生變化以後,檢視也會跟著改變 定義檢視 建議以v 開頭 cre...
MySQL從入門到精通(四)
實際應用中,我們會主動打破第三正規化,提公升查詢效率 物理設計 設計資料庫的物理結構,根據資料庫的邏輯結構來選定rdbms 比如 oracle,mysql等 並設計和試試資料庫的儲存結果,訪問方式 將資料庫結構和資料落庫 禁止對線上資料庫進行壓測 禁止從開發環境連線測試或生產資料庫 組合索引的字段匹...
MySQL從入門到精通 一 初識MySQL
什麼是資料庫 資料庫 database 簡稱 db 用於儲存和管理資料的倉庫 資料庫有何特點 持久化儲存資料的。其實資料庫就是乙個檔案系統 方便儲存和管理資料 使用了統一的方式運算元據庫 sql 對資料庫進行查詢和修改操作的語言叫sql sql包含以下4個部分 資料定義語言 ddl 用來定義資料庫物...