結構:
主表:用來約束從表
從表:從表的外來鍵的一列中的元素必須時主表中存在元素,並且存在一列與主表主鍵對應
建立表時新增外來鍵約束
constrict 外鍵名 foreign key 外來鍵欄位名 reference 主表名(主鍵欄位名)
已有的表中增加外來鍵約束
alter table 從表 add constrict 外鍵名 foreign key 外來鍵欄位名 reference 主表名(主鍵欄位名)
刪除外來鍵
alter table 從表 drop foreign key 外來鍵名稱 ;
修改或者刪除主表中的主鍵時,同時更新或者喊出附表的外來鍵
on update cascade//級聯更新
on delete cascade//級聯刪除
1nf:資料表中的每一列都是不可分割的原子項
2nf:滿足第一正規化的條件下,表中的每一列都依賴於主鍵,一張表只完成一件事
3nf:滿足第二正規化的前提下,表中的每一列都是直接依賴於主鍵,而不是通過其他列間接依賴於主鍵
笛卡爾乘積:兩個表中,左表的每條資料與右表的資料組合,產生的結果
內連線:
隱式內連線:
select 欄位名 from 左表,右表 where 條件
顯示內連線:
select 欄位名 左表 inner join 右表 on 條件
查詢步驟注意:
確定查詢的表
確定表得連線條件
確定查詢條件
確定查詢字段
外連線:
左外連線:
select 欄位名 from 左表 letf outer join 右表 on 條件
在內連線的基礎上,保證左表的資料全部顯示,滿足條件時顯示,否則顯示null
有外連線:
select 欄位名 from 左表 right outer join 右表 on 條件
在內連線的基礎上,保證右表的資料全部顯示,滿足條件時顯示,否則顯示null
子查詢:
查詢語句的巢狀
select * from 表名 where 條件=(select 字段 form 表名)
多條sql語句共同完成一件事情,並且不可分割,如果完不成則回到開始事務得初始狀態
手動提交事務
自動提交事務
應用: 開啟事務:start transaction;
提交事務:commit
回滾事務:rollback
設定自動提交事務
set @autocommit = 0//0表示自動提交事務,1表示手動提交事務
原子性(atomicity):每個事務都是乙個整體,不可拆分
一致性(consistency):事務執行前資料庫的狀態與執行後資料庫的狀態一致
隔離性(isolation):事務於事務之間不應該互相影響
永續性(durability):一旦事務執行成功,對資料庫的操作是永久的
read uncommitted:讀未提交,會產生髒讀,不可重複讀,幻讀
read committed:讀已提交,避免髒讀,不可重複讀,幻讀
repeatable read:可重複讀,避免髒讀,不能避免幻讀,可重複讀,mysql預設隔離級別
serializable:避免髒讀,可重複讀,避免幻讀,並且在執行事務時,只有當前事務提交之後,其他事務才可以執行
多路復用 day37
多路復用 指的是多個連線在復用乙個執行緒 反過來說 乙個執行緒處理多個連線 提高了單執行緒處理能 多路復用提公升的 單執行緒處理網路io的效率 協程提公升的是 單執行緒處理所有io的效率 多路復用 import socket import select server socket.socket se...
如風一樣,飛翔 Day37
我一直都認為自己是個反應沒有那麼敏銳的人,而不幸的是事實上也是,所以,在菜鳥的頭銜上,我不得不再揹負上乙個笨鳥的 光芒 我不苛求一飛沖天的傳奇,卻也有著不甘寂寞的激昂,我選擇先飛,因為我還渴求著,如風一樣,飛翔.作為乙個已婚人士,我不得不面對生活的瑣碎,可事實上,這繁雜的經歷卻給了我乙份波瀾不驚的沉...
每日一題 Day37 刪除顏色片段
總共有n個顏色片段排成一列,每個顏色片段要麼是 a 要麼是 b 給你乙個長度為n的字串colors,其中 colors i 表示第 i 個顏色片段的顏色。alice 和 bob 在玩乙個遊戲,他們 輪流 從這個字串中刪除顏色。alice 先手 如果乙個顏色片段為 a 且 相鄰兩個顏色 都是顏色 a ...