`
ufopw
  • 浏览: 160245 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

sqlite的字段类型选择

阅读更多

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。

 

      SQLite最大的特点在于其数据类型为无数据类型(typelessness)。这意味着可以保存任何类型的数据到所想要保存的任何表的任何列中,无论这列声明的数据类型是什么。虽然在生成表结构的时候,要声明每个域的数据类型,但SQLite并不做任何检查。开发人员要靠自己的程序来控制输入与读出数据的类型。这里有一个例外,就是当主键为整型值时,如果要插入一个非整型值时会产生异常。

虽然,SQLite允许忽略数据类型,但是,仍然建议在Create Table语句中指定数据类型,因为数据类型有利于增强程序的可读性。另外,虽然在插入或读出数据的时候是不区分类型的,但在比较的时候,不同数据类型是有区别的

分享到:
评论

相关推荐

    Sqlite3时间存储格式问题?

    sqlite3数据库中时间字段的定义格式:Sqlite没有另外为存储日期和时间设定一个存储类集,内置的sqlite日期和时间函数能够将日期和时间以TEXT,REAL或INTEGER形式存放

    Sqlite大对象字段读写及数据流的解压缩

    1. 利用Sqlite创建BLOB类型字段,可用于图片或数据流的存储; 2. 实现BLOB类型字段的读写; 3. 利用ZlibNet对二进制字节流进行数据解压缩;

    易语言Sqlite数据库类模块

    易语言Sqlite数据库类模块源码,Sqlite数据库类模块,初始化_SQLITE,销毁_SQLITE,添加纪录_批量,添加纪录,读取记录_单个字段_文本值,读取记录_多个字段,修改记录,删除记录,取记录集,填充记录们to超级列表框,分页_初始...

    VS、VC++实现对象序列化保存到sqlite表blob类型字段中,包含blob字段的读取和保存,

    VS、VC++实现对象序列化保存到sqlite表blob类型字段中,包含blob字段的读取和保存,文档中有代码及说明实例。

    使用SQLite存储带有照片的联系人管理信息

    本示例使用SQLite存储带有照片的联系人管理信息, 一般由 BINARY 类型字段保存图像

    数据库转sqlite数据库

    1、可以转换access表中的主键、自增长字段、字段类型、字段长度、索引等 2、因sqlite不支持表属性(表描述)、字段描述, 程序会把这些信息存入access_table,access_column表中以供参考 3、如果access库中 自增长的...

    sqlite实现登录

    SQLite 是一个开源的嵌入式关系数据库,它可以减少应用程序管理数据的开销 , SQLite 可移植性好 、 很容易... 另外 , SQLite 在解 析REATE TABLE语句时,会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息。

    将硬盘中数千万零碎资源文件存储到 SQLite 的 BLOB 类型字段中,并能对外发布 HTTP 服务供访问

    将硬盘中数千万零碎资源文件存储到 SQLite 的 BLOB 类型字段中,并能对外发布 HTTP 服务供访问。主要用于 WebGIS 运维,是一款易用的 GIS 资源存储分发程序。可取代 Nginx、Tomcat、Wamp;在本机启动一个轻量级 Web ...

    python 获取sqlite3数据库的表名和表字段名的实例

    Python中对sqlite3数据库进行操作时,经常需要用到字段名,然而对于sqlite使用select语句并不能象MySql等数据库一样返回带字段名的字典数据集。特别是对于一个不熟悉的sqlite数据库,写代码时如果需要借助工具查看,...

    SQLite 中文帮助pdf

    select * from sqlite_temp_master --获取临时表集合 select * from sqlite_master --获取表集合 select CURRENT_DATE --获取...对于表中的每个字段,使用字段信息(字段名,数据类型,可否为空,缺省值)调用回叫函数。

    SQLite3 轻量级数据库及SQL语法指导

    选择查询: select 字段(以”,”隔开) from 表名 where 条件; 日期和时间: Select datetime('now') 日期: select date('now'); 时间: select time('now'); 总数:select count(*) from table1; 求和:select sum...

    access库转sqlite库

    1、可以转换access表中的主键、自增长字段、字段类型、字段长度、索引等 2、因sqlite不支持表属性(表描述)、字段描述, 程序会把这些信息存入access_table,access_column表中以供参考 3、如果access库中 自增长的...

    C# sqlite 中文乱码的解决方法

    可以解决中文乱码问题,共享给大家,解决UTF-8 转换 gb2312,直接放到Bin目录中并引用

    sqlite3数据库操作类

    此类集成了许多数据库常用操作和一些不常用操作的方法和实例(包括blob数据类型的操作,此blob类型的读写不限于单个读写,可自由灵活的操作多个blob字段);本程序为本人对sqlite3的包装,目的在于更方便的调用数据库...

    SQLite(SqliteDev)

    即在字段类型为”Integer Primary Key”时. 使用.NET操作SQLLITE  先下载ADO.NET2.0 Provider for SQLite。下载binaries zip版就可以了。下载完后解压缩,可以在bin目录下找到System.Data.SQLite.DLL。在vs2008...

    Sqlite Developer v4.15.zip

    表,字段名自动完成 自动SQL语法错误提示 支持代码格式化器 支持ANSI,UTF8和UTF16数据编辑 可定制的数据类型映射 可执行分号分割的多条SQL语句 执行监视器 可视化查询设计器 可视化表 ,视图 ,触发器和索引...

    sqlite数据库操作指令

    sqlite数据库操作指令1.增加字段2.删除字段3.修改字段类型......

    易语言SQLite3数据库操作类模块

    易语言SQLite3数据库操作类模块源码,SQLite3数据库操作类模块,取数据库句柄,置数据库句柄,是否已连接,连接,关闭,置密码,错误代码,最后错误,引擎版本,设超时时间,执行SQL,取表...字段类型到文本,字段属性到文本,创建表,

    Oralce数据导入到Sqlite的java实现

    将oracle表中相同表结构的内容导入到sqlite中。实现类型的自动替换,包括CLOB大字段转换为String类型。只需更改参数就可实现数据库间数据的导入。

    sqlite开发工具

    表,字段名自动完成 自动SQL语法错误提示 支持Unicode SQL代码格式化器 支持ANSI,UTF8和UTF16数据编辑. 可定制的数据类型映射. 可执行分号分割的多条SQL语句. SQL执行监视器. 可视化查询设计器. 可视化表 ,视图 ,...

Global site tag (gtag.js) - Google Analytics