MySQL中的char類型是用來存儲定長字符串的,其長度可以在定義表結構時指定,長度范圍為0~255個字符。char類型存儲的每一個字符占用一個字節,在存儲時會自動補齊至指定長度。比如定義一個char(10)類型的字段,如果輸入的字符串長度小于10個字節,MySQL會在輸入的字符串后面自動補齊空格直到占滿10個字節。因此,char類型的存儲空間始終是一個固定的值,不會隨存儲的數據長度變化而變化。
例如,定義一個長度為10的char類型字段: CREATE TABLE `test` ( `id` int(11) NOT NULL, `name` char(10) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 如果插入 "Tom"? 這個字符串,則在數據庫中以 "Tom " 的形式存儲,其中"Tom"后面是7個空格,總長度為10個字節。
需要注意的是,char類型的存儲空間是固定的,因此如果定義的長度過大,會浪費存儲空間;如果定義的長度過小,則會導致存儲數據時出現截斷的情況。因此,在定義char類型字段時應當根據實際的業務需求來進行選擇合適的長度。