一个既小又好用的关系型数据库,代替MySql。已经捆绑到了PHP5.0上,使用就像ASP和ACCESS结合一样方便。
SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
现在好多程序的配置文件等都是采用这个SQLite来存储的,比如大名鼎鼎的FireFox....
SQLITE操作入门:
sqlite提供的是一些C函数接口,你可以用这些函数操作数据库。通过使用这些接口,传递一些标准 sql 语句(以 char * 类型)给 sqlite 函数,sqlite 就会为你操作数据库。
sqlite 跟MS的access一样是文件型数据库,就是说,一个数据库就是一个文件,此数据库里可以建立很多的表,可以建立索引、触发器等等,但是,它实际上得到的就是一个文件。备份这个文件就备份了整个数据库。
sqlite 不需要任何数据库引擎,这意味着如果你需要 sqlite 来保存一些用户数据,甚至都不需要安装数据库(如果你做个小软件还要求人家必须装了sqlserver 才能运行,那也太黑心了)。
sqlite3一些常用Sql语句操作:
创建表: create table 表名(元素名 类型,…);
删除表: drop table 表名;
插入数据: insert into 表名 values(, , ,) ;
创建索引: create [unique] index 索引名on 表名(col….);
删除索引: drop index 索引名(索引是不可更改的,想更改必须删除重新建)
删除数据: delete from 表名;
更新数据: update 表名 set 字段=’修改后的内容’ where 条件;
增加一个列: Alter table 表名 add column 字段 数据类型;
选择查询: select 字段(以”,”隔开) from 表名 where 条件;
日期和时间: Select datetime('now')
日期: select date('now');
时间: select time('now');
总数:select count(*) from table1;
求和:select sum(field1) from table1;
平均:select avg(field1) from table1;
最大:select max(field1) from table1;
最小:select min(field1) from table1;
排序:select 字段 from table1 order by 字段(desc或asc) ;(降序或升序)
分组:select 字段 from table1 group by 字段,字段… ;
限制输出:select 字段 from table1 limit x offset y;
= select 字段 from table1 limit y , x;
(备注:跳过y行,取x行数据)
(操作仍待完善)…
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)返回表达式中所有值的和。
其他函数
typeof(X)返回数据的类型。
last_insert_rowid()返回最后插入的数据的 ID 。
sqlite_version(*)返回 SQLite 的版本。
change_count()返回受上一语句影响的行数。
last_statement_change_count()
二.有关事务的操作
(成批操作的时候,启动事务,比不启动事务快n倍)
开始事物处理
BEGIN TRANSACTION;
…………..
进行对数据库操作
…………..
事物提交
COMMIT;
具体事例如下:
假设有一个 t1 表,其中有 "a", "b", "c" 三列, 如果要删除列 c ,以下过程描述如何做:
BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
CREATE TABLE t1(a,b);
INSERT INTO t1 SELECT a,b FROM t1_backup;
DROP TABLE t1_backup;
COMMIT;
更新日志:
A command-line shell for accessing and modifying SQLite databases. This program is compatible with all versions of SQLite through 3.7.15.2 and beyond.



















MySQL图形管理工具(SQLyog MySQL)v12.0.9 中文特别版
Sqlite工具(SqliteStudio)v3.3.3 绿色中文版
MySQL图形管理工具(SQLyog)10.2 绿色中文版
sql server 2000数据库管理简体中文版
mysql图形化界面软件(navicat 8 for mysql)8.2.12 中文版
MySQL-Front(Mysql管理工具)V5.3.2.42 中文官方安装版
数据库比较同步工具(SQL Compare)10.4.8.87 完整版
极佳数据库恢复工具v3.1 绿色免费版
MySQL集群(MySQL Cluster)7.6.9 官方最新版
CouchDBV1.0.1 免费版