主頁 > 知識(shí)庫 > Mysql數(shù)據(jù)庫中數(shù)據(jù)表的優(yōu)化、外鍵與三范式用法實(shí)例分析

Mysql數(shù)據(jù)庫中數(shù)據(jù)表的優(yōu)化、外鍵與三范式用法實(shí)例分析

熱門標(biāo)簽:安徽ai電話電銷機(jī)器人有效果嗎 400電話申請(qǐng)信用卡 外呼系統(tǒng)電銷受騙 巫師三血與酒地圖標(biāo)注 常州網(wǎng)絡(luò)外呼系統(tǒng)開發(fā) 在哪里申請(qǐng)400電話 萊西市地圖標(biāo)注 銷售語音電話機(jī)器人 走過哪個(gè)省地圖標(biāo)注

本文實(shí)例講述了Mysql數(shù)據(jù)庫中數(shù)據(jù)表的優(yōu)化、外鍵與三范式用法。分享給大家供大家參考,具體如下:

數(shù)據(jù)表優(yōu)化

將商品信息表進(jìn)行優(yōu)化

1.創(chuàng)建商品種類表:

create table if not exists goods_cates( 
id int unsigned primary key auto_increment, 
name varchar(40) not null 
);

2.將商品種類寫入商品種類表中:

注意:插入另一個(gè)表的查詢結(jié)果不需要加values

insert into goods_cates(name) 
(select cate_name from goods group by cate_name); 

3.將商品種類表更新到商品表中:

將商品表與種類表連接,用種類表id代替商品表種類內(nèi)容

update (goods_cates inner join goods on goods_cates.name=goods.cate_name) 
set goods.cate_name=goods_cates.id;

4.修改表結(jié)構(gòu):

將商品表商品種類名字段名cate_name重命名為cate_id

alter table goods change cate_name cate_id int unsigned not null; 

外鍵

1.外鍵的使用:

添加外鍵約束,插入數(shù)據(jù)線判斷cate_id是否存在于goods_cates中的id,不存在,則插入數(shù)據(jù)失敗

alter table 表名1 add foreign key (字段名1) references 表名2(字段名2); 

(設(shè)置外鍵后可以防止非法數(shù)據(jù)的錄入)

foreign key(字段名1) references 表名2(字段名2); 

(也可在創(chuàng)建表時(shí)直接設(shè)置外鍵,前提是要連接的表存在)

2.外鍵的缺點(diǎn):

雖然外鍵可以有效防止非法數(shù)據(jù)的錄入,但是會(huì)極大降低表的更新效率,所以實(shí)際開發(fā)中,一般不適用外鍵約束,可以再事務(wù)層面去判斷數(shù)據(jù)的合法性。

3.外鍵的刪除:

顯示創(chuàng)建表的語句

show create table goods; 

獲取外鍵名稱后刪除外鍵:

alter table goods drop foreign key goods_ibfk_1;

三范式

1.第一范式(1NF):強(qiáng)調(diào)列的原子性,即列不能再分成其他列。
2.第二范式(2NF):基于1NF,表必須有一個(gè)主鍵,非主鍵字段必須完全依賴與主鍵,而不是只依賴于主鍵的一部分。
3.第三范式(3NF):基于2NF,非主鍵列必須直接依賴于主鍵,不能存在傳遞依賴。

符合第三范式的數(shù)據(jù)庫,是比較合理的數(shù)據(jù)庫。

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫計(jì)有所幫助。

您可能感興趣的文章:
  • MySQL索引知識(shí)的一些小妙招總結(jié)
  • MySQL創(chuàng)建高性能索引的全步驟
  • MySQL創(chuàng)建索引需要了解的
  • MySQL 普通索引和唯一索引的區(qū)別詳解
  • 淺談Mysql哪些字段適合建立索引
  • Mysql刪除數(shù)據(jù)以及數(shù)據(jù)表的方法實(shí)例
  • MySQL創(chuàng)建數(shù)據(jù)表時(shí)設(shè)定引擎MyISAM/InnoDB操作
  • 刪除mysql數(shù)據(jù)表如何操作
  • 關(guān)于MYSQL 你需要知道的數(shù)據(jù)類型和操作數(shù)據(jù)表
  • MySQL創(chuàng)建數(shù)據(jù)表并建立主外鍵關(guān)系詳解
  • MySQL數(shù)據(jù)表合并去重的簡單實(shí)現(xiàn)方法
  • MySQL 索引和數(shù)據(jù)表該如何維護(hù)

標(biāo)簽:鞍山 黃石 河北 煙臺(tái) 赤峰 果洛 來賓 陽江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql數(shù)據(jù)庫中數(shù)據(jù)表的優(yōu)化、外鍵與三范式用法實(shí)例分析》,本文關(guān)鍵詞  Mysql,數(shù)據(jù)庫,中,數(shù)據(jù)表,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mysql數(shù)據(jù)庫中數(shù)據(jù)表的優(yōu)化、外鍵與三范式用法實(shí)例分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于Mysql數(shù)據(jù)庫中數(shù)據(jù)表的優(yōu)化、外鍵與三范式用法實(shí)例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章