SQLite 中文指南之FAQ第1/6页_数据库文摘

来源:脚本之家  责任编辑:小易  

Sqlite分很多种,windows和linux下的sqlite数据库不一样,所以要先说清楚平台。如果是windows下使用原版的Sqlite,C#和Delphi之类调用Sqlite的密码都是可以破解的。你可以搜 Charltsing,在博客园找我www.zgxue.com防采集请勿采集本网。

1. 如何创建自增字段?

2. SQLite 支持哪些数据类型?

这个是改为GBK的啦,不是那个UTF-8

3. 为什么能向 SQLite 数据库的整型字段中插入字符串?

SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供一个样使用sqlite3的简要说明。开始 启动sqlite3程序,仅仅需要敲入带有SQLite数据

4. 为什么 SQLite 认为表达式 '0'=='00' 为真?

方法/步骤 首先下载 Navicat for SQLite,下载后解压缩。运行navicat.exe 这个主程序,在左上角点击连接 在弹出窗口中输入连接名,选择类型,然后在下面选择数据库文件,或者数据库保存位置。

5. 为什么 SQLite 不允许在同一张表里使用 '0' 和 '0.0' 作为两个不同的行的主键?

SQLite是文件型数据库,有命令行的工具sqlite3.exe(window版本),有第三方的GUI工具(如Database Browser,SQLiteman.);但更常见的使用方式是在你的应用程序或脚本中通过相应的接口访问。

6. 为什么不能在 Linux box 中读取在 SparcStation 中创建的 SQLite 数据库?

between指的一个范围,如从1到10 in是指的一个集合,如(1,5,7),即数字 1,5,7

7. 多个应用程序或者同一个应用程序的多个例程能同时存取同一个数据库文件吗?

8. SQLite是线程安全的吗?

9. 如何列出一个 SQLite 数据库中的所有的表/索引?

10. SQLite数据库是否有已知的大小限制?

11. 在 SQLite 中 VARCHAR 的最大长度是多少?

12. SQLite 是否支持 BLOB 类型?

13. 如何从一个已存在的 SQLite 数据表中添加/删除字段?

14. 我删除了很多数据但是数据库文件并没有减小,是不是 Bug?

15. 是否能将 SQLite 用于商业用途而不用交版权费用?

16. 我如何使用含有单引号(')的字符串?

17. SQLITE_SCHEMA 错误代表什么?

18. 为什么ROUND(9.95,1) 返回 9.9 而不是 10.0? 难道9.95 不该向上进位么?

(1) 如何创建自增字段?

简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加。

这里是详细的答案: 从 SQLite 的 2.3.4 版本开始,如果你将一个表中的一个字段声明为 INTEGER PRIMARY KEY,那么无论你何时向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大值大 1 的整数;如果表为空,那么将被更换为 1。比如,假设你有这样的一张数据表:

CREATE TABLE t1(

a INTEGER PRIMARY KEY,

b INTEGER

);

在这张数据表里,声明

INSERT INTO t1 valueS(NULL,123);

在逻辑意义上等价于:

INSERT INTO t1 valueS((SELECT max(a) FROM t1)+1,123);

一个新的API函数 sqlite3_last_insert_rowid() 返回最近的插入操作的整形键

注意这个整型键始终比之前插入表中的最后一个键大1。新键相对于表中的已有键来说是唯一的, 但它可能与之前从表中删除的键值重叠。要始终得到在整个表中唯一的键,在INTEGER PRIMARY KEY的声明之前加关键词AUTOINCREMENT.这样被选的键将总是比表中已存在的最大键大1。若可能的 最大键已存在于表中,INSERT操作将失败并返回一个SQLITE_FULL错误码.

(2) SQLite 支持哪些数据类型?

参见 http://www.sqlite.org/datatype3.html.

(3) 为什么能向 SQLite 数据库的整型字段中插入字符串?

这是一个功能,不是一个 bug。你可以在任何字段中放任何信息,而不用管字段声明为什么类型。 你可以往整型字段中插入任意长度的字符串,或者往布尔字段中插入浮点数,或者往字符字段中 插入日期。在 CREATE TABLE 命令中你指定给这个字段的数据类型不会限制插入这个字段的数据。 所有的字段可以插入任意长度的字符串。但对于 INTEGER PRIMARY KEY 字段例外。这种字段只能 存放一个64位的整数,否则会出错。

但SQLite会默认你希望使用声明的字段类型。所以,比如你希望在一个声明为INTEGER的字段 中插入一个字符串,SQLite会试图将其转换为一个整数。如果转换成功,那么整数将被插入,否 则插入字符串,这种特性有时被称作type or column affinity.

123456下一页阅读全文

Sqlite默认保存数据是用UTF8格式,而现有程序开发工具都是默认GB2312的格式,所以你编程写的中文不转码直接写到库里后,用任何数据库工具看肯定都是乱码。但是读出来之后仍然是GB2312,所以显示正常。反之如果你用数据库工具写中文,则默认存UTF8格式,用程序读出来就是乱码。也就是你说的不可兼得。如果要实现能够编程和数据库工具读写都正常,必须要转码。也就是说,保存时候,要把GB2312转成UTF8,而读出时候需要把UTF8在转成GB2312。网上有源程序可用,叫做CCodingConv的类,你搜一个源码,在每次执行SQL语句之前,将其转换一下即可。将整个SQL语句进行转换,E文的会保持不变,而中文的会自动转换成合适的编码,执行即可实现要求内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • android开发之sqlite的使用方法
  • sqlite中的b-tree实现细节分析
  • sqlite中文乱码问题原因分析及解决
  • sqlite3中的日期时间函数使用小结
  • sqlite3 top的查询及limit语法介绍
  • sqlite优化方法
  • sqlite 常用函数 推荐
  • sqlite 错误码整理
  • sqlite常用语句以及sqlite developer的使用与注册
  • sqlite中的b-tree实现细节分析
  • 数据库连接方式汇总
  • @@identity与scope_identity()
  • 比较sql server与oracle、db2
  • sqlite 中文指南之faq
  • SQlite中文问题!谁有完美解决方案?
  • 怎样破解sqlite数据库的密码?
  • eclipse显示SQLite数据库中文问题
  • 如何是使用firefox sqlite
  • eclipse如何显示SQLite数据库中文问题
  • sqlite的几个常用方法
  • 如何创建sqlite数据库
  • 如何使用SQLite
  • sqlite between 和 in 的区别
  • SQLite数据库优缺点分析你会不?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页数据库文摘android开发之sqlite的使用方法sqlite中的b-tree实现细节分析sqlite中文乱码问题原因分析及解决sqlite3中的日期时间函数使用小结sqlite3 top的查询及limit语法介绍sqlite优化方法sqlite 常用函数 推荐sqlite 错误码整理sqlite常用语句以及sqlite developer的使用与注册sqlite中的b-tree实现细节分析数据库连接方式汇总@@identity与scope_identity()比较sql server与oracle、db2sqlite 中文指南之faqsqlite 中文指南之faq数据库连接方式汇总比较sql server与oracle、db2sqlite中的b-tree实现细节分析@@identity与scope_identity()比较sql server与oracle、db2数据库连接方式汇总@@identity与scope_identity()sqlite 中文指南之faqsqlite中的b-tree实现细节分析
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved