0 前言
本文講解數據庫的最基本概念
推薦書籍:《MySQL 必知必會》
需要的軟件:MySQL 8.0
1 數據庫相關概念及其實戰應用
1.1 數據(Data)
在人類世界中,數據可以是
- 數值型數據
- 十進制數
- 非數值型數據
- 圖片
- 聲音
- 視頻
- 文字
- ……
在計算機世界中,數據是二進制數。
將人類世界的信息,映射到計算機世界,將人類世界信息轉換成二進制數,并且存儲到計算機的過程,就叫數據的存儲。
例如,你寫一個博客,保存起來,這就是存儲數據。
1.2 數據庫(Database DB)
1.2.1 概念
數據的存儲,需要使用容器,就好比水的存儲,需要使用水桶一樣,裝數據的容器,就是數據庫。
在人類世界,裝數據的容器,可以是文件柜
數據,就是文件,并且,通常情況下,文件是放在文件夾里的。
這里就引出了幾個數據庫學科中的重要概念
- 數據庫 —— 文件柜
- 表 —— 文件柜里的文件夾
- 數據 —— 文件夾里的資料
這樣,我想你能夠明白,這幾個概念之間的關系了。
值得注意的一點是,他們之間的關系,數據庫與數據庫,數據庫中的表和表,表中的數據和數據,他們之間,都存在各種結構,也就是所謂的數據結構,這一點還是很重要的,但是現在先不談這個事情。
1.2.2 實戰
我們來用MySQL的命令,演示一下。
1.2.2.1 顯示數據庫
顯示數據庫:show databases;
它在資源管理器中,就是文件夾,我們來看一下
我展示出了路徑,你可以自己找一下,默認C盤,可以看出,數據庫名稱與文件夾名稱之間是對應的。
1.2.2.2 創建數據庫
創建數據庫:create database <數據庫名稱>;
我們將數據庫的名字命名為FileCabinet
(文件柜)好了。
我們再查看一下數據庫
你可以看見文件夾也有了這個
不過,不知道有沒有注意到,為什么是小寫了?
原因在于:MySQL在windows下,不區分大小寫,但是在Linux下區分大小寫,所以,為了能夠更容易匹配,就全部轉換為小寫。
1.2.2.3 使用數據庫
使用數據庫:use <數據庫名稱>;
這樣,你就能夠使用這個數據庫了,比如可以在里面創建表,再創建文件,等等。
1.2.2.4 顯示當前數據庫中的表
指令:show tables;
結果顯示,這個數據庫中,沒有表,是空的,這也就是說,文件柜是新生產的,里面啥都沒有。
1.2.2.5 在數據庫中創建表
語法:create table <表的名字> (表的定義);
這里設計到SQL語言的數據類型,先不用管,只需要知道
- 我們在數據庫
filecabinet
中創建了一個表,名字叫student_file
- 表的定義部分,也就是()中的,帶表:這個表中的數據,可以具備兩個屬性,一個是字符類型的name,一個是數字類型的age
1.2.2.6 查看剛剛創建的表
命令:show tables;
我們可以看見,在這個數據庫中,我們擁有了一個名字為student_file的表。我們還可以按照上一小節的內容,在該數據庫中,創建更多的表。
我們進入資源管理器中,看一下我們創建的表。
在文件夾filecabinet中,創建了一個ibd類型的文件,這也就是我們創建的表對應的文件。
1.2.2.7 表的定義是什么意思?
剛剛我們提到了表的定義,和表的兩個屬性,name和age,那么,他們到底是什么意思?
舉一個例子你就明白了,你在學習工作中,是不是總要填表格?
我們現在創建一個Excel表格,將其命名為student_file。
然后,在表格內,寫上一些內容
并明確要求,name一欄,要寫字符型數據,age一欄,要寫數字,之后讓同學們填寫。
這樣一來
- 張三、李四和王五,寫在了name一欄,并且是char類型的數據
- 18、19和20,寫在了age一欄,并且是int類型的數據
這也就是說,我們的表student_file
,具備兩個屬性char類型的name
和int類型的age
,并且可以在里面填寫符合標準的信息。
這也就是所謂表定義的意義,它指明了整個表能夠填入什么樣的數據。
1.2.2.8 其他
后續還有表內數據的填寫等等,以后再說。
1.2.3 小結
我們來總結一下本小節的重要內容:數據管理系統、數據庫、表和數據,理清他們之間的邏輯關系。
對于一片計算機存儲空間,可以創建多個數據庫,創建的數據庫需要有<名稱>,在資源管理器中,表現為創建了多個文件夾。
對于每一個數據庫,內部都可以創建多個表,創建的表需要有<名稱>和(屬性),在資源管理器中,體現為在數據庫文件夾內,創建多個文件。
對于每一個表,表內包含了符合其屬性的數據,在資源管理器表現為,表對應的文件中的內容。
而DBMS,就是能夠方便管理數據庫、表、數據的軟件。
補充:與計算機組成原理聯系,可以將DBMS看成CPU的控制器,掌控著各個器件的運行方式。
1.3 數據庫管理系統(Database Management System DBMS)
DBMS,就是方便人類操作數據庫的軟件,比如MySQL,SQL Server等等,都是數據庫管理系統,都是軟件,上一小節我們使用的各種指令,就是在MySQL軟件上進行的。
還有一個概念:數據庫管理員(Database Administrator DBA)
DBA,就是管理數據庫管理系統的人,你可以理解為,圖書館管理員,他需要管理整個圖書館的各個書柜,書柜也就是數據庫。
1.4 數據庫系統(Database System DBS)
重點不是數據庫管理系統,而是系統,我們知道很多系統,比如計算機系統,選課系統……談及系統,必須要談及其所在的層次,他代表其所在層次領域的全部生態。
例如數據庫系統,他就包含
- 數據庫管理系統
- 數據庫管理員
- 數據庫
- 數據
- 用戶
等等,整個數據庫學科生態的全部內容,及其結構關系,甚至還有包含其與外界的聯系,系統是個很復雜的事情,你這樣簡單理解就可以了。