1. 程式人生 > >03-MySQL概述--資料庫的學習階段+資料庫基礎+關係型資料庫+關鍵字說明+SQL+MySQL資料庫+MySQL伺服器物件

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