關係型數據庫MySql 數據類型與約束

MySql數據庫 :數據類型與約束

注意 :  在建立數據表的時候,須要對數據表中的字段設置 數據類型和約束, 便於檢測用戶輸入的數據是否正確有效。數據庫

 

1 數據類型 服務器

  數據類型的選用原則 : 夠用就行,儘可能使用取值範圍小的, 而不選用大的,這樣能夠更多的節省存儲空間。性能

 

經常使用數據類型以下:code

  整數:int,bit視頻

  小數:decimal圖片

  字符串:varchar,charci

  日期時間: date, time, datetime字符串

  枚舉類型(enum)

it

特別說明的類型以下:table

  decimal表示浮點數,如decimal(5,2)表示共存5位數,小數佔2位

  char表示固定長度的字符串,如char(3),若是填充'ab'時會補一個空格爲'ab '

  varchar表示可變長度的字符串,如varchar(3),填充'ab'時就會存儲'ab'

  字符串text表示存儲大文本,當字符大於4000時推薦使用

  對於圖片、音頻、視頻等文件,不存儲在數據庫中,而是上傳到某個服務器上,而後在表中存儲這個文件的保存路徑。

 

2 約束

  主鍵primary key:物理上存儲的順序

  非空not null:此字段不容許填寫空值

  唯一unique:此字段的值不容許重複

  默認default:當不填寫此值時會使用默認值,若是填寫時以填寫爲準

  外鍵foreign key:對關係字段進行約束,當爲關係字段填寫值時,會到關聯的表中查詢此值是否存在,若是存在則填寫成功,若是不存在則填寫失敗並拋出異常。

  說明:雖然外鍵約束能夠保證數據的有效性,可是在進行數據的crud(增長、修改、刪除、查詢)時,都會下降數據庫的性能,因此不推薦使用,那麼數據的有效性怎麼保證呢?答:能夠在邏輯層進行控制。

 

數值類型經常使用類型:

類型 字節大小 有符號範圍(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

 

字符串經常使用類型:

類型 字節大小 示例
CHAR 0-255 類型:char(3) 輸入 'ab', 實際存儲爲'ab ', 輸入'abcd' 實際存儲爲 'abc'
VARCHAR 0-255 類型:varchar(3) 輸 'ab',實際存儲爲'ab', 輸入'abcd',實際存儲爲'abc'
TEXT 0-65535 大文本

 

日期時間類型

類型 字節大小 示例
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-19 03:14:07' UTC
相關文章
相關標籤/搜索