我知道 tinyint
是一个单字节整数(顺便问一下,它是有符号的还是无符号的?)。参数 (3)
代表什么意思?我已经搜索过了,但没找到答案。
SQLite在列上“模拟实现”数据类型。基本上,它接受标准的SQL语法,但忽略其他方面。(但请参见类型亲和性和强制转换。)
请参见“差异”文档中的清单类型。
大多数SQL数据库引擎使用静态类型。每个表中的列都关联有一个数据类型,只允许存储该特定数据类型的值在该列中。SQLite通过使用显式类型定义来放松这种限制。在显式类型定义中,数据类型是值本身的属性,而不是存储该值的列的属性。因此,SQLite允许用户将任何数据类型的任何值存储到任何列中,而不考虑该列的声明类型。(对于这条规则有一些例外情况:INTEGER PRIMARY KEY列只能存储整数。并且当可以时,SQLite尝试将值强制转换为列的声明数据类型。)
还请参见 SQLite Version 3中的数据类型和类型亲和性:
列的亲和性由列的声明类型确定,按照以下顺序的规则确定:
如果声明类型包含字符串 "INT",则分配 INTEGER 亲和性。
[为了简洁起见省略其他规则]
对于其他数据库,请参阅相应的数据库特定文档 :-)
tinyint
和tinyint(3)
之间的任何区别。 - mk12