SQLite3是一款不错的关系型数据库软件,包含了源码、sqlite3.dll、sqlite3.exe、sqlite3_analyzer.exe和sqlite3命令方式操作大全!软件易于管理、易于使用、稳定、易维护,目前已经捆绑到了PHP5.0上,使用起来更方便。有需要的朋友可以下载!
SQLite3介绍
SQLite3无需安装和管理复杂的配置,最大支持2tb的单个库文件,比目前流行的大多数数据库对数据的操作都要快(比MySQL快2倍,PostgreSQL快20倍),支持视图,子查询,触发器等。数据库文件可以在不同字节顺序的机器间自由共享等优点。当你更看中简单的管理、使用和维护数据库,而不是那些企业级数据库提供的不计其数的复杂功能的时候,使用SQLite3是一个比较明智的选择。
SQLite适合使用场景
网站
作为数据库引擎SQLite适用于中小规模流量的网站(也就是说,99。9%的网站)。SQLite可以处理多少网站流量在于网站的数据库有多大的压力。通常来说,如果一个网站的点击率少于100000次/天的话,SQLite是可以正常运行的。100000次/天是一个保守的估计,不是一个准确的上限。事实证明,即使是10倍的上述流量的情况下SQLite依然可以正常运行。
嵌入式设备和应用软件
因为SQLite数据库几乎不需要管理,因此对于那些无人值守运行或无人工技术支持的设备或服务,SQLite是一个很好的选择。SQLite能很好的适用于手机,PDA,机顶盒,以及其他仪器。作为一个嵌入式数据库它也能够很好的应用于客户端程序。
应用程序文件格式
SQLite作为桌面应用程序的本地磁盘文件格式取得了巨大成功。例如金融分析工具、CAD包、档案管理程序等等。一般的数据库打开操作需要调用sqlite3_open()函数,并且标记一个显式本地事务的起始点(BEGINTRANSACTION)来保证以独占的方式得到文件的内容。文件保存将执行一个提交(COMMIT)同时标记另一个显式本地事务起始点。这种事务处理的作用就是保证对于应用程序数据文件的更新是原子的、持久的、独立的和一致的。数据库里可以加入一些临时的触发器,用来把所有的改变记录在一张临时的取消/重做日志表中。当用户按下取消/重做按钮的时候这些改变将可以被回滚。应用这项技术实现一个无限级的取消/重做功能只需要编写很少的代码。
替代某些特别的文件格式
许多程序使用fopen(),fread(),或fwrite()函数创建和管理一些自定义的文件用来保存数据。使用SQLite替代这些自定义的文件格式将是一种很好的选择。
内部的或临时的数据库
对于那些有大量的数据需要用不同的方式筛选分类的程序,相对于编写同样功能的代码,如果你把数据读入一个内存中的SQLite数据库,然后使用连接查询和ORDERBY子句按一定的顺序和排列提取需要的数据,通常会更简单和快速。按照上述的方法使用内嵌的SQLite数据库将会使程序更富有灵活性,因为添加新的列或索引不用重写任何查询语句。
命令行数据集分析工具
有经验的SQL用户可以使用SQLite命令行程序去分析各种混杂的数据集。原是数据可以从CSV(逗号分隔值文件)文件中导入,然后被切分产生无数的综合数据报告。可能得用法包括网站日志分析,运动统计分析,编辑规划标准,分析试验结果。当然你也可以用企业级的客户端/服务器数据库来做同样的事情。在这种情况下使用SQLite的好处是:SQLite的部署更为简单并且结果数据库是一个单独的文件,你可以把它存储在软盘或者优盘或者直接通过email发给同事。
在Demo或测试版的时候作为企业级数据库的替代品
如果你正在编写一个使用企业级数据库引擎的客户端程序,使用一个允许你连接不同SQL数据库引擎的通用型数据库后台将是很有意义的。其更大的意义在于将SQLite数据库引擎静态的连接到客户端程序当中,从而内嵌SQLite作为混合的数据库支持。这样客户端程序就可以使用SQLite数据库文件做独立的测试或者验证。
数据库教学
因为SQLite的安装和使用非常的简单(安装过程几乎忽略不计,只需要拷贝SQLite源代码或sqlite。exe可执行文件到目标主机,然后直接运行就可以)所以它非常适合用来讲解SQL语句。同学们可以非常简单的创建他们喜欢的数据库,然后通过电子邮件发给老师批注或打分。对于那些感兴趣怎样实现一个关系型数据库管理系统(RDBMS)的高层次的学生,按照模块化设计且拥有很好的注释和文档的SQLite源代码,将为他们打下良好的基础。这并不是说SQLite就是如何实现其他数据库引擎的精确模型,但是很适合学生们了解SQLite是如何快速工作的,从而掌握其他数据库系统的设计实现原则。
试验SQL语言的扩展
SQLite简单且模块化的设计使得它可以成为一个用来测试数据库语言特性或新想法的优秀的原型平台。
SQLite支持哪些数据类型些?
NULL 值为NULL
INTEGER 值为带符号的整型,根据类别用1,2,3,4,6,8字节存储
REAL 值为浮点型,8字节存储
TEXT 值为text字符串,使用数据库编码(UTF-8, UTF-16BE or UTF-16-LE)存储
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 包含了 年、月、日、时、分、秒、千分之一秒。
如果将声明表的一列设置为 INTEGER PRIMARY KEY,则具有:
1.每当你在该列上插入一NULL值时, NULL自动被转换为一个比该列中最大值大1的一个整数;
2.如果表是空的, 将会是1;
算术函数
abs(X)返回给定数字表达式的绝对值。
max(X,Y[,...])返回表达式的最大值。
min(X,Y[,...])返回表达式的最小值。
random(*)返回随机数。
round(X[,Y])返回数字表达式并四舍五入为指定的长度或精度。
字符处理函数
length(X)返回给定字符串表达式的字符个数。
lower(X)将大写字符数据转换为小写字符数据后返回字符表达式。
upper(X)返回将小写字符数据转换为大写的字符表达式。
substr(X,Y,Z)返回表达式的一部分。
randstr()
quote(A)
like(A,B)
确定给定的字符串是否与指定的模式匹配。
glob(A,B)
条件判断函数
coalesce(X,Y[,...])
ifnull(X,Y)
nullif(X,Y)
集合函数
avg(X)返回组中值的平均值。
count(X)返回组中项目的数量。
max(X)返回组中值的最大值。
min(X)返回组中值的最小值。
sum(X)返回表达式中所有值的和。