數據庫學習概述
數據庫作爲一種專門管理數據的軟件因爲對數據的需求不斷增長從而出現了。應用程序不需要自己管理數據,而是通過數據庫軟件提供的接口來讀寫數據。至於數據本身如何存儲到文件,那是數據庫軟件的事情,應用程序自己並不關心,其框架如下:
application
▲ ▼
read and write
▲ ▼
database
因此編寫應用程序的時候,數據讀寫的功能就被大大地簡化了。
數據庫類型
數據庫按照數據結構來組織、存儲和管理數據,實際上,數據庫一共有三種模型:
層次模型
網狀模型
關係模型
層次模型就是以“上下級”的層次關係來組織數據的一種方式,層次模型的數據結構看起來就像一顆樹。
網狀模型把每個數據節點和其他很多節點都連接起來,它的數據結構看起來就像很多城市之間的路網。
關係模型把數據看作是一個二維表格,任何數據都可以通過行號+列號來唯一確定,它的數據模型看起來就是一個Excel表。
爲什麼關係數據庫獲得了最廣泛的應用?
因爲相比層次模型和網狀模型,關係模型理解和使用起來最簡單。通過給定一個班級名稱,可以查到一條班級記錄,根據班級ID,又可以查到多條學生記錄,這樣,二維表之間就通過ID映射建立了“一對多”關係。
數據類型
對於一個關係表,除了定義每一列的名稱外,還需要定義每一列的數據類型。關係數據庫支持的標準數據類型包括數值、字符串、時間等:
名稱 | 類型 |
---|---|
INT | 整型 4字節整數類型 |
BIGINT | 長整型 8字節整數類型 |
REAL | 浮點型 4字節浮點數 |
DOUBLE | 浮點型 8字節浮點數 |
CHAR(N) | 定長字符串 存儲指定長度的字符串,例如,CHAR(100)總是存儲100個字符的字符串 |
VARCHAR(N) | 變長字符串 存儲可變長度的字符串,例如,VARCHAR(100)可以存儲0~100個字符的字符串 |
DATETIME | 日期和時間類型 存儲日期+時間,例如,2018-06-22 12:20:59 |
主流關係型數據庫
目前,主流的關係數據庫主要分爲以下幾類:
商用數據庫,例如:Oracle,SQL Server,DB2等;
開源數據庫,例如:MySQL,PostgreSQL等;
桌面數據庫,以微軟Access爲代表,適合桌面應用程序使用;
嵌入式數據庫,以Sqlite爲代表,適合手機應用和桌面程序。
關於SQL的說明
什麼是SQL?SQL是結構化查詢語言的縮寫,用來訪問和操作數據庫系統。SQL語句既可以查詢數據庫中的數據,也可以添加、更新和刪除數據庫中的數據,還可以對數據庫進行管理和維護操作。不同的數據庫,都支持SQL,這樣,我們通過學習SQL這一種語言,就可以操作各種不同的數據庫。
SQL語言定義了以下幾種操作數據庫的能力:
DDL:Data Definition Language
DDL允許用戶定義數據,也就是創建表、刪除表、修改表結構這些操作。通常,DDL由數據庫管理員執行。
DML:Data Manipulation Language
DML爲用戶提供添加、刪除、更新數據的能力,這些是應用程序對數據庫的日常操作。
DQL:Data Query Language
DQL允許用戶查詢數據,這也是通常最頻繁的數據庫日常操作。