### 一、介紹關系型數據庫
#### 1.什么是數據庫?
最簡單的方式來理解數據庫就是相關文件的集合。想象一個商店的銷售清單文件(紙質或者數碼)。然后有一個產品的文檔,包含庫存記錄。要完成一個訂單,你需要查找訂單文件中的產品,然后查找并調整產品文件中特定產品的庫存量。數據庫和管理數據庫的軟件,稱為“數據庫管理系統(DBMS)“,有助于我們完成這樣的任務。
如今大多數的數據庫都是關系型數據庫,之所以這樣稱呼是因為他們處理以一個共同的字段相關聯的數據表。例如:表1展示了產品表,表2展示了發票表格。正如你看見的,這兩個表之間的關系是基于相同的字段product_code。任意兩個表都能以一個相同的字段聯系在一起。
**Table 1**
| *Product_code* | Description | Price |
| -- | -- | -- |
|A416 | Nails, box | $0.14 |
|C923 | Drawing pins, box | $0.08 |
**Table 2**
|Invoice_code | Invoice_line | *Product_code* | Quantity |
| -- | -- | -- | -- |
| 3804 | 1 | A416 | 10 |
| 3804 | 2 | C923 | 15 |
####2.數據庫相關術語
讓我們更仔細地看一下前面的兩張表,看看它們是如何組織的:
* 每個表由許多行和列組成。
* 每行包含一個單一實體(如一個產品或一個訂單行)的數據。通常稱其為*記錄*。例如,表1中的第一行就是一個記錄;它描述了A416產品,這是一盒釘子,成本十四美分。可以理解為*行*和*記錄*就是一回事。
* 每一*列*(也稱為*元組*)包含一個與該記錄有關的數據,稱為*屬性*。例如一個項目的數量或者一個產品的價格,都是*屬性*。在引用數據庫表時,我們稱*屬性*為*字段*。例如在Table 1中,*Description*列就是*字段*。同樣的,*屬性*和*字段*也是一回事。
由于這種結構,數據庫為您提供了一種方法來操縱這些數據:SQL。SQL(結構化查詢語言)是搜索或者改變記錄一個強大的方式。幾乎所有的數據庫管理系統使用SQL,雖然很多人說自己添加了一些特性來增強它。這意味著,當你學習SQL來使用mariaDB,只要不是針對mariaDB特定的語句,都能狗運用在其他的關系性數據庫上,例如 PostgreSQL, MySQL, Oracle 和 SQL Serve。MariaDB最初創建就是用來替代MySQL的,因此MariaDB 和 MySQL非常相似。