具有INT类型数据的成功INSERT是否需要撇号?

时间:2016-05-05 15:55:38

标签: mysql

我们说yzx中的列,类型INT的数据插入是否需要在撇号内?

INSERT INTO x (y, ..., z)
VALUES (4, ..., 9);

VALUES ('4', ..., '9');

第二个示例是否将值插入字符?

我通过字面意思 phpMyAdmin 的GUI测试了插入内容,发现他们插入了带有撇号的INT类型,但我没有确保使用GUI时控制台中显示的语法是否正确。我还通过 PHP 脚本进行了测试,没有撇号并成功插入,所以我不确定。

2 个答案:

答案 0 :(得分:3)

列类型确定变量类型,而不是引号/撇号。撇号可以用于整数,它不会破坏任何东西,但只要列是int就不需要它们。

答案 1 :(得分:1)

如果列是int列,则它只存储数值,而不是字符串字符。当你插入数字列时,MySQL知道'1'是1。所以不,当插入数字列时,数字不需要在引号中。

如果尝试将实际字符串字符值插入int列,则会出现错误。例如:

mysql> insert into test values('a');
ERROR 1366 (HY000): Incorrect integer value: 'a' for column 'id' at row 1

关于字符串和整数实际存储在二进制中的方式,可以说更多关于这个主题的内容。如何存储和转换值称为字符集 - 您可能听说过“utf-8”或ASCII等内容。 MySQL有能力在这些(http://dev.mysql.com/doc/refman/5.7/en/cast-functions.html)之间进行转换,但这可能超出了这个问题的范围:)