mysql學習(一)

過不去的過去2發表於2017-09-30

資料庫簡介

  • 計算機誕生後,資料開始在計算機中儲存並計算,並設計出了資料庫系統
  • 資料庫系統解決的問題:持久化儲存,優化讀寫,保證資料的有效性
  • 當前使用的資料庫,主要分為兩類
    • 文件型,如sqlite,就是一個檔案,通過對檔案的複製完成資料庫的複製
    • 服務型,如mysql、postgre,資料儲存在一個物理檔案中,但是需要使用終端以tcp/ip協議連線,進行資料庫的讀寫操作

E-R模型

  • 當前的資料庫都是按照E-R模型設計的
  • E 表示entry 實體
  • R 表relationship 關係
  • 一個實體轉換成為資料庫中的一個表
  • 關係描述兩個實體之間的對應規則,包括

    • 一對一
    • 一對多
    • 多對多
  • 關係轉換為資料庫表中的一個列

  • 在關係型資料庫中一行就是一個物件

三正規化

  • 經過研究和使用中的問題總結,對於設計資料庫提出了一些規範,這些規範稱之為正規化
    • 第一正規化 (1NF):列不可拆分
    • 第二正規化 (2NF):唯一標識
    • 第三正規化 (3NF):引用主鍵
    • 說明:後一個正規化都是在前一個正規化的基礎上建立的

mysql的安裝

  • 在Ubuntu下安裝 在終端輸入sudo apt-get install mysql-server mysql-client
  • mysql-server 是mysql的核心程式,生成管理資料庫例項,資料庫例項任務排程執行緒之類,並提供相關介面供不同客戶端呼叫,後者是運算元據庫例項的工具
  • 操作mysql例項的客戶端有很多,mysql-client只是其中一種,包括mysql,mysqldump,mysqlslap,這些訪問,備份,壓力測試的工具
  • mysql-server 與 mysql-client是DBMS的兩個面向不同操作物件的工具。server是DBMS面向物理層次,包含儲存資料的一系列機制、處理方法的整合;client是DBMS面向使用者,提供一系列工具為使用者所用,這些工具包括通常寫的sql在內都要通過server的編譯才能操作物理資料。
    1. 客戶–client–server物理資料。
    2. 伺服器–mysql-server是服務端。

資料的完整性

  • 一個資料庫就是一個完整的業務單元,可以包含多個表,資料被存在表中
  • 在表中為了尊卻的儲存資料,保證資料的正確有效,可以在建立表的時候,為表新增一些強制的驗證,包括資料欄位的型別,約束

欄位型別

  • 在mysql中包含的資料型別很多,在這裡列出常用的幾種
    1. 數字:int,decimal
    2. 字串:varchar,text
    3. 日期:datetime
    4. 布林:bit

約束

  1. 主鍵 primary key
  2. 非空 not null
  3. 唯一 unique
  4. 預設 default
  5. 外來鍵 foreign key

相關文章