转载请注明出处:http://blog.csdn.net/qxuewei/article/details/52900455
SQLite
SQLite是一款轻型的嵌入式关系数据库
它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了
目前广泛应用于移动设备中存储数据(Android/iOS/WP等)
处理数据的速度非常快,效率非常高
关系数据库的特点
一个 字段(COL) 存储一个值,类似于对象的一个属性
一 行(ROW) 存储一条记录,类似于一个对象
一个 表(TABLE) 存储一系列数据,类似于对象数组
多个 表 之间存在一定 关系,类似于对象之间的关系,例如:一条微博数据中包含用户记录
SQLite的使用步骤
1.新建一个数据库->一个用于存储数据的文件
2.数据库中创建表->一个表中用于记录一系列数据
创建表时需要指定该表有哪些字段,比如用户表中需要姓名,性别,年龄,头像等字段
3.在表中添加数据
4.对表进行增删改查操作
增:给表中添加数据
删:从表中删除数据
改:修改表中原有数据
查:查询表中原有数据
常用数据类型
NULL - 空值
INTERGER - 有符号整数类型
REAL - 浮点数类型
TEXT - 字符串(其编码取决于DB的编码)
BLOB - 二进制表示
常用语句备忘
增
1>新增表
/**
新建用户表
*/
CREATE TABLE IF NOT EXISTS 't_User' ('ID' INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,'name' TEXT,'age' INTEGER,'icon' TEXT);
创建表的格式
CREATE TABLE IF NOT EXISTS '表名' (
'字段名' 类型(INTEGER, REAL, TEXT, BLOB)
NOT NULL 不允许为空
PRIMARY KEY 主键
AUTOINCREMENT 自增长,
'字段名2' 类型,
...
)
2>新增表中字段数据
/**
新增'用户表'中字段数据
*/
INSERT INTO 't_User' ('name','age','icon') VALUES ('邱学伟',25,'http://qiuxuewei.com/icon.png')
新增数据格式
INSERT INTO 't_User' ( 字典名 ) VALUES ( 字段名对应的值 )
删
1>删除表
删除'用户表'
*/
DROP TABLE IF EXISTS 't_User'
删除表的格式
DROP TABLE IF EXISTS '表名';
2>删除表中字段/字段值
/**
删除名为'邱学伟'的字段
*/
DELETE FROM 't_User' WHERE name = '邱学伟'
改
1>更新表中字段值,注意在SQL语句中,更新语句的字段名不要加单引号
demo1:
/**
更新'用户表'中年龄信息
*/
UPDATE 't_User' SET 'age' = 28 WHERE name = '邱学伟'
demo2:
/**
更新年龄大于25的icon字段信息
*/
UPDATE 't_User' SET 'icon' = 'http://icon.png' WHERE age > 25
更新表中字典数据的格式
UPDATE 't_student' SET 字段 = '值' WHERE 条件判断;
查
1>基本查询
/**
基本查询
*/
SELECT * FROM 't_User'
2>查询某些字段
/**
查询某些字段
*/
SELECT name,age FROM 't_User'
3>查询约束条件下对应的数据
/**
通过某些条件约束查询对应数据
*/
SELECT name FROM 't_User' WHERE age > 25
4>模糊查询
/**
模糊查询 使用like关键词 % - 填充未知元素
*/
SELECT * FROM 't_User' WHERE name LIKE '%珂%'
5>查询数量
查询个数
查询表内一共有多少字段
*/
SELECT count(*) FROM 't_User'
/**
查询字段内一共有多少数据(包括值为空的数据)
*/
SELECT count(name) FROM 't_User'
6>排序
/**
排序
升序 ASC(默认)
*/
SELECT * FROM 't_User' ORDER BY age
/**
降序 DESC
*/
SELECT * FROM 't_User' ORDER BY age DESC
7>分页查询 - LIMIT
/**
分页查询用 - LIMIT
格式:SELECT * FROM t_student LIMIT 数字1,数字2;
1>数字1的意思是前面跳过多少条数据
2>数字2的意思是本次查询多少条数据
*/
SELECT * FROM 't_User' LIMIT 1,3
/**
limit后只有一个数字即从头取值
*/
SELECT * from 't_User' LIMIT 2
8>起别名
/**
起别名
给字段起别名
*/
SELECT name AS n,age AS a FROM 't_User'
/**
给表起别名
*/
SELECT U.name,U.age FROM 't_User' AS U