Php MySQL数据类型-有符号无符号 让我们考虑一下TiNyIt。表示它的有符号范围是从-128到127,无符号范围是从0到255 CREATE TABLE `example_table` ( `example_col` tinyint(3) unsigned NOT NULL );

Php MySQL数据类型-有符号无符号 让我们考虑一下TiNyIt。表示它的有符号范围是从-128到127,无符号范围是从0到255 CREATE TABLE `example_table` ( `example_col` tinyint(3) unsigned NOT NULL );,php,mysql,sqldatatypes,Php,Mysql,Sqldatatypes,1) 为什么它说它的范围是从-128到127,为什么不说它的范围是从-128到255 2) 这些范围是否意味着我不能接受-129或256的值?(假设我正在填写一个表格,其中有一个文本框)签名和未签名的范围是相同的,这都是关于优化的。unsigned仅用于上限,表示不允许使用负数。所以,当你们知道你们只需要正数时,总是使用未赋值 检查它tinyint值不是从-128到255,这就是为什么他们不这么说 创建表时,它是有符号的或无符号的。如果不指定,则默认值是带符号的-128到127。如果在创建表时指

1) 为什么它说它的范围是从-128到127,为什么不说它的范围是从-128到255


2) 这些范围是否意味着我不能接受-129或256的值?(假设我正在填写一个表格,其中有一个文本框)

签名和未签名的范围是相同的,这都是关于优化的。unsigned仅用于上限,表示不允许使用负数。所以,当你们知道你们只需要正数时,总是使用未赋值


检查它

tinyint值不是从-128到255,这就是为什么他们不这么说

创建表时,它是有符号的或无符号的。如果不指定,则默认值是带符号的-128到127。如果在创建表时指定unsigned,则其值为0到255

CREATE TABLE `example_table` (
  `example_col` tinyint(3) unsigned NOT NULL
);

第二个答案是“是”,不能在tinyint中使用-129或256的值。勾选此项,了解每个的上限和下限。

TINYINT
通过8位(1字节)表示。信息论的基本知识表明,只有256个不同的值(256=2^8)可以用8位表示

“tinyint”的8位有两种方式:

  • TINYINT UNSIGNED
    ,其中256个值被解释为
    0..255
  • TINYINT SIGNED
    (别名
    TINYINT
    ,因为
    SIGNED
    是默认值), 其中解释的范围为
    -128..127
当顶部位为
0
时,8位在
有符号
无符号
之间相同地表示0..127。但当顶部位为
1
时,8位表示负数或更大的正数

如果愿意,可以将256个值解释为“红色”、“黄色”、“绿色”等。这正是不同数据类型的情况:

ENUM('red', 'yellow', 'green')
8位字节的另一种解释为字符。请参见
CHAR
VARCHAR
TEXT


由于
TINYINT
必须是
SIGNED
UNSIGNED
,因此
TINYINT
列不能同时包含以下两个值:-111和222(在不同的行中)。如果需要,请使用
SMALLINT SIGNED
。(这导致了对数字的16位表示的讨论。)

1。因为
它的范围是从-128到255
不是真的。2.是的,您不能对256或-129使用
tinyint
。“所以当您知道您只需要正数时,请始终使用unnsigned。”这部分帮助。。。谢谢,谢谢。你的回答很有帮助。一代使用PHPMyAdmin。所以我将创建unsignedfromtattributes下拉选项。