SQL關聯語句
user
1 |
張三 |
1 |
2 |
李四 |
2 |
3 |
王五 |
2 |
4 |
趙六 |
|
department
-
user LEFT JOIN department
ON user.id = departmrnt.id
-
將department表中的對應數據填充在對應的位置,user表的行數不變
-
有對應關係則對應,無則爲null
-
user RIGHT JOIN department
ON user.id = departmrnt.id
-
以department表爲主,將用戶表中的數據對應過來。如果用戶表中對應了多條,則department複製出相應的條數
-
最終錶行數可能與department不相等,通常會多
U
user1 |
1 |
張三 |
1 |
user2 |
2 |
李四 |
2 |
user3 |
3 |
王五 |
2 |
user4 |
4 |
趙六 |
|
D
department1 |
1 |
教學部 |
department2 |
2 |
招生部 |
department3 |
3 |
班主任部 |
U*D
user1*department1 |
user1*department2 |
user1*department3 |
user2*department1 |
user2*department2 |
user2*department3 |
user3*department1 |
user3*department2 |
user3*department3 |
user4*department1 |
user4*department2 |
user4*department3 |
然後找到每一個user中departmentid對應的department中的departmentid
user1*department1 |
user2*department2 |
user3*department2 |
user4*null |
得到的user錶行數不變
D*U
department1*user1 |
department1*user2 |
department1*user3 |
department1*user4 |
department2*user1 |
department2*user2 |
department2*user3 |
department2*user4 |
department3*user1 |
department3*user2 |
department3*user3 |
department3*user4 |
然後找到每一個department中departmentid對應的user中的departmentid
department1*user1 |
department2*user2 |
department2*user3 |
department3*null |
得到的department錶行數可能增加
SELECT u.*,d.* FROM u,d:相當於u x d (笛卡爾積)
SELECT d.*,u.* FROM u,d:想到與d x u (笛卡爾積)
SELECT u.*,d.* FROM u INNER JOIN d:如果希望從笛卡爾積中篩選數據,可以加ON u.xxx=d.xxx
SELECT u.*,d.* FROM u LEFT JOIN d ON u.xxx=d.xxx
SELECT u.*,d.* FROM u RIGHT JOIN d ON u.xxx=d.xxx
左連接和右連接的區別在於以哪個表爲主(主表中的數據都會出現在結果中,即使沒有匹配數據)
外鍵
-
外鍵是一種約束條件,設計師使用外鍵建立表與表之間的連接關係,外鍵指定的連接有業務意義。它可以強制保持數據的對應關係,不允許意外的數據(沒有對應上的數據)存在。它還可以在外鍵表數據變化時,級聯更新、刪除或者設置NULL關聯表主表中的數據
-
外鍵的存在是對關聯查詢(左、右、內連接等)的一種規範
-
外鍵保持數據一致性的選項
-
Casvade:級聯(當外鍵表(department)中的數據變化時,會更新、刪除主表(user)中的數據)
-
Set Null:設置爲空(當外鍵表(department)中的數據變化時,會將主表(user)中的數據設置爲Null,user數據不會被刪除)
-
No Action/Restrict:禁止操作(如果更新外鍵表時,主表中有與其關聯的數據,則更新操作失敗,相當於未執行任何操作。如果非要更新、刪除則應現將關聯數據刪除或者通過設置爲其他值的方式斷開關聯關係)
-
命名規則:fk_主表名_關聯表名
-
fk_:開頭一看就要知道是外鍵
-
主表名_關聯表名:可以很清楚的看到是哪兩個表之間的關係
JSP incllude
JSP 的 include 指令可以實現JSP代碼的共享引用,可以解決JSP代碼的重複問題
代碼重複會造成嚴重的後期維護問題,非常不利於代碼的修改、升級
代碼重複是質量查的最常見表現,是重構要消滅的第一目標。
不斷地通過重構消除項目中的重複代碼,就能夠提升能力。
爲什麼做移動頁面要使用谷歌瀏覽器
因爲IOS和Android系統中的瀏覽器都是WebKit內核,而谷歌瀏覽器使用的就是WebKit內核
Firefox的查看器和網絡監視等工具是中文的