`

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代码

    CREATE TABLE ex2(   
    a VARCHAR(10),   
    b NVARCHAR(15),  
    c TEXT,   
    d INTEGER,  
    e FLOAT,  
    f BOOLEAN,   
    g CLOB,   
    h BLOB,   
    i TIMESTAMP,  
    j NUMERIC(10,5),   
    k VARYING CHARACTER (24),   
    l NATIONAL VARYING CHARACTER(16)  
    );

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、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。 

    所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。
原文地址:http://blog.csdn.net/jin868/article/details/5961263
分享到:
评论

相关推荐

    sqlite数据类型

    sqlite数据类型说明 .

    sqlite数据类型详细介绍+javaJDBC连接sqlite小例子

    以上就是SQLite数据类型和使用Java JDBC连接SQLite的基本知识。通过这些概念,你可以开始编写自己的SQLite数据库应用,实现数据的存储和查询。在实际开发中,还可以利用PreparedStatement进行参数化查询,提高代码...

    C#与SQLServer、SQLite之间的数据类型对应表

    通过该对应表可以方便的创建跟代码类型一致的不同数据库,尤其适用于使用EntityFramework进行C#程序开发的技术人员,可以方便的创建跨数据库操作。

    SQLite3中的数据类型

    在SQLite3中,数据类型的设计与许多其他数据库系统有所不同,它具有灵活性且易于理解。下面将详细介绍SQLite3中的数据类型及其特点。 1. NULL类型 SQLite3允许字段值为NULL,这意味着没有任何值。NULL并不是一种...

    Sqlite3支持的数据类型

    SQLite支持多种数据类型,这些数据类型对于理解和有效地使用SQLite数据库至关重要。下面将详细介绍SQLite3支持的数据类型及其特性。 1. NULL(空值) SQLite中的NULL类型代表一个未知或未定义的值。它不同于其他...

    SQLite_sqlitec#_

    8. **类型映射**: SQLite 自动处理大多数 .NET 数据类型到 SQLite 数据类型的转换。例如,`DateTime` 映射为 `TIMESTAMP`,`int` 映射为 `INTEGER`。 9. **设计模式**: 在实际开发中,ORM(对象关系映射)框架如 ...

    64位System.Data.SQLite.dll

    2. 数据类型映射:System.Data.SQLite将.NET数据类型与SQLite数据类型进行了映射,例如,.NET的Int32对应SQLite的INTEGER,String对应TEXT等。 3. 支持事务:通过Transaction对象,开发者可以在SQLite数据库中执行...

    SQlite数据库笔记总结详解

    2. SQLite数据类型: - NULL:表示空值。 - INTEGER:整数,可自动转换为BIGINT、INTEGER、SMALLINT或TINYINT。 - REAL:浮点数,等同于DOUBLE PRECISION或FLOAT。 - TEXT:文本字符串。 - BLOB:二进制大对象...

    sqlite3适配任何数据类型的记录集接口C代码

    本项目提供了一个C语言编写的接口,它适配了SQLite3,能够处理任何数据类型,包括对BLOB(Binary Large Object)这种复杂数据类型的读写操作。 首先,我们来详细了解一下SQLite3。SQLite3是一个开源的、自包含的、...

    sqlite3实验指导书

    首先,文档中提到了SQLite数据类型的细节。SQLite的数据类型比较灵活,实际上它不强制数据类型,允许存储任何类型的数据到任何列中。尽管如此,为了使用数据类型的好处,如提高效率和易于理解,SQLite定义了以下几种...

    sqlite3数据库使用基础讲解

    #### 一、SQLite 数据类型概述 SQLite 是一款轻量级的嵌入式数据库引擎,与其他大多数 SQL 数据库不同,它采用了一种更加灵活的动态类型系统。这意味着数据值的类型与其实际内容相关联,而非仅仅依赖于其所在的容器...

    System.Data.SQLite.dllSystem.Data.SQLiteSystem.Data.SQLite.dll

    7. **数据类型映射**:将.NET数据类型转换为SQLite数据类型,反之亦然。 在开发过程中,若缺少System.Data.SQLite.dll文件,会导致.NET应用程序无法正常连接和操作SQLite数据库。因此,确保该文件在项目引用中是至...

    Sqlite_Class.rar_class_sqlite_sqlite class_sqlite 类_sqlite3x_con

    类库需要提供数据类型转换机制,以便于 C++ 类型与 SQLite 数据类型之间的转换。 8. **数据库元数据访问**:可能包含获取表信息、索引信息以及列信息的方法,帮助开发者了解数据库结构。 9. **游标(Cursor)操作*...

    System.Data.SQLite(32、64通用版本)

    3. **数据类型映射**:System.Data.SQLite提供了.NET数据类型与SQLite数据类型的自动映射,例如,将.NET的`DateTime`映射为SQLite的`TIMESTAMP`,使得数据交互更加便捷。 4. **异步支持**:随着异步编程在.NET中的...

    SQLite语法(HTML版)

    一、SQLite数据类型 SQLite支持五种基本数据类型:NULL、INTEGER、REAL、TEXT和BLOB。NULL表示空值;INTEGER用于存储整数,可自动适配大小,如INT、BIGINT等;REAL是浮点数,相当于其他数据库中的FLOAT或DOUBLE;...

    sqlite-amalgamation-3080803.zip_sqlite

    3. **SQLite 数据类型**:SQLite支持多种数据类型,如NULL、INTEGER、REAL、TEXT和BLOB,这些数据类型可以灵活适应不同的存储需求。开发者需要了解每种类型的特点和适用场景。 4. **SQL语法**:SQLite遵循SQL标准,...

    SQLite关系型数据库的使用

    #### 六、SQLite数据类型 SQLite支持五种数据类型: 1. **NULL**:表示空值。 2. **INTEGER**:整数类型,根据值的大小自动调整存储空间。 3. **REAL**:浮点数类型,存储为8字节。 4. **TEXT**:文本字符串类型,...

    devart.dotConnect for SQLite v1.00

    4. **类型映射**:`dotConnect for SQLite` 自动将 .NET 类型与 SQLite 数据类型进行映射,确保数据在 .NET 应用程序和数据库之间无缝转换。例如,`System.DateTime` 对应 SQLite 的 DATETIME 类型。 5. **事务处理...

    android sqlite

    SQLite数据类型采用动态数据类型,会根据存入值的类型自动判断。基本数据类型包括:NULL、INTEGER、REAL、TEXT和BLOB。其中,VARCHAR是TEXT类型的一个子集,它是一个长度可变的字符串类型。SQLite的操作语句比较简单...

    SQLite入门与分析

    三、SQLite数据类型 SQLite支持多种数据类型,包括NULL、INTEGER、REAL、TEXT和BLOB。NULL表示值未知或未定义;INTEGER用于整数,可以存储非常大的数值;REAL是浮点数;TEXT用于存储文本数据,支持多种编码;BLOB...

Global site tag (gtag.js) - Google Analytics