數據類型
注意:每個字段都必須設置數據類型
整數類型
tinyint - 1字節 - 應用場景:存儲狀態碼
int - 4字節 - 應用場景:沒有特殊要求,一般使用int
bigint - 8字節 - 應用場景:存儲極大的整數
CREATE TABLE user (username varchar(32) PRIMARY KEY,password varchar(32),name varchar(32),age int(3) unsigned zerofill, )
注意:age int(3)字段上的數據可以存儲-2147483648~2147483647范圍,如果數據不滿3位,使用0填充
前提:字段上必須使用unsigned zerofill修飾
unsigned - 無符號(不能使用負數)
zerofill - 不滿3位,使用0填充
浮點類型
float - 單精度浮點型 -- 應用場景:允許失去精度的數據
double - 雙精度浮點型 -- 應用場景:允許失去精度的數據
decimal - 字符串的浮點數 -- 應用場景:不允許失去精度的數據(ps:銀行的金額)
float(8,2):小數長度為8位,其中2位是小數位
注意:float和double都有可能失去精度
字符串類型
varchar -- 變長字符串(ps:varchar(32),最多存儲32個字符,如果存儲"用良心做教育",會按照實際數據長度開辟空間)
char -- 定長字符串(ps:char(32),最多存儲32個字符,如果存儲"用良心做教育",會按照32個長度開辟空間)
注意:varchar和char的取值范圍0~255字符
text -- 長文本數據的字符串,意味著可以存儲文本文件
blob -- 二進制形式的文本數據的字符串,意味著可以存儲二進制文件(圖片、音頻、視頻)
longtext -- 極長的長文本數據的字符串,意味著可以存儲文本文件
longblob -- 極長的二進制形式的文本數據的字符串,意味著可以存儲二進制文件(圖片、音頻、視頻)
注意:存儲純文本數據和二進制數據的技術叫做CBLob(TEXT類型叫做clob->character,BLOB類型叫做blob->binary system)
經驗:項目中不會把文件存入數據庫中,因為這樣會對數據庫造成極大的壓力。如果向存儲文件可以把文件地址存儲在數據庫中
日期時間類型
date -- 日期類型(2024-07-03)
time -- 時間類型(14:19:30)
datetime -- 日期時間類型(2024-07-03 14:19:30)
year -- 年份(2024)
timestamp -- 時間戳
CREATE TABLE user (username varchar(32) COLLATE utf8mb4_general_ci,password varchar(32) COLLATE utf8mb4_general_ci,name varchar(32) COLLATE utf8mb4_general_ci,age int(3) unsigned zerofill,birth date ,xxx timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, )
UPDATE CURRENT_TIMESTAMP -- timestamp可以設置修改該數據行就刷新時間戳數據