一、什麼是資料庫 1、資料庫概念:資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,每個資料庫都有一個或多個不同的API介面用於創建,訪問,管理,搜索和複製所保存的數據。 2、RDBMS(關係資料庫管理系統): 能讓我們使用表、列和索引實現一個資料庫 保證各種表的行間的引用完整性 ...
一、什麼是資料庫
1、資料庫概念:資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,每個資料庫都有一個或多個不同的API介面用於創建,訪問,管理,搜索和複製所保存的數據。
2、RDBMS(關係資料庫管理系統):
- 能讓我們使用表、列和索引實現一個資料庫
- 保證各種表的行間的引用完整性
- 自動更新索引
- 解釋一個SQL查詢和組合來自不同表的信息
- SQL:結構化查詢語言(Structured Query Language),在關係型資料庫上執行數據操作、數據檢索以及數據維護的標準語言。
二、資料庫基本結構
資料庫:
—— 資料庫是表的集合,帶有相關的數據。
—— 表:一個表是多個欄位的集合。
—— 欄位:一個欄位是一列數據,由欄位名和記錄組成。
數據表:
—— 資料庫是由多個數據表構成的
—— 每張數據表存儲多個欄位
—— 每個欄位由不同的欄位名及記錄構成,每個欄位有自己的數據結構及約束條件
數據類型:
——數值類型:
– INT:有符號的和無符號的。有符號大小-2147483648~2147483647,無符號大0~4294967295。寬度最多為11個數字- int(11)
– TINYINT:有符號的和無符號的。有符號大小-128~127,無符號大小為0~255。寬度最多為4個數
字- tinyint(4)
– SMALLINT:有符號的和無符號的。有符號大小-32768~32767,無符號大小為0~65535。寬度最多為6個數字- smallint(6)
– FLOAT(M,D):只能為有符號的。預設為(10,2) – DOUBLE(M,D):只能為有符號的。預設為(16,4)
– DECIMAL(M,D):只能為有符號的。
——日期和時間類型
– DATE:YYYY-MM-DD格式,在1000-01-01和9999-12-31之間。
– DATETIME:YYYY-MM-DD HH:MM:SS格式,位於1000-01-01 00:00:00和9999-12-31 23:59:59 之間。
– TIMESTAMP:稱為時間戳,在1970-01-01 00:00:00和2037-12-31 23:59:59之間。
– TIME: 以HH:MM:SS格式, -838:59:59~838:59:59
– YEAR(2|4): 以2位或4位格式存儲年份值。如果是2位,1970~2069;如果是4位,1901~2155。
——字元串類型
– CHAR(M):固定長度字元串,長度為1-255。如果內容小於指定長度,右邊填充空格。如果不指定長度,預設為1
– VARCHAR(M):可變長度字元串,長度為1-255。定義該類型時必須指定長度
– BLOB 或TEXT:最大長度65535。存儲二進位大數據,如圖片。不能指定長度。兩者區別: BLOB 大小寫敏感
– TINYBLOB 和TINYTEXT:最大長度255。不能指定長度。
– MEDIUMBLOB 或MEDIUMTEXT:最大長度16777215 字元
– LONGBLOB 或LONGTEXT:最大長度4294967295 字元
– ENUM:枚舉。例如:ENUM(‘A’,’B’,’C’)。NULL 值也可
——約束條件
– 約束是在表上強制執行的數據檢驗規則
– 用來保證創建的表的數據完整和正確
主鍵約束:保證表中每行記錄都不重覆。
主鍵,又稱為”主碼”,是數據表中一列或多列的組合。主鍵約束要求主鍵列的數據必須是唯一的,並且不允許為空。使用主鍵,能夠惟一地標識表中的一條記錄,並且可以結合外鍵來定義不同數據表之間的關係,還可以加快資料庫查詢的速度
非空約束:指的是欄位的值不能為空。
唯一性約束:要求該列的值必須是唯一的。(1) 允許為空,但只能出現一個空值;(2)一個表中可以有多個欄位聲明為唯一的;(3) 唯一約束確保數據表的一列或幾列不出現重覆值。
預設約束:指定某個欄位的預設值。如果新插入一條記錄時沒有為預設約束欄位賦值,那麼系統就會自動為這個欄位賦值為預設約束設定的值。
自增欄位:一個表只能有一個自增欄位,自增欄位必須為主鍵的一部分。預設情況下從1開始自增。