mysql 基礎(chǔ)

主鍵和外鍵有什么區(qū)別?

主鍵 :用于唯一標(biāo)識(shí)一條數(shù)據(jù)踢械,值不能為null奸晴、不允許有重復(fù)。一張表只能有一個(gè)主鍵列监署,如果建表沒(méi)有設(shè)置主鍵颤专,首先會(huì)選擇非空唯一索引作為主鍵,如果沒(méi)有合適的索引列會(huì)生成一個(gè)不可見(jiàn)的列作為主鍵钠乏。
外鍵 :外鍵用來(lái)和其他表建立聯(lián)系用栖秕,外鍵是另一表的主鍵,外鍵是可以有重復(fù)的晓避,可以是空值簇捍。一個(gè)表可以有多個(gè)外鍵。

為什么不推薦使用外鍵與級(jí)聯(lián)俏拱?

外鍵與級(jí)聯(lián)更新適用于單機(jī)低并發(fā)暑塑,不適合分布式、高并發(fā)集群锅必。
級(jí)聯(lián)更新是強(qiáng)阻塞事格,存在數(shù)據(jù)庫(kù)更新風(fēng)暴的風(fēng)險(xiǎn)。
外鍵影響數(shù)據(jù)庫(kù)的插入速度况毅。
對(duì)分庫(kù)分表不友好, 因?yàn)榉謳?kù)分表下外鍵是無(wú)法生效分蓖。

外鍵與級(jí)聯(lián)的優(yōu)點(diǎn)?

保證了數(shù)據(jù)庫(kù)數(shù)據(jù)的一致性和完整性尔许。

什么是 ER 圖么鹤?

E-R 圖 也稱(chēng)實(shí)體-聯(lián)系圖(Entity Relationship Diagram)。

提供了表示實(shí)體類(lèi)型味廊、屬性和聯(lián)系的方法蒸甜。

用來(lái)描述現(xiàn)實(shí)世界的概念模型。

是表示概念關(guān)系模型的一種方式余佛。

什么是范式柠新?

數(shù)據(jù)庫(kù)設(shè)計(jì)范式是數(shù)據(jù)庫(kù)設(shè)計(jì)的一系列原理和技術(shù),也是數(shù)據(jù)庫(kù)設(shè)計(jì)的規(guī)范辉巡,用于減少數(shù)據(jù)庫(kù)中數(shù)據(jù)冗余恨憎,增進(jìn)數(shù)據(jù)的一致性。

數(shù)據(jù)庫(kù)三范式介紹郊楣?

無(wú)范式(非標(biāo)準(zhǔn)化形式):規(guī)定了數(shù)據(jù)必須要有主鍵憔恳,且沒(méi)有重復(fù)的記錄。
1NF(第一范式):在無(wú)范式的基礎(chǔ)上净蚤,即也滿(mǎn)足必須有主鍵钥组,且沒(méi)有重復(fù)的記錄的基礎(chǔ)上,還有滿(mǎn)足字段的原子性今瀑。例子:加入date列里存放了兩個(gè)日期程梦,則不滿(mǎn)足第一范式点把。
2NF(第二范式):在第一范式的基礎(chǔ)上,沒(méi)有部分函數(shù)依賴(lài)屿附,及每條數(shù)據(jù)的值都依賴(lài)于這條數(shù)據(jù)的主鍵郎逃。
3NF(第三范式):在第二范式的基礎(chǔ)上,沒(méi)有傳遞函數(shù)依賴(lài)拿撩,及不存在一條數(shù)據(jù)B列的值依賴(lài)A列的值衣厘,C列的值依賴(lài)B列的值(A->B->C)

drop,delete與truncate的區(qū)別?

是否會(huì)刪除表結(jié)構(gòu):

  • drop:直接刪除表數(shù)據(jù)和表結(jié)構(gòu)压恒。
  • truncate:刪除表中數(shù)據(jù),其中表結(jié)構(gòu)错邦、約束探赫、索引不變。新行標(biāo)識(shí)所用的計(jì)數(shù)值重置為該列的種子值(主鍵會(huì)重置)撬呢。
  • delete:可以配合where條件使用伦吠,不會(huì)重置主鍵值,可以刪除視圖和表魂拦。drop只能刪除表毛仪。

是否記錄回滾日志:

  • delete每次只刪除一行,且會(huì)記錄undo.log回滾日志芯勘,也會(huì)觸發(fā)觸發(fā)器箱靴。
  • truncate不會(huì)記錄回滾日志,不會(huì)觸發(fā)觸發(fā)器荷愕,所以執(zhí)行速度更快衡怀。

是否釋放索引空間:

  • delete操作不會(huì)減少索引空間,truncate會(huì)完全釋放索引空間安疗。

是否受事務(wù)控制:

  • drop和 truncate 是DDL抛杨,操作立即生效。delete 是DML需要事務(wù)提交后才生效荐类。
  • 有外鍵約束的表怖现,使用truncate是不受外鍵約束。

執(zhí)行速度:

  • 執(zhí)行速度:drop -> truncate -> delete玉罐。

數(shù)據(jù)庫(kù)中如何存儲(chǔ)時(shí)間屈嗤?

  • 不要使用字符串存儲(chǔ)時(shí)間,字符串占用的空間更大厌小,存儲(chǔ)的日期效率比較低(逐個(gè)字符進(jìn)行比對(duì))恢共,無(wú)法用日期相關(guān)的 API 進(jìn)行計(jì)算和比較。
  • Datetime 和 Timestamp 之間我們通常都會(huì)首選 Timestamp:
    • DateTime 類(lèi)型是時(shí)區(qū)無(wú)關(guān)璧亚。
    • Timestamp 和時(shí)區(qū)有關(guān)讨韭。Timestamp 類(lèi)型字段的值會(huì)隨著服務(wù)器時(shí)區(qū)的變化而變化脂信,自動(dòng)換算成相應(yīng)的時(shí)間,簡(jiǎn)單說(shuō)就是在不同時(shí)區(qū)透硝,查詢(xún)到同一個(gè)條記錄此字段的值會(huì)不一樣狰闪。
    • DateTime 類(lèi)型耗費(fèi)空間更大,DateTime需要8個(gè)字節(jié)濒生,Timestamp 只需要使用 4 個(gè)字節(jié)埋泵,但是能表示更大的時(shí)間范圍:
      • DateTime :1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
      • Timestamp: 1970-01-01 00:00:01 ~ 2037-12-31 23:59:59
  • 數(shù)值型時(shí)間戳是更好的選擇嗎?
    • int 或者 bigint 類(lèi)型的數(shù)值存儲(chǔ)方式具有 Timestamp 類(lèi)型的所具有一些優(yōu)點(diǎn)罪治,并且使用它的進(jìn)行日期排序以及對(duì)比等操作的效率會(huì)更高丽声,跨系統(tǒng)也很方便,因?yàn)橹皇谴娣诺臄?shù)值觉义。缺點(diǎn)是數(shù)據(jù)的可讀性太差雁社,無(wú)法直觀(guān)的看到具體時(shí)間。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末晒骇,一起剝皮案震驚了整個(gè)濱河市霉撵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌洪囤,老刑警劉巖徒坡,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異瘤缩,居然都是意外死亡喇完,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)款咖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)何暮,“玉大人,你說(shuō)我怎么就攤上這事铐殃『M荩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵富腊,是天一觀(guān)的道長(zhǎng)坏逢。 經(jīng)常有香客問(wèn)我,道長(zhǎng)赘被,這世上最難降的妖魔是什么是整? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮民假,結(jié)果婚禮上浮入,老公的妹妹穿的比我還像新娘。我一直安慰自己羊异,他們只是感情好事秀,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布彤断。 她就那樣靜靜地躺著,像睡著了一般易迹。 火紅的嫁衣襯著肌膚如雪宰衙。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天睹欲,我揣著相機(jī)與錄音供炼,去河邊找鬼。 笑死窘疮,一個(gè)胖子當(dāng)著我的面吹牛袋哼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播考余,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼先嬉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了楚堤?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤含懊,失蹤者是張志新(化名)和其女友劉穎身冬,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體岔乔,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡酥筝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了雏门。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘿歌。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖茁影,靈堂內(nèi)的尸體忽然破棺而出宙帝,到底是詐尸還是另有隱情,我是刑警寧澤募闲,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布步脓,位于F島的核電站,受9級(jí)特大地震影響浩螺,放射性物質(zhì)發(fā)生泄漏靴患。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一要出、第九天 我趴在偏房一處隱蔽的房頂上張望鸳君。 院中可真熱鬧,春花似錦患蹂、人聲如沸或颊。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)饭宾。三九已至批糟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間看铆,已是汗流浹背徽鼎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弹惦,地道東北人否淤。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像棠隐,于是被迫代替她去往敵國(guó)和親石抡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 簡(jiǎn)單說(shuō)一下數(shù)據(jù)庫(kù)的三范式助泽? 第一范式:數(shù)據(jù)庫(kù)表的每一個(gè)字段都是不可分割的 第二范式:數(shù)據(jù)庫(kù)表中的非主屬性只依賴(lài)于主...
    美雨知春閱讀 128評(píng)論 0 1
  • MySQL執(zhí)行流程 由上可知啰扛,數(shù)據(jù)庫(kù)也有緩存,其中解析器是最耗費(fèi)時(shí)間的步驟 MySQL的SQL語(yǔ)句 1.DDL :...
    強(qiáng)某某閱讀 591評(píng)論 0 3
  • 1嗡贺、數(shù)據(jù)庫(kù)三大范式你能說(shuō)一下嗎隐解? 第一范式:1NF是對(duì)屬性的原子性約束,要求字段具有原子性诫睬,不可再分解煞茫;比如有一張...
    執(zhí)著的逗比閱讀 7,647評(píng)論 4 1
  • 數(shù)據(jù)庫(kù)簡(jiǎn)介關(guān)系型數(shù)據(jù)庫(kù)MySQL安裝和使用SQL語(yǔ)言 一、數(shù)據(jù)庫(kù)簡(jiǎn)介 (一)數(shù)據(jù)庫(kù)的發(fā)展 文件系統(tǒng):磁盤(pán)文件存儲(chǔ)數(shù)...
    哈嘍別樣閱讀 441評(píng)論 0 1
  • 什么是數(shù)據(jù)庫(kù)摄凡,數(shù)據(jù)庫(kù)是一個(gè)文件系統(tǒng)续徽,通過(guò)標(biāo)準(zhǔn)的SQL語(yǔ)言操作文件系統(tǒng)中的數(shù)據(jù)。什么是關(guān)系型數(shù)據(jù)庫(kù)亲澡,保持關(guān)系數(shù)據(jù)模型...
    鑫狗_ab53閱讀 76評(píng)論 0 1