国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql數據庫中數據表的優化、外鍵與三范式用法實例分析

2020-01-18 20:38:31
字體:
來源:轉載
供稿:網友

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

數據表優化

將商品信息表進行優化

1.創建商品種類表:

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

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

注意:插入另一個表的查詢結果不需要加values

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

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

將商品表與種類表連接,用種類表id代替商品表種類內容

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

4.修改表結構:

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

alter table goods change cate_name cate_id int unsigned not null; 

外鍵

1.外鍵的使用:

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

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

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

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

(也可在創建表時直接設置外鍵,前提是要連接的表存在)

2.外鍵的缺點:

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

3.外鍵的刪除:

顯示創建表的語句

show create table goods; 

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

alter table goods drop foreign key goods_ibfk_1;

三范式

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

符合第三范式的數據庫,是比較合理的數據庫。

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總

希望本文所述對大家MySQL數據庫計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拜城县| 迁安市| 米林县| 怀安县| 岳阳县| 秭归县| 宁夏| 易门县| 柳林县| 金沙县| 略阳县| 邳州市| 清水河县| 南投县| 柏乡县| 封开县| 田阳县| 纳雍县| 卢氏县| 攀枝花市| 屏东市| 阿巴嘎旗| 车致| 阿拉善盟| 西林县| 澄城县| 巴马| 兴义市| 通化县| 崇文区| 平湖市| 四川省| 安多县| 锦州市| 新蔡县| 保康县| 自治县| 溧阳市| 宁乡县| 阿克陶县| 东宁县|