書接上回:後端開發Python篇-CSDN博客
必要資源:
Navicat Premium (收費 / 需破解):Navicat Premium | 管理和开发你的数据库
phpstudy 2018 (免費):phpStudy - Windows 一键部署 PHP 开发环境 · 小皮出品
前言
大家好,我是小楓。前幾期我們解析了PHP和Python在後端的作用,以及其用法。其中有提到過表單提交,大家有沒有想過我們提交的數據會存儲在哪裡呢?我們的機子又是如何與服務器實現交互的呢?這些將會在我們後端 MySQL數據庫篇裡給大家詳解。
這期內容會主要介紹MySQL數據庫的基本架構以及一些基礎概念。廢話不多說,我們開始吧。

目录
[1.1 關係型數據庫](#1.1 關係型數據庫)
[1.1.1 相關名詞](#1.1.1 相關名詞)
[3.1 cmd 窗口](#3.1 cmd 窗口)
[3.2 Navicat Premium (需破解)](#3.2 Navicat Premium (需破解))
[3.3 phpstudy 2018](#3.3 phpstudy 2018)
[4.1 mysql默認3個數據庫](#4.1 mysql默認3個數據庫)
[4.1.1 information_scheme](#4.1.1 information_scheme)
[4.1.1.1 schemata](#4.1.1.1 schemata)
[4.1.1.2 tables](#4.1.1.2 tables)
[4.1.1.3 columns](#4.1.1.3 columns)
[4.1.2 performance_scheme](#4.1.2 performance_scheme)
[4.1.3 mysql](#4.1.3 mysql)
[5.1 數值類型](#5.1 數值類型)
[5.2 浮點數類型](#5.2 浮點數類型)
[5.3 日期和時間類型](#5.3 日期和時間類型)
[5.4 字符串類型](#5.4 字符串類型)
一、數據庫是甚麼?
顧名思義,數據庫是存儲數據以供各管理及分析的地方。數據庫可以存儲多個表格一般的小文件。
數據庫特徵包括:数据按一定的数据模型组织、描述和储存;数据间联系密切、冗余度较小;数据独立性较高;易扩展;可为各种用户共享。
數據庫一般分為關係型與非關係型數據庫,我們這邊只會學關係型數據庫哈,至於有甚麼區別就說來話長了,這裡就不說了。
1.1 關係型數據庫
數據以表 的方式存儲。通過++SQL結構化查詢語言++來存取、管理關係型數據庫。例如:MySQL , Oracle , Microsoft SQL Server & BM DB2等等都是關係型數據庫
1.1.1 相關名詞
數據表 table
記錄
字段 / 列 column

二、MySQL服務端架構
完整的數據庫分為4層:數據庫管理系統、數據庫、二維數據表、字段。
|-----------------|-----|---------------------|------------------|
| 數據庫管理系統 (DBMS) | 最外層 | 專門管理服務器的所有內容 | 大型圖書館 |
| 數據庫 (Databases) | 第二層 | 專門用於存儲數據的倉庫(可以有很多個) | 不同區域(成人區、科學區...) |
| 二維數據表 (Tables) | 第三層 | 專門用於存儲具體實體的數據 | 區域中的書架 |
| 字段 (Field) | 第四層 | 具體存儲某種類型的數據(實際存儲單元) | 書架上的書 |
* 需登錄帳戶才可進入數據庫管理系統
三、工具
3.1 cmd 窗口
配置環境變量:
打開phpstudy 2018 (鏈接在文章開頭)
點擊其他選項菜單
選擇打開文件位置
雙擊MySQL
打開bin
把路徑copy下來,並新增到環境變量

*配置完成後就可以在cmd窗口登入MySQL數據庫了,記得以管理員身份執行。
mysql -u root -p
密碼:root

=> 看到這個就是成功了
3.2 Navicat Premium (需破解)
很方便的一個數據庫操作工具哈,破解就不教大家了,小編怕被封。大家如果覺得麻煩的話,用下一款工具也是一樣的。
3.3 phpstudy 2018
phpstudy是內置MySQL管理器的,可以看出phpstudy在整個後端教學中都是十分重要的。phpsutdy 2018版是最好用最方便的,大家安裝2018版就可以了。
-
打開phpstudy 2018
-
點擊MySQL管理器

- 選擇MySQL-Front

- 可能要輸入密碼

* 用戶以及密碼都默認為root
四、MySQL內部結構
4.1 mysql默認3個數據庫
- information_scheme
- performance_scheme
- mysql

4.1.1 information_scheme
其中3個數據表尤其重要,分別是schemata、tables 和 columns
4.1.1.1 schemata
=> 存放數據庫名稱
記錄系統中有哪些數據庫

4.1.1.2 tables
=> 存放所有 數據庫中存放的表的表名


4.1.1.3 columns
=> 存放++所有++ 數據庫中的表中的列名

4.1.2 performance_scheme
用於監控安全狀況,大家記住information_scheme那些就夠了。
4.1.3 mysql
存放密碼(已加密)、權限、用戶連接信息,大家記住information_scheme那些就夠了。
五、數據庫數據類型
數據存儲是按類型分類的,例如年齡與用戶名,年齡數據只能是整數,而用戶名只能是字符串。為防止錯誤存儲數據,就需要規定存儲的數據類型。
至於怎麼操作,我們下期再說,大家先稍微記一下有哪些類型。
5.1 數值類型
- TINYINT
存儲字節=1 有符數值取值範圍=-128~127 無=0~255
- SMALLINT
存儲字節=2 有符數值取值範圍= -32768 ~ 32767 無符數值取值範圍= 0 ~ 65535
- MEDIUMINT
存儲字節=3 有符數值取值範圍= -8388608 ~ 8388607
無符數值取值範圍= 0 ~ 16777215
- INT
存儲字節=4 有符數值取值範圍= -2147483648 ~ 2147483647
無符數值取值範圍= 0 ~ 4294967295
- BIGINT (當數值超過INT時使用)
存儲字節=8 有符數值取值範圍= -2^63 ~ (2^63)-1 無符數值取值範圍= 0 ~ (2^64)-1
5.2 浮點數類型
- FLOAT
占用4個字節 用於表示單精度浮點數值
- DOUBLE
占用8個字節 用於表示雙精度浮點數值 (小數點後數字越多,內存空間越多)
- DECIMAL
用於表示高精度小數,精度和計算方法可以指定,適應特定需求 (小數點後位更多,多用於銀行)
5.3 日期和時間類型
- DATE
大小=3bytes 範圍= 1000-01-01 / 9999-12-31 格式=YYYY-MM-DD
- TIME
大小=3bytes 範圍= -838:59:59 / 838:59:59 格式=HH:MM:SS (時間/持續時間)
YEAR
大小=1bytes 範圍= 1901 / 2155 格式=YYYY
DATETIME
大小=8bytes 範圍= 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
TIMESTAMP
大小=4bytes 範圍= 1970-01-01 00:00:01 (UTC) ~ 2038-01-19 03:14:07 (UTC)
5.4 字符串類型
- CHAR(固定長度)
大小= 0~255bytes 用途=定長字符串
- VARCHAR(長度可變化)
大小= 0~65535bytes 用途=變長字符串
- TINYBLOB
大小= 0~255bytes 用途=不超255個字串的二進制字符串
- TINYTEXT
大小= 0~255bytes 用途=短文本字符串
- BLOB
大小= 0~65536bytes 用途=二進制形式的長文本數據
- TEXT
大小= 0~65535bytes 用途=長文本數據
- MEDIUMBLOB
大小= 0~16777215bytes 用途=二進制形式的中等長度文本數據
- MEDIUMTEXT
大小= 0~16777215bytes 用途=中等長度文本數據
- LONGBLOB
大小= 0~4294967295bytes 用途=二進制形式的極大文本數據
- LONGTEXT
大小= 0~4294967295bytes 用途=極大文本數據
六、小結
MySQL數據庫的基礎架構就跟大家說得差不多了,下一篇再跟大家解說數據庫的實操。
大家只需要記住它們的功能和運作邏輯就可以了,實操可以讓AI幫忙寫,具體的之前已經說過了,這裡就不多說了。