在 MySQL 中,下列数据类型必须设定后面的括号值:
- CHAR(n):定义长度固定为 n 的字符串;
- VARCHAR(n):定义长度可变,最大长度为 n 的字符串;
- DECIMAL(m, d):定义精度为 m,小数位数为 d 的小数类型;
- NUMERIC(m, d):定义精度为 m,小数位数为 d 的小数类型;
- TIME(n):定义时间类型,n 表示小数位数。
需要注意的是,这些数据类型中的括号值是可选的,如果未指定,MySQL 会使用默认值。例如,如果未指定 VARCHAR 的长度,则默认长度为 1。
MySQL中的括号后面通常表示字符长度或数据大小。对于不同的数据类型,括号内的数值有不同的含义:
1. 对于`VARCHAR`类型,括号内的数字表示最大字符数。例如,`VARCHAR(255)`表示该列可以存储最多255个字符。
2. 对于`CHAR`类型,括号内的数字表示固定长度的字符数。例如,`CHAR(10)`表示该列将存储固定长度为10个字符的字符串,不足10个字符时会自动用空格补齐。
3. 对于`INT`、`SMALLINT`、`MEDIUMINT`、`BIGINT`等整数类型,括号内的数字表示显示宽度,即当数据以字符串形式显示时的最大字符数。注意,这里的显示宽度不影响实际存储的数据范围。例如,`INT(11)`只是表示以字符串形式显示的最大宽度为11个字符,实际存储的整数范围仍为-2147483648到2147483647。
4. 对于`DECIMAL`和`NUMERIC`类型,括号内包含两个数字,分别表示总共的数字个数和小数点后的数字个数。例如,`DECIMAL(10, 2)`表示该列可以存储最多10位数字的数值,其中小数点后最多有2位。
5. 对于`FLOAT`和`DOUBLE`类型,括号内的数字也表示总共的数字个数和小数点后的数字个数。例如,`FLOAT(7, 4)`表示该列可以存储最多7位数字的浮点数,其中小数点后最多有4位。
6. 对于`ENUM`和`SET`类型,括号内的值表示预定义的可选值。例如,`ENUM('A', 'B', 'C')`表示该列只能存储'A'、'B'或'C'三个值之一。
总之,MySQL中的