cookbook
如何添加一个用户,并将数据库中所有表的权限赐予此用户:
1 | CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'test623'; |
关于一些修改表结构的语法
1 | -- 修改一个字段属性 |
原理
int(11)与int(3)的区别?
mysql有四种整数类型,分别是:
bigint
: 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
int
:从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
smallint
:从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。
tinyint
:从 0 到 255 的整型数据。存储大小为 1 字节。
int(M) M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。
所以int(11)与int(3)的容量是一样的,只不过显示宽度不一样而已。
当然如果你不用zerofill
是看不出来效果的,首先需要了解一点的时zerofill会把此字段标记为unsigned的。
举个例子(以下存储的值都是10):
如果现在有一张表,它的id是这样定义的:
id int(3) zerofill,
那么它select
的结果是这样的:
010
还有另一张表,它的id这样定义的:
id int zerofill,
那么它select
的结果是这样的:
0000000010
那么顺便说一下没有zerofill
的情况,如果有一张表的id字段是这样的,无论有没有int(M)的属性:
id int,
它打印出得结果就是:
10