在MySQL中,建表時長度的設置非常重要。長度的設置要考慮到字段所能包含的數(shù)據(jù)的最大長度,以及不同字符集下字符的大小。
CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `age` tinyint(3) UNSIGNED NOT NULL DEFAULT '0', `email` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
在上面的例子中,我們定義了一個test表,其中name和email字段的長度為50,而age字段的長度為3。如果我們在建表時沒有指定長度,MySQL將會根據(jù)字段的數(shù)據(jù)類型自動分配一個默認長度。
需要注意的是,不同的字符集下字符的大小也會有所不同。比如,在utf8mb4字符集下,一個漢字占用四個字節(jié),而在utf8字符集下,一個漢字只占用三個字節(jié)。
因此,在選定字符集時,也需要考慮所能包含的數(shù)據(jù)最大長度。
下一篇mysql 必填