1. 程式人生 > 資料庫 >01MySQL資料庫介紹

01MySQL資料庫介紹

一、資料庫基本介紹

目標:瞭解資料庫的功能和常見資料庫分類、資料庫產品

  • 資料庫基本知識
  • 資料庫分類
  • SQL簡介
  • MySQL訪問

1、資料庫基本知識

目標:瞭解資料庫的概念和資料庫的作用

概念

資料庫:database(DB),是一種儲存資料的倉庫

  • 資料庫是根據資料結構組織、儲存和管理資料
  • 資料庫能夠長期、高效的管理和儲存資料
  • 資料庫的目的就是能夠儲存(寫)和提供(讀)資料

2、資料庫分類

目標:瞭解資料庫的分類模式,以及分類的依據

概念

資料庫分類:根據資料庫的架構和資料組織原理進行分類

1、早期根據資料庫的組織資料的儲存模型分類

  • 層次資料庫:基於層次的資料結構(資料分層)
  • 網狀資料庫:基於網狀的資料結構(資料網路)
  • 關係資料庫:基於關係模型的資料結構(二維表)

2、現在較多根據實際資料管理模型分類(儲存介質)

  • 關係型資料庫:基於關係模型的資料結構(二維表)通常儲存在磁碟
  • 非關係型資料庫:沒有具體模型的資料結構(鍵值對)通常儲存在記憶體

3、關係型資料庫

目標:瞭解關係型資料庫的模型邏輯,瞭解當前流行的關係型資料庫產品

概念

關係型資料庫:是一種建立在關係模型上的資料庫

  • 關係模型
    • 關係資料結構(儲存)
    • 關係操作集合(操作)
    • 關係完整性約束(約束)
  • 關係型資料庫儲存在磁碟中(永久性儲存)
  • 關係型資料庫系統(DBS)模型有四層結構
    • 資料庫管理系統(DBMS):管理系統執行(DataBase Management System)
    • 資料庫(DB):資料儲存的管理者(小管理,受DBMS管理)
    • 資料表(Table):資料關係管理者
    • 資料欄位(Field):依賴於資料表,實際資料儲存者
  • 關係型資料庫產品
    • 大型:Oracle、DB2
    • 中型:MySQL、SqlServer
    • 小型:Sybase、Access

4、非關係型資料庫

目標:瞭解非關係型資料庫的概念和一些主流產品

概念

非關係型資料庫:NoSQL(Not only SQL),不僅僅是關係型資料庫

  • 所有不是關係型資料庫的統稱
  • 資料儲存模型不是二維表,而是鍵值對(key->value)
  • 儲存的位置通常是記憶體(效率高)
  • 不能永久性儲存(需要定時存到關係型資料庫中)
  • 常見的非關係型資料庫產品
    • MongoDB
    • Redis
    • Memcached

對比

NoSQL通常是與關係型資料庫配合使用的,他們彼此是一種互補關係

  • NoSQL執行在記憶體,解決效率問題
    • I/O問題
    • 效率問題
  • MySQL執行在磁碟,解決穩定問題
    • 安全問題(永久儲存)
    • 穩定

小結

1、NoSQL是對非關係型資料庫的一類統稱

  • NoSQL是不僅僅只是關係型資料庫的意思

2、NoSQL通常執行在記憶體

  • 讀取效率高
  • 併發訪問高
  • 穩定性不高(斷電即丟失)

3、NoSQL通常是鍵值對儲存資料,訪問也比較簡單

5、SQL基本介紹

目標:瞭解SQL的作用和SQL的基本分類

概念

SQL:Structured Query Language,結構化查詢語言,是一種針對關係型資料庫特殊標準化的程式語言

  • SQL是一種程式語言

  • 能夠實現使用者資料庫查詢和程式設計

  • SQL根據操作不同,分為幾類

    • DQL:Data Query Language,資料查詢語言,用於查詢和檢索資料
    • DML:Data Manipulation Language,資料操作語言,用於資料的寫操作(增刪改)
    • DDL:Data Definition Language,資料定義語言,用於建立資料結構
    • DCL:Data Control Language,資料控制語言,用於使用者許可權管理
    • TPL:Transaction Process Language,事務處理語言,輔助DML進行事務操作(因此也歸屬於DML)

小結

1、SQL雖然是程式語言,但是目前資料庫通常只用來進行資料管理(邏輯部分給其他程式語言)

2、SQL雖然是針對關係型資料庫的通用語言,但是不同的產品操作指令不完全通用

6、MySQL基本介紹

目標:瞭解MySQL產品的軟體結構和訪問原理

概念

MySQL:是瑞典AB公司下的一款關係型資料庫

  • MySQL當前屬於甲骨文公司(AB->Sun->Oracle)
  • MySQL開源免費(部分儲存引擎)
  • MySQL是一種C/S結構軟體,因此需要MySQL的客戶端來訪問服務端(資料管理)
    • mysqld.exe:服務端
    • mysql.exe:客戶端
  • MySQL使用SQL指令對資料庫進行操作

訪問原理

graph LR A(MySQL客戶端)-->B[尋找服務端<br>host尋找] B-->C[尋找服務端<br>Port尋找] C-->D[驗證身份<br>username判定<br>password判定] D-->E((服務端))

小結

1、MySQL是一款流行的關係型資料庫

2、MySQL是一款C/S結構的軟體,需要客戶端訪問服務端

3、MySQL是基於SQL指令進行管理操作

7、MySQL訪問

目標:掌握MySQL客戶端訪問服務端的基本操作,瞭解MySQL退出意義和操作

概念

MySQL訪問:就是客戶端連線上服務端,然後實現資料操作的過程

  • 客戶端訪問服務端

    • 利用Windows控制檯訪問(MySQL客戶端)
    • 利用資料庫管理工具(Navicat)
  • 客戶端需要連線認證

    • -h:主機地址(本機localhost可以省略)
    • -P:埠號(預設3306可以省略)
    • -u:使用者名稱
    • -p:使用者密碼
  • 客戶端連線上服務端就表示佔用了一個資源,可以進行對應許可權的操作

    • MySQL資料庫連線資源有限:單個伺服器最多16384個
    • 連線資源不夠了其他訪問就需要排隊等待
    • 用完儘可能釋放資源
  • 客戶端退出服務端

    • \q
    • quit
    • exit

步驟

1、開啟客戶端(CMD控制檯):mysql.exe

2、輸入伺服器資訊(連線)和使用者資訊(驗證)

3、執行SQL操作

4、斷開連線

示例

1、控制檯明文密碼連線認證

32MySQL登入

2、控制檯密文密碼連線認證(安全)

33MySQL登入

小結

1、MySQL需要通過客戶端來進行服務端訪問

  • 自帶客戶端mysql.exe:Windows下藉助CMD
  • 資料庫管理工具:Navicat,圖形化管理
  • 支援MySQL擴充套件的程式語言:PHP、Java等

2、資料庫操作需要進行連線認證

  • 主機地址:-h,預設localhost可省略
  • 埠:-P(大寫字母),預設3306可省略
  • 使用者名稱:-u
  • 密碼:-p(小寫字母)

3、資料庫連線資源有限,用完即關閉

8、總結

1、資料庫的作用要清楚:高效的儲存和管理資料,為程式語言提供資料支撐

2、當前市面上資料庫的分類主要為兩類

  • 關係型資料庫:注重結構和資料儲存的永續性
  • 非關係型資料庫:注重資料讀取的效率

3、關係型資料庫是幾乎所有網站都會使用到的,必須掌握其概念

4、所有關係型資料庫都是基於SQL進行資料的操作,MySQL資料庫也是(不同的資料庫產品對應的SQL指令可能有細微差別)

5、MySQL是一種C/S結構的軟體,所以訪問者必須通過客戶端進行訪問

  • 客戶端與服務端通常不會在一臺電腦上
  • 客戶端訪問服務端需要定址、授權(-hPup)
  • MySQL服務端的連線數是有限的,時刻注意用完就銷燬(減少資源無效佔用)