摘要
SQLite在我们这些运用过其他数据库的人手里,其实根本就不算是数据库,因为sqlite实在是太小了,而且sqlite中的数据类型 (name text,age integer,phoneNo text)都是假的,只是为了和其他数据库一样操作而已!下面是SQLite中经常运用的操作语句
sqlite
数据库
常用实例
目录[-]
import “pyViewController.h”
import “NSString+DocDir.h”
import
import “pyPerson.h”
pragma mark –创建数据库
pragma mark -添加数据库表
pragma mark -设置添加数据
pragma mark -执行方法
pragma mark 查询数据
SQLite在我们这些运用过其他数据库的人手里,其实根本就不算是数据库,因为sqlite实在是太小了,而且sqlite中的数据类型 (name text,phoneNo text)都是假的,只是为了和其他数据库一样操作而已!下面是SQLite中经常运用的操作语句
– 创建数据表,定义存储数据信息表的结构 –CREATE TABLE T_Student (name text,phoneNo text); – 删除数据表,通常在上需要使用某一个表的时候,才会用到,日常开发中极少会用到此命令 –DROP TABLE T_Student;
– 新增数据内容,在SQL语句中,字符串需要用单引号引起 – 插入语句的语法格式: – INSERT INTO 表吊 (字段1,字段2,…) VALUES (字段1数值,字段2数值,…) – INSERT INTO T_Person (name,age,gender,height) VALUES ('小花1',20,1,1.62);
– 更新数据库内容 – 更新所有记录 – UPDATE T_Person SET name = '王二麻子';
– 条件修改 WHERE (要修改、操作的记录在哪里) – UPDATE T_Person SET name = '小芳' WHERE gender = 1;
– 使用AND可以设置与条件 – 使用OR可以设置或条件 – 更新记录的语法格式 – UPDATE 表吊 SET 字段1 = 字段1数值,字段2 = 字段2数值,… WHERE 要修改的条件 – UPDATE T_Person SET name = '西门吹雪',age = 45 WHERE age = 60 AND height = 1.65; – UPDATE T_Person SET name = '悟空' WHERE age = 18 OR height = 1.72;
– 删除记录 – 删除的语法格式 – DELETE FROM 表吊 WHERE 要删除的条件 – DELETE FROM T_Person WHERE height = 1.8;
– 查询指令 – SELECT * FROM T_Person; – 条件查询 – 查询所有的男的 – SELECT * FROM T_Person WHERE gender = 1; – 查询年龄大于10岁,同时是男士 – SELECT * FROM T_Person WHERE age > 10 AND gender = 0; – 查询Person表中的记录总数 — SELECT count(*) FROM T_Person; – 查询最高的身高 – SELECT max(height) FROM T_Person; – SELECT min(age) FROM T_Person; – 查询所有男士的平均身高 — SELECT avg(height) FROM T_Person WHERE gender = 0;
– 分页查询 – 从第0条记录开始,查询3条记录 – LIMIT 的第一个参数表示:从第几行记录开始查询,起始行数是0 – LIMIT 的第二个参数表示:本次查询需要查询的记录数量 – SELECT * FROM T_Person LIMIT 0,3; – SELECT * FROM T_Person LIMIT 3,3; – SELECT * FROM T_Person LIMIT 6,3;
– 排序 – ORDER BY 要排序的字段吊 – ASC 表示升序 – DESC 表示降序 – 如果有多个字段参与排序,先排第一个字段,让后依次类推,即:第一个字段的排序优先级最高! SELECT height,name,age FROM T_Person ORDER BY age ASC,height DESC;
介绍完上面的基本操作语句之后,我们运用sqlite来做一个实例: /** SQLite3使用步骤
名词解释:handle句柄,在C语言中,通常把用于控制某类东西的叫做句柄,实际上是一个指针。 通过这个指针就可以达到操作对象的目的。
SQLITE_OK 表示数据库操作成功
-
先要有一个数据库,放在Bundle中还是放在沙盒里?
-
MainBundle是只读的,如果是菜谱、中国全史只是看不用修改的可以放在Bundle中
-
如果需要对数据进行操作,数据库文件应该放在沙盒中! sqlite3_open 打开数据库
- 如果数据库已经存在,直接打开
- 如果数据库不存在,新建一个空白的数据库(0KB),然后再打开
-
创建数据表
-
定义数据操作SQL
-
调用sqlite3_exec执行SQL 提示:为了避免重复建表,可以在建表SQL中增加 IF NOT EXISTS
-
单步执行操作 1> 增加数据 2> 修改数据 3> 删除数据 定义SQL执行 SQLITE_OK == sqlite3_exec
-
查询语句 1> 准备SQL 2> 检查SQL语句是否正确 sqlite3_prepare_v2 3> 单步执行,依次获取查询到的记录 SQLITE_ROW == sqlite3_step(stmt 4> 按照查询顺序,依次取出每一个字段的内容 sqlite3_column_text 取字符串 sqlite3_column_int 取整数 sqlite3_column_double 取浮点数 操作SQLite数据库需要5个方法 sqlite3_open sqlite3_exec sqlite3_prepare_v2 sqlite3_step sqlite3_column_text 取字符串 sqlite3_column_int 取整数 sqlite3_column_double 取浮点数 两个枚举 SQLITE_OK SQLITE_ROW */
下面是代码部分,我的pyPerson类就省略了哦!,还有沙盒存储的sqlite路径也省略了哦!!!!!
?
|