欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年11月27日 12:15:30   投稿:shichen2014  
這篇文章主要介紹了Mysql數據庫中數據表的優(yōu)化、外鍵與三范式用法,結合實例形式較為詳細的分析了Mysql數據庫中數據表的優(yōu)化、外鍵與三范式相關概念、原理、用法及操作注意事項,需要的朋友可以參考下

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

數據表優(yōu)化

將商品信息表進行優(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.將商品種類寫入商品種類表中:

注意:插入另一個表的查詢結果不需要加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); 

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

2.外鍵的缺點:

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

3.外鍵的刪除:

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

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數據庫計有所幫助。

相關文章

  • MySQL數據庫所在服務器磁盤滿了的故障分析和解決方法

    MySQL數據庫所在服務器磁盤滿了的故障分析和解決方法

    這篇文章主要給大家介紹了MySQL數據庫所在服務器磁盤滿了的故障分析和解決方法,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • 詳解MySQL中事務的持久性實現原理

    詳解MySQL中事務的持久性實現原理

    這篇文章主要介紹了詳解MySQL中事務的持久性實現原理,幫助大家更好的理解和使用MySQL數據庫,感興趣的朋友可以了解下
    2021-01-01
  • 淺談MySql整型索引和字符串索引失效或隱式轉換問題

    淺談MySql整型索引和字符串索引失效或隱式轉換問題

    本文主要介紹了MySql整型索引和字符串索引失效或隱式轉換問題,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • SQL查詢執(zhí)行順序分析

    SQL查詢執(zhí)行順序分析

    這篇文章主要為大家介紹了SQL查詢執(zhí)行順序分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • mysql?8.0.28?安裝配置方法圖文教程

    mysql?8.0.28?安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql?8.0.28?安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • MySQL跨服務器數據映射的實現

    MySQL跨服務器數據映射的實現

    本文主要介紹了MySQL跨服務器數據映射的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 設置mysql5.7編碼集為utf8mb4的方法

    設置mysql5.7編碼集為utf8mb4的方法

    移動端的表情或者一些emoji是4字節(jié)的,但是utf-8是3字節(jié)的,這篇文章主要介紹了設置mysql5.7編碼集為utf8mb4的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • MySQL在grant時報錯ERROR?1064?(42000)的原因及解決方法

    MySQL在grant時報錯ERROR?1064?(42000)的原因及解決方法

    網上查到的grant方式大多會報錯,主要原因是MySQL版本8.0后不能再使用原來的方式,這篇文章主要介紹了MySQL在grant時報錯ERROR?1064?(42000),需要的朋友可以參考下
    2022-08-08
  • CentOS安裝MySQL5.5的完整步驟

    CentOS安裝MySQL5.5的完整步驟

    MySQL是最流行的關系型數據庫管理系統(tǒng)之一,在 WEB 應用方面MySQL是最合適的數據庫,這篇文章主要給大家介紹了關于CentOS安裝MySQL5.5的相關資料,需要的朋友可以參考下
    2021-11-11
  • 詳解MySQL是如何解決幻讀的

    詳解MySQL是如何解決幻讀的

    這篇文章主要介紹了MySQL是如何解決幻讀的,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04

最新評論