03-MySQL概述--資料庫的學習階段+資料庫基礎+關係型資料庫+關鍵字說明+SQL+MySQL資料庫+MySQL伺服器物件
一、資料庫的學習階段
1、基礎階段:MySQL資料庫的基本操作(增刪改查),以及一些高階操作(檢視、觸發器、函式、儲存過程等)
2、優化階段:如何提高資料庫效率,如索引、分表等
3、部署階段:如何搭建真實的環境系統,如伺服器叢集、負載均衡等
二、資料庫基礎
1、什麼是資料庫
資料庫:database,儲存資料的倉庫
資料庫:高效的儲存和處理資料的介質(介質主要有兩種:磁碟和記憶體)
注:
(1)磁碟:硬碟、磁碟、儲存空間
(2)記憶體:RAM
2、資料庫的分類
資料庫基於儲存介質的不同,分為兩類:
(1)關係型資料庫(SQL)
(2)非關係型資料庫(NoSQL:Not Only SQL)
注:不是關係型的資料庫都叫做非關係型資料庫
3、不同的資料庫陣營中的產品有哪些
(1)關係型資料庫
a). 大型:Oracle、DB2
b). 中型:SQL Server、MySQL等
c). 小型:access等
(2)非關係型資料庫
memcached、MongoDB、redis(同步到磁碟)
注:一旦記憶體不執行,會把資料寫到磁碟。下次開機時,又把資料從磁碟中讀進來(解決非關係型資料庫不安全的問題)
4、兩種資料庫陣營的區別
基於儲存資料的方式
(1)關係型資料庫:安全(儲存在磁碟基本不可能丟失,還有備份)、容易理解(符合人類的思維模式)、比較浪費空間(二維表)
(2)非關係型資料庫:效率高(執行在記憶體),不安全(斷電丟失)
三、關係型資料庫
1、什麼是關係型資料庫
(1)關係型資料庫:是一種建立在關係模型(數學模型)上的資料庫
(2)關係模型:一種所謂建立在關係上的模型。關係模型包含三個方面:
a). 資料結構:資料儲存的問題,二維表(有行和列)
b). 操作指令集合:所有sql語句(不僅僅只有增刪改查語句)
c). 完整性約束:表內資料的約束(欄位與欄位),表與表之間的約束(外來鍵)
2、關係型資料庫的設計
(1)關係型資料庫:從需要儲存的資料需求中分析,如果是一類資料(實體)
(2)關係型資料庫:維護實體內部、實體與實體之間的聯絡(實體與實體之間有關係就自然會有約束)
(3)關係型資料庫的特點之一:如果表中對應的某個欄位沒有值(資料),但是系統依然要分配空間(分配的空間和真實的資料長度的空間是一樣的) -- 關係型資料庫比較浪費空間
四、關鍵字說明
1、資料庫(DB):Database
2、資料庫系統(DBS):Database System,是一種虛擬系統,將多種內容關聯起來的稱呼(DBS = DBMS + DB)
3、資料庫管理系統(DBMS):Database Management System,專門管理資料庫
4、資料庫管理員(DBA):Database Administrator
5、行/記錄:row/record,本質是一個東西,都是指表中的一行資料/一條記錄。行是從結構角度出發,記錄是從資料角度出發
注:行/記錄是關係型資料庫特有的,因為是二維表
6、列/欄位:column/field,本質是一個東西
五、SQL
1、SQL:Structured Query Language,結構化查詢語言(資料以查詢為主,99%是在進行查詢操作)
2、SQL分為三個部分
(1)DDL:Data Definition Language,資料定義語言,用來維護儲存資料的結構(資料庫、表)。代表指令:create、drop、alter等
(2)DML:Data Manipulation Language,資料操作語言,用來對資料進行操作(資料表中的內容)。代表指令:insert、delete、update等。其中,DML內部又單獨進行了一個分類:DQL(Data Query Language:資料查詢語言,如:select)
(3)DCL:Data Control Language:資料控制語言,主要是負責許可權管理(使用者)。代表指令:grant(許可權分配)、revoke(許可權回收)等
3、SQL是關係型資料庫的操作指令,SQL是一種約束,但不強制(類似W3C)。不同的資料庫產品(如:Oracle、MySQL)可能內部會有一些細微的區別
六、MySQL資料庫
1、MySQL資料庫是一種C/S結構的軟體:客戶端/服務端。若想訪問伺服器必須通過客戶端(伺服器一直在執行,客戶端在需要使用的時候執行)
2、互動方式
(1)客戶端連線認證:連線伺服器,認證身份(預設使用者名稱,輸入密碼)
(2)客戶端傳送sql指令
(3)伺服器接收sql指令,處理sql指令,返回操作結果
(4)客戶端接收結果,顯示結果
(5)斷開連線,釋放資源(伺服器併發限制):exit | quit | \q
3、MySQL的伺服器和客戶端
(1)MySQL伺服器:安裝MySQL(mysql-5.5.28-winx64.msi),電腦上產生一個檔案目錄"C:\ProgramData\MySQL\MySQL Server 5.5",就是MySQL伺服器。可以通過 "管理工具-->服務" 開啟或關閉MySQL伺服器
(2)MySQL客戶端:Navicat for MySQL 和 Navicat_Premium等資料庫編輯器,實質上就是MySQL客戶端。可以通過這些軟體對資料庫進行訪問和資料操作,但是這些軟體本身是不能儲存資料的
注:運營網路專案,最好找一個伺服器,買個域名配一下DNS,用伺服器來跑MySQL伺服器版本。不要將PC用作上線專案的MySQL伺服器,否則,電腦會出各種問題
七、MySQL伺服器物件
1、資料庫伺服器的內部結構
MySQL伺服器內部物件分成了四層:系統(DBMS)--> 資料庫(DB)--> 資料表(Table)--> 欄位(field)
注:
(1)基於內部內容分層
(2)欄位管資料,因為資料最終的儲存單位是欄位field而不是表table