1. 程式人生 > >mysql知識樹整理

mysql知識樹整理

關係型資料庫都使用的是同一個模型:  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