数据类型
来源:互联网 发布:论坛系统的数据库设计 编辑:程序博客网 时间:2024/04/28 15:06
一、数据类型
SQLite3 支持五种数据类型。NULL,INTEGER,REAL,TEXT,BLOB
NULL:是一个NULL值
INTEGER:是一个有符号的整数,可以是1,2,3,4,6 或者 8 字节,取决于所存值的数量级
REAL:是一个实数,是一个8字节的IEEE实数
TEXT:是文本字符串,以数据库编码形式存储(UTF-8, UTF-16BE or UTF-16-LE)
BLOB:是一个BLOB类型,以输入的形式存储
任何一个列都可以存储任何类型的数据,除了INTEGER PRIMARY KEY 审明的列。
所有提交给SQLite的值在执行前都会被赋于一种数据类型。规则如下:
1、写在SQL语句中,用单引号或双引号括起来的,被赋于TEXT类型。没有单引号或双引号的数字,并且也没有小数点和指数的被赋于
INTEGER。没有单引号或双引号的数字,有小数点或指数的被赋于REAL。如果值是NULL,则被赋于NULL。以X'ABCD'指定的文本被
赋于BLOB。
2、以sqlite3_bind_* 接口提交的被赋于同所用接口相同的类型。
二、列的亲合类型
在SQLite3中,值的类型和值本身是相关联的,而不是值所在的列或变量。
为了使SQLite3有最大的兼容性,SQLite3支持列类型亲合类型(column type affinity)。列的类型亲合类型是指SQLite给列中存储的数据
推荐一种类型,是推荐,而不是强制的。理论上任何列可以存储任何类型的数据。可以给一些列默认推荐一个优先的类型,这个优先
类型就是亲合类型。
SQLite3 中提供五种亲合类型。TEXT,NUMERIC,INTEGER,REAL,NONE。
TEXT:存储NULL,TEXT,BLOB类型的数据。如果所要存的值是数字的,将先被转换成TEXT,再存储
NUMERIC:能存所有的数据类型。当一个TEXT数据被存入时,先试图将其转换成INTEGER或REAL,成功则按INTEGER或REAL存储,否则按TEXT
存储,对于NULL和BLOB类型不做任何转换。
INTEGER:规则和NUMERIC一样,但对于浮点型要转换成INTEGER。
REAL:规则和NUMERIC一样,但对于INTEGER要转换成REAL
NONE:存储将不做任何转换
三、列亲合类型的确定
规则如下:
1、如果类型审明部分包括INT则有INTEGER亲合类型
2、如果类型审明部分包括CHAR,CLOB,TEXT有TEXT亲合类型,VARCHAR也是
3、如果类型审明部分包括BLOB或者没有类类型审明,则有NONE亲合类型
4、如果类型审明部分包括REAL,FLOA,DOUB则有REAL亲合类型
5、其它情况则视为NUMERIC亲合类型
使用"CREATE TABLE <table> AS SELECT..." 语句建的表的各列是NONE亲合类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- Installshield 2008 And 脚本 (四)
- 一个很好用开源的定时任务组件
- ASP.NET中使用JS集锦
- 对于test case我们应该注意的
- PHP穷举密码生成
- 数据类型
- linux下串口通讯相关资料
- PE结构各字段偏移参考
- 如何用xsl调用xml文件
- Lucene倒排索引原理
- 为自己写博客
- Refresh a GridView control on the parent page, from a pop up window
- hibernate3的缓存管理
- 游标