mysql知識樹整理
阿新 • • 發佈:2018-12-17
關係型資料庫都使用的是同一個模型: E-R關係模型(設計的過程)
資料可解決的問題:持久化儲存,優化讀寫,保證資料的有效性
當前使用的資料庫,主要分為兩類:
1.文件型 ,如sqlite,就是一個檔案。通過對檔案的複製完成資料庫的複製
2.服務型,如mysql,postgre 資料儲存在一個物理檔案中,但是需要使用終端以tcp/ip協議連結,進行資料庫的讀寫
E-R模型
當前物理的資料庫都是按照E-R模型進行設計的
E表示 entry 實體(實體包含屬性)
R表示relationship 關係
一個實體轉換為資料中的一個表
關係描述兩個實體之間的對應規則,包括
- 一對一
- 一對多
- 多對多
關係轉換為資料中表中的一個列,在關係型資料庫中的一行就是一個物件
資料庫用來存放表,表的設計有實體得來(E),表中存放的每一行就是一個實體的物件
三正規化
- 經過研究和對使用中問題的總結,對於設計資料庫提出了一些規範,這些規範被稱為正規化
- 第一正規化(1NF):列不可拆分(有實際問題使用)
- 第二正規化(2NF):唯一標識(通過一個標識可以找到表中的一個物件)
- 第三正規化(3NF):引用主鍵(引用關係)
- 說明:後一個正規化,都是在前一個正規化的基礎上建立的
--------------------------------------------------------------------------------------------------------------------------------------
安裝
sudo apt-get install mysql-server mysql-client
啟動
啟動
service mysql start
停止
service mysql stop
重啟
service mysql restart
允許遠端連結
'''待寫'''
資料完整性
- 一個數據庫就是一個完整的業務單元,可以包含多張表,資料被儲存在表中
- 在表中為了更加準確的儲存資料,保證資料的正確有效,可以在建立表的時候,為表新增一些強制性的驗證,包括資料欄位的型別、約束
欄位型別
- 在mysql中包含的資料型別很多,這裡主要列出來常用的幾種
- 數字:int,decimal ex:decimal(5,2) 一共有5位,小數有2位
- 字串:char,varchar,text char/varchar 有限字元 char存的字元是固定的/char(8) 將來新增字元的時候如果不夠8個,會在右側新增空格【電話】 varchar(8)有多少就是多少【姓名】 text 無限(如新增一個商品的描述資訊) 一旦涉及字元就要 注意編碼 【建立資料庫的時候指定編碼格式】
- 日期:datetime
- 布林:bit bit(8) 8位 基於兩種狀態的都可以使用
約束
- 主鍵primary key 不能重複,唯一標識 【一個表中主鍵只能有一個唯一標識】物理上儲存的結構是按照主鍵來維護的
- 非空not null
- 惟一unique 不能重複【可以有多個,某一個欄位的值唯一】
- 預設default
- 外來鍵foreign key