MySQL基礎(四):數據類型和數據約束的作用、數據類型附錄表

數據類型和約束

學習目標

  • 能夠知道數據類型和數據約束的作用

大家都知道數據庫中的數據保存在數據表中,在表中爲了更加準確的存儲數據,保證數據的正確有效,可以在創建表的時候,爲表添加一些強制性的驗證,比如:數據類型和約束。

1. 數據類型

數據類型是指在創建表的時候爲表中字段指定數據類型,只有數據符合類型要求才能存儲起來,使用數據類型的原則是:夠用就行,儘量使用取值範圍小的,而不用大的,這樣可以更多的節省存儲空間。

常用數據類型如下:

  • 整數:int,bit
  • 小數:decimal
  • 字符串:varchar,char
  • 日期時間: date, time, datetime
  • 枚舉類型(enum)

數據類型說明:

  • decimal表示浮點數,如 decimal(5, 2) 表示共存5位數,小數佔 2 位.
  • char表示固定長度的字符串,如char(3),如果填充’ab’時會補一個空格爲’ab ',3表示字符數
  • varchar表示可變長度的字符串,如varchar(3),填充’ab’時就會存儲’ab’,3表示字符數
  • 對於圖片、音頻、視頻等文件,不存儲在數據庫中,而是上傳到某個服務器上,然後在表中存儲這個文件的保存路徑.
  • 字符串 text 表示存儲大文本,當字符大於 4000 時推薦使用, 比如技術博客.

2. 數據約束

約束是指數據在數據類型限定的基礎上額外增加的要求.

常見的約束如下:

  • 主鍵 primary key: 物理上存儲的順序. MySQL 建議所有表的主鍵字段都叫 id, 類型爲 int unsigned.
  • 非空 not null: 此字段不允許填寫空值.
  • 惟一 unique: 此字段的值不允許重複.
  • 默認 default: 當不填寫字段對應的值會使用默認值,如果填寫時以填寫爲準.
  • 外鍵 foreign key: 對關係字段進行約束, 當爲關係字段填寫值時, 會到關聯的表中查詢此值是否存在, 如果存在則填寫成功, 如果不存在則填寫失敗並拋出異常.

3. 數據類型附錄表

1. 整數類型
類型 字節大小 有符號範圍(Signed) 無符號範圍(Unsigned)
TINYINT 1 -128 ~ 127 0 ~ 255
SMALLINT 2 -32768 ~ 32767 0 ~ 65535
MEDIUMINT 3 -8388608 ~ 8388607 0 ~ 16777215
INT/INTEGER 4 -2147483648 ~2147483647 0 ~ 4294967295
BIGINT 8 -9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551615
2. 字符串
類型 說明 使用場景
CHAR 固定長度,小型數據 身份證號、手機號、電話、密碼
VARCHAR 可變長度,小型數據 姓名、地址、品牌、型號
TEXT 可變長度,字符個數大於 4000 存儲小型文章或者新聞
LONGTEXT 可變長度, 極大型文本數據 存儲極大型文本數據
3. 時間類型
類型 字節大小 示例
DATE 4 ‘2020-01-01’
TIME 3 ‘12:29:59’
DATETIME 8 ‘2020-01-01 12:29:59’
YEAR 1 ‘2017’
TIMESTAMP 4 ‘1970-01-01 00:00:01’ UTC ~ ‘2038-01-01 00:00:01’ UTC

4. 小結

  • 常用的數據類型:
    • 整數:int,bit
    • 小數:decimal
    • 字符串:varchar,char
    • 日期時間: date, time, datetime
    • 枚舉類型(enum)
  • 常見的約束:
    • 主鍵約束 primary key
    • 非空約束 not null
    • 惟一約束 unique
    • 默認約束 default
    • 外鍵約束 foreign key
  • 數據類型和約束保證了表中數據的準確性和完整性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章