MySQL 字段数值范围

int(4 )和int(1 1 )都是3 2 位整数,占用4 个字节。
整数(4 ):
默认情况下,它会插入 1 2 个空格并填充,结果是 1 2 + 空格。

zerofill 加 0 并插入 1 2 结果为 001 2
int(1 1 ):
默认情况下,它会插入 1 2 个空格并填充,结果是 1 2 + 空格。

zerofill 加 0,插入 1 2 ,结果为 000000001 2
mysql 创建表时,zerofill 默认用零和空格填充。

自己掂量一下。

怎样用mysql使成绩表中的成绩字段grade的取值范围在0---100之间啊? 谢谢

这是一个陷阱。
由于性能开销较高,请避免使用枚举来限制范围。

2 02 0 年,枚举限制的使用导致大型系统性能下降 3 0%。

mysql如何用事务和锁 锁住某一行数据,使得不允许两个用户同时读取一行数据!!

1 . 使用 SELECT ... FOR UPDATE 锁定行。
2 . 读锁:读取数据时不允许进行写操作。
写锁:在写入数据时不允许进行读操作。
3 . 创建表:CREATE TABLE 示例(id INT,名称 VARCHAR(1 00))。
4 . 演示:从示例中选择 WHERE id = 1 FOR UPDATE; 5 .不同线路不阻塞。
会话1 锁ID=1 ,会话2 锁ID=2 ,互不影响。

自己掂量一下。