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、控制檯明文密碼連線認證
2、控制檯密文密碼連線認證(安全)
小結
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服務端的連線數是有限的,時刻注意用完就銷燬(減少資源無效佔用)