SQLite数据库数据类型详解数据类型类型描            述
bit整型bit 数据类型是整型,其值只能是0、1或空值。这种数据类型⽤于存储只有两种可能值的数据,如Yes 或No、True 或Fa lse 、On 或Off
int整型int 数据类型可以存储从- 231(-2147483648)到231 (2147483 647)之间的整数。存储到数据库的⼏乎所有数值型的数据都可以⽤这种数据类型。这种数据类型在数据库⾥占⽤4个字节
smallint整型smallint 数据类型可以存储从- 215(-32768)到215(32767)之间的整数。这种数据类型对存储⼀些常限定在特定范围内的数值型数据⾮常有⽤。这种数据类型在数据库⾥占⽤2 字节空间
tinyint整型tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数⽬的数值时很有⽤。 这种数据类型在数据库中占⽤1 个字节
numeric 精确
数值
numeric数据类型与decimal 型相同
decimal 精确
数值
decimal 数据类型能⽤来存储从-1038-1到1038-1的固定精度和范围的数值型数据。使⽤这种数据类型时,必须指定范围和精度。 范围是⼩数点左右所能存储的数字的总位数。精度是⼩数点右边存储的数字的位数
money 货币
money 数据类型⽤来表⽰钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之⼀
smallmoney 货币
smallmoney 数据类型⽤来表⽰钱和货币值。这种数据类型能存储从-214748.3648 到214748.3647 之间的数据,精确到货币单位的万分之⼀
float 近似
数值
float 数据类型是⼀种近似数值类型,供浮点数使⽤。说浮点数是近似的,是因为在其范围内不是所有的数都能精确表⽰。浮点数可以是从-1.79E+308到1.79E+308 之间的任意数
real 近似
数值
real 数据类型像浮点数⼀样,是近似数值类型。它可以表⽰数值在-3.40E+38到3.40E+38之间的浮点数
datetime ⽇期
时间
datetime数据类型⽤来表⽰⽇期和时间。这种数据类型存储从1753年1⽉1⽇到9999年12⽉3 1⽇间所有的⽇期和时间数据, 精确到三百分之⼀秒或3.33毫秒
Smalldatetime ⽇期
时间
smalldatetime 数据类型⽤来表⽰从1900年1⽉1⽇到2079年6⽉6⽇间的⽇期和时间,精确到⼀分钟
cursor 特殊
数据
cursor 数据类型是⼀种特殊的数据类型,它包含⼀个对游标的引⽤。这种数据类型⽤在存储过程中,⽽且创建表时不能⽤
timestamp 特殊
数据
varchar2最大长度timestamp 数据类型是⼀种特殊的数据类型,⽤来创建⼀个数据库范围内的唯⼀数码。 ⼀个表中只能有⼀个timestamp 列。每次插⼊或修改⼀⾏时,timestamp列的值都会改变。尽管它的名字中有“time”, 但timestamp列不是⼈们可识别的⽇期。在⼀个数据库⾥,timestamp值是唯⼀的
Uniqueidentifier 特殊
数据
Uniqueidentifier数据类型⽤来存储⼀个全局唯⼀标识符,即GUID。GUID确实是全局唯⼀的。这个数⼏
乎没有机会在另⼀个系统中被重建。可以使⽤NEWID 函数或转换⼀个字符串为唯⼀标识符来初始化具有唯⼀标识符的列
char 字符
char数据类型⽤来存储指定长度的定长⾮统⼀编码型的数据。当定义⼀列为此类型时,你必须指定列长。当你总能知道要存储的数据的长度时,此数据类型很有⽤。例如,当你按加4个字符格式来存储数据时,你知道总要⽤到10个字符。
此数据类型的列宽最⼤为8000 个字符
varchar 字符
varchar数据类型,同char类型⼀样,⽤来存储⾮统⼀编码型字符数据。与char 型不⼀样,此数据类型为变长。当定义⼀列为该数据类型时,你要指定该列的最⼤长度。 它与char数据类型最⼤的区别是,存储的长度不是列长,⽽是数据的长度
text 字符
text 数据类型⽤来存储⼤量的⾮统⼀编码型字符数据。这种数据类型最多可以有231-1或20亿个字符
nchar 统⼀
编码
字符
nchar 数据类型⽤来存储定长统⼀编码字符型数据。统⼀编码⽤双字节结构来存储每个字符,⽽不是⽤单字节(普通⽂本中的情况)。它允许⼤量的扩展字符。此数据类型能存储4000种字符,使⽤的字节空间上增加了⼀倍
nvarchar 统⼀
编码
字符
nvarchar 数据类型⽤作变长的统⼀编码字符型数据。此数据类型能存储4000种字符,使⽤的字节空间增加了⼀倍
ntext 统⼀
编码
字符
ntext 数据类型⽤来存储⼤量的统⼀编码字符型数据。这种数据类型能存储230 -1或将近10亿个字符,且使⽤的字节空间增加了⼀倍
binary ⼆进
制数
据类
binary数据类型⽤来存储可达8000 字节长的定长的⼆进制数据。当输⼊表的内容接近相同的长度时,你应该使⽤这种数据类型
varbinary ⼆进
制数
据类
varbinary 数据类型⽤来存储可达8000 字节长的变长的⼆进制数据。当输⼊表的内容⼤⼩可变时,你应该使⽤这种数据类型
image ⼆进
制数
据类
image 数据类型⽤来存储变长的⼆进制数据,最⼤可达231-1或⼤约20亿字节
sqlite的⼀个特性:sqlite是⼤⼩写不敏感的!
⼀般数据库采⽤的固定的静态数据类型,⽽SQLite采⽤的是动态数据类型,会根据存⼊值⾃动判断。SQLite具有以下五种数据类型:
1.NULL:空值。
2.INTEGER:带符号的整型,具体取决有存⼊数字的范围⼤⼩。
3.REAL:浮点数字,存储为8-byte IEEE浮点数。
4.TEXT:字符串⽂本。
5.BLOB:⼆进制对象。
但实际上,sqlite3也接受如下的数据类型:
smallint 16 位元的整数。
interger 32 位元的整数。
decimal(p,s) p 精确值和 s ⼤⼩的⼗进位整数,精确值p是指全部有⼏个数(digits)⼤⼩值,s是指⼩数点後有⼏位数。如果没有特别指定,则系统会设为 p=5; s=0 。
float  32位元的实数。
double  64位元的实数。
char(n)  n 长度的字串,n不能超过 254。
varchar(n) 长度不固定且其最⼤长度为 n 的字串,n不能超过 4000。
graphic(n) 和 char(n) ⼀样,不过其单位是两个字元 double-bytes, n不能超过127。这个形态是为了⽀援两个字元长度的字体,例如中⽂字。
vargraphic(n) 可变长度且其最⼤长度为 n 的双字元字串,n不能超过 2000
date  包含了 年份、⽉份、⽇期。
time  包含了 ⼩时、分钟、秒。
timestamp 包含了 年、⽉、⽇、时、分、秒、千分之⼀秒。
datetime 包含⽇期时间格式,必须写成'2010-08-05'不能写为'2010-8-5',否则在读取时会产⽣错误!
Sqlite常⽤数据类型:
这句话本⾝就有问题,因为:SQLite是⽆类型的. 这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中, ⽆论这列声明的数据类型是什么(只有⾃动递增Integer Primary Key才有⽤). 对于SQLite来说对字段不指定类型是完全有效的. 如:
Create Table ex3(a, b, c);
即使SQLite允许忽略数据类型, 但是仍然建议在你的Create Table语句中指定数据类型. 因为数据类型对于你和其他的程序员交流, 或者你准备换掉你的数据库引擎是⾮常有⽤的. SQLite⽀持常见的数据类型, 如:
SQL代码
1. CREATE TABLE ex2(
2. a VARCHAR(10),
3. b NVARCHAR(15),
4. c TEXT,
5. d INTEGER,
6. e FLOAT,
7. f BOOLEAN,
8. g CLOB,
9. h BLOB,
10. i TIMESTAMP,
11. j NUMERIC(10,5),
12. k VARYING CHARACTER (24),
13. l NATIONAL VARYING CHARACTER(16)
14. );
char、varchar、text和nchar、nvarchar、ntext的区别
1、CHAR。CHAR存储定长数据很⽅便,CHAR字段上的索引效率级⾼,⽐如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不⾜的⾃动⽤空格填充。
2、VARCHAR。存储变长数据,但存储效率没有CHAR⾼。如果⼀个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这⼀个字节⽤于保存实际使⽤了多⼤的长度。从空间上考虑,⽤varchar合适;从效率上考虑,⽤char合适,关键是根据实际情况到权衡点。
3、TEXT。text存储可变长度的⾮Unicode数据,最⼤长度为2^31-1(2,147,483,647)个字符。
4、NCHAR、NVARCHAR、NTEXT。这三种从名字上看⽐前⾯三种多了个“N”。它表⽰存储的是Unicode数据类型的字符。我们知道字符中,英⽂字符只需要⼀个字节存储就⾜够了,但汉字众多,需要两个字节存储,英⽂与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题⽽产⽣的,它所有的字符都⽤两个字节表⽰,即英⽂字符也是⽤两个字节表⽰。nchar、nvarc
har的长度是在1到4000之间。和char、varchar⽐较起来,nchar、nvarchar则最多存储4000个字符,不论是英⽂还是汉字;⽽char、varchar最多能存储8000个英⽂,4000个汉字。可以看出使⽤nchar、nvarchar数据类型时不⽤担⼼输⼊的字符是英⽂还是汉字,较为⽅便,但在存储英⽂时数量上有些损失。
所以⼀般来说,如果含有中⽂字符,⽤nchar/nvarchar,如果纯英⽂和数字,⽤char/varchar。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。