SQLite3学习笔记
SQLite3是一款开源的嵌入式关系型数据库,可移植性好,易用性,内存开销小。 数据类型
{
text 字段
integer 数字
real 浮点
bolb 二进制 可以完整保存数据,例如照片
}
ddl(结构定义 CREATE ALTER DROP) { CREATE CREATE TABLE 表的名字(每个字段的定义 字段名 数据类型...) CREATE TABLE t_cjb(xiaoming text NOT NULL,yuwen integer NOT NULL) } dml(数据操作 INSERT DELETE UPDATE SELECT) { INSERT INSERT INTO 表名(字段列表) values(值的列表) INSERT INTO studnet(id,name) VALUES (3,'linf') integer 可以不用'' UPDATE UPDATE 表名 SET 字段名=值...WHERE 条件 UPDATE studnet SET telnum = '13100000000' WHERE name = 'xiaoming' DELETE DELETE FROM 表名 WHERE 条件 DELETE FROM studnet WHERE name = 'xiaoming' SELECT SELECT 字段列表 FROM 表名 WHERE 条件 ORDER BY 字段名 SELECT telnum (AS 电话号码) FROM studnet WHERE name = 'xiaoming' SELECT * FROM studnet WHERE name = 'xiaoming' //显示所有列 SELECT * FROM studnet WHERE name LIKE '张%' //模糊查询,like SELECT * FROM studnet WHERE age>20 AND age<30 //显示所有列,* SELECT * FROM studnet WHERE age>20 ORDER BY age //排序,大于20的年龄从小到大排 SELECT * FROM studnet WHERE age>20 ORDER BY age DESC//排序,大于20的年龄从大到小排 统计函数(数据类型为intege real) SELECT count(*) FROM studnet WHERE age>20 AND age<30 //求个数 SELECT sum(age) FROM studnet //求总数 SELECT avg(age) FROM studnet //求平均数 SELECT *,yuwen+shuxue+yingyu AS sum FROM student //各个列总和
此部分引自:http://my.oschina.net/u/2346786/blog/515540?fromerr=kl04EcAq 首先获取iPhone上sqlite3的数据库文件的地址 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database_name"];
获取地址后,打开数据库 sqlite3 *db;
int result = sqlite3_open([path UTF8String],&db);
上面的代码解析:sqlite3_open()将根据文件路径打开数据库,如果不存在,则会创建一个新的数据库。如果result等于常量SQLITE_OK,则标示成功打开数据库。 sqlite3 *db;是一个打开的数据库实例 char *errorMsg; // 用来存储错误信息
char *sql = "create table if not exists t_person(id integer primary key autoincrement,name text,age integer);";
int result = sqlite3_exec(db,sql,NULL,&errorMsg);
上述代码解释:sqlite3_exec()可以执行任何SQL语句,比如创建表、更新、插入和删除操作。但是一般不用它执行查询语句,因为它不会返回查询到的数据 char *sql = "insert into t_person(name,age) values(?,?);";
sqlite3_stmt *stmt;
if (sqlite3_prepare_v2(db,-1,&stmt,NULL) == SQLITE_OK) {
sqlite3_bind_text(stmt,1,"文本字符",NULL);
sqlite3_bind_int(stmt,2,27);
}
if (sqlite3_step(stmt) != SQLITE_DONE) {
NSLog(@"插入数据错误");
}
sqlite3_finalize(stmt);
代码解析: char *sql = "select id,name,age from t_person;";
sqlite3_stmt *stmt;
if (sqlite3_prepare_v2(db,NULL) == SQLITE_OK) {
while (sqlite3_step(stmt) == SQLITE_ROW) {
int _id = sqlite3_column_int(stmt,0);
char *_name = (char *)sqlite3_column_text(stmt,1);
NSString *name = [NSString stringWithUTF8String:_name];
int _age = sqlite3_column_int(stmt,2);
NSLog(@"id=%i,name=%@,age=%i",_id,_age);
}
}
sqlite3_finalize(stmt);
代码解析: 本文介绍的不完善,有兴趣的童鞋可以参考下面的链接! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |