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指令對資料庫進行操作
訪問原理
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服務端的連接數是有限的,時刻注意用完就銷毀(減少資源無效佔用)