MySQL數據庫開發教學(一) 基本架構

書接上回:後端開發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 相關名詞)

二、MySQL服務端架構

三、工具

[3.1 cmd 窗口](#3.1 cmd 窗口)

[3.2 Navicat Premium (需破解)](#3.2 Navicat Premium (需破解))

[3.3 phpstudy 2018](#3.3 phpstudy 2018)

四、MySQL內部結構

[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 窗口

配置環境變量

  1. 打開phpstudy 2018 (鏈接在文章開頭)

  2. 點擊其他選項菜單

  3. 選擇打開文件位置

  4. 雙擊MySQL

  5. 打開bin

  6. 把路徑copy下來,並新增到環境變量

*配置完成後就可以在cmd窗口登入MySQL數據庫了,記得以管理員身份執行

复制代码
mysql -u root -p
密碼:root

=> 看到這個就是成功了

很方便的一個數據庫操作工具哈,破解就不教大家了,小編怕被封。大家如果覺得麻煩的話,用下一款工具也是一樣的。

3.3 phpstudy 2018

phpstudy是內置MySQL管理器的,可以看出phpstudy在整個後端教學中都是十分重要的。phpsutdy 2018版是最好用最方便的,大家安裝2018版就可以了。

  1. 打開phpstudy 2018

  2. 點擊MySQL管理器

  1. 選擇MySQL-Front
  1. 可能要輸入密碼

* 用戶以及密碼都默認為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幫忙寫,具體的之前已經說過了,這裡就不多說了。

相关推荐
码事漫谈8 分钟前
C++继承中的虚函数机制:从单继承到多继承的深度解析
后端
阿冲Runner9 分钟前
创建一个生产可用的线程池
java·后端
写bug写bug18 分钟前
你真的会用枚举吗
java·后端·设计模式
Bruce_Liuxiaowei33 分钟前
MySQL完整重置密码流程(针对 macOS)
mysql
喵手1 小时前
如何利用Java的Stream API提高代码的简洁度和效率?
java·后端·java ee
麦麦大数据1 小时前
F003疫情传染病数据可视化vue+flask+mysql
mysql·flask·vue·大屏·传染病
掘金码甲哥1 小时前
全网最全的跨域资源共享CORS方案分析
后端
m0_480502641 小时前
Rust 入门 生命周期-next2 (十九)
开发语言·后端·rust
薛晓刚1 小时前
当MySQL的int不够用了
数据库
张醒言1 小时前
Protocol Buffers 中 optional 关键字的发展史
后端·rpc·protobuf