SQLite是一个轻量的数据库,他在数据存储、管理、维护等各方面都相当出色,功能也非常的强大。SQLite具备下列特点:
1.轻量级
使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小。
2.独立性
SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”。
3.隔离性
SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件夹内,方便管理和维护。
4.跨平台
SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的手机系统也是能够运行,比如:Android。
5.多语言接口
SQLite 数据库支持多语言编程接口。
6.安全性
SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一个可以写入数据。
SQLite的有很多种操作方法,我就只写我们经常用到的增、删、改、查好了。
在下面的说明中,我们假定我们要操作的数据表为 SQLiteData.
1、SQLite数据的增加
我们可以通过如下语句创建一个新表
create [temp] table SQLiteData(
id integer primary key,
name text not null collate nocase,
phone text not null default 'UNKNOW',
unique(name,phone));
这样,一个名为SQLiteData的数据表就创建好了。并且它有三个已创建的列id、name、phone;我们为把id的类型设置成了integer (整型) 并且把它设置为primary key(主键)。name为text类型,并且声明不能为空,并且排序不分大小写(collate nocase)。phone也为text 型且默认为“UNKNOW”.表一级的约束为unique(独一无二的),定义在了name和phone上。
要插入记录的话,我们可以使用以下语句:
insert into SQLiteData(name,phone) values (string1,string2);
这样我们就为SQLiteData这个表插入了新的一行,id未设置,name、phone的值分别为string1和string2.
要为所有的列插入对应的值我们可以省略列名,写成
insert into SQLiteData values (?,string1,string2);
这样子和上面语句执行结果是一样的。
或者可以通过导入已存在数据表数据来增加数据。
insert into data2 select * from SQLiteData;
这样就把SQLiteData的全部数据导入到了已创建的data2数据表中了。
2、SQLite数据的删除
对于删除数据,我们可进行如下操作
delete from SQLite where name='liu';
这样就删掉了数据表中 name 值为 liu的所有数据。
3、SQLite数据的修改
修改(更新)数据在SQLite中也非常容易
update SQLiteData set name="you" where name="me';
这样子就会把name那列名为 me 的值改为 you.我们要修改表一级的东西时也是非常方便。
比如说要修改表的名字到SQLiteDatas
alter table SQLiteData rename to SQLiteDatas;
要增加一列remark
alter table SQLiteData add column remark text;
4、SQLite数据的查询
数据库的查询可能是整个操作中最繁琐的步骤,这也是我将它放在最后来讲的原因。但它的繁琐不是因为它的设计不合理之类的,而是因为它有很多种方法可以用,非常方便的达到我们想要的结果。
通用的语句是
select heading from tables where predicate group by columns having predicate order by columns limit count,offset;
除了select之外,其他的子句都是可选的。最常见的select命令由select from where 组成。如
select name from SQLiteData where name='liu' and phone='10086';
LIKE和 GLOB
这是一个很有用的操作符,它可以匹配到相似格式的数据
select name from SQLiteData where name like'l%';
模式中百分号(%)可与任意0个或多个字符匹配。下划线(_)可与任意单个字符匹配。
另一个很有用的方法试用NOT 否定某些形式。如
select name from SQLiteData where name like'l%' NOT like 'li%';
GLOB 操作符在行为上与LIKE非常相似。它的匹配符是*和_,并且匹配是大小敏感的。
限定和排序
limit 和offset关键字限定结果集的大小和范围。limit指定返回记录的最大数目,offset指定偏移的记录数。例如,下面的命令返回的是SQLiteData表中id排第二的记录
select * from SQLiteData order by id limit 1 offset 1;
order by 表达的是排序命令,比如上面orde by id 指定的就是按id默认升序排序。也可以使用asc(升序)和desc(降序)来指定排序方式。如:
select * from SQLiteData order by id desc;
去重(distinct)
select distinct name from SQLiteData;
这样会去除name字段的重复值,只获得不同name的情况。
SQLite 还有好多东西可以学习,大家需要使用时可以查阅相关资料认真学习一次。本文如有不到之处请谅解并指出。谢谢。