转载请注明出处:http://www.jb51.cc/article/p-qpdeemac-ev.html
sqlite@H_301_4@
sqlite是一款轻型的嵌入式关系数据库
它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了
目前广泛应用于移动设备中存储数据(Android/iOS/WP等)
处理数据的速度非常快,效率非常高
关系数据库的特点
一个 字段(COL) 存储一个值,类似于对象的一个属性
一 行(ROW) 存储一条记录,类似于一个对象
一个 表(TABLE) 存储一系列数据,类似于对象数组
多个 表 之间存在一定 关系,类似于对象之间的关系,例如:一条微博数据中包含用户记录
sqlite的使用步骤
1.新建一个数据库->一个用于存储数据的文件
2.数据库中创建表->一个表中用于记录一系列数据
创建表时需要指定该表有哪些字段,比如用户表中需要姓名,性别,年龄,头像等字段
3.在表中添加数据
4.对表进行增删改查操作
增:给表中添加数据
删:从表中删除数据
改:修改表中原有数据
查:查询表中原有数据
常用数据类型
NULL - 空值
INTERGER - 有符号整数类型
REAL - 浮点数类型
TEXT - 字符串(其编码取决于DB的编码)
BLOB - 二进制表示
常用语句备忘
增
@H_301_4@
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 ( 字段名对应的值 )
删
@H_301_4@
1>删除表
删除'用户表'
*/
DROP TABLE IF EXISTS 't_User'
删除表的格式
DROP TABLE IF EXISTS '表名';
2>删除表中字段/字段值
/** 删除名为'邱学伟'的字段 */
DELETE FROM 't_User' WHERE name = '邱学伟'
改
@H_301_4@
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 条件判断;
查
@H_301_4@
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 '%珂%'
查询个数
查询表内一共有多少字段
*/
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
/** 分页查询用 - 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