sqlite3基本操作(学习笔记)
1、sqlite3数据库安装 a)本地安装 sudo dpkg -i *.deb b)在线安装 sudo apt-get install-sqlite3 2、sqlite3基本命令 a)系统命令 以’ . ‘开头的命令 .help 帮助 .quit 退出 .exit 退出 b)sql命令 基本sql命令不以’ . ‘开头,但以’ ; ‘结尾 创建一张数据库表 stu (表名) create table stu(id Integer,name char,score Integer); 插入 insert into stu values(1000,‘zhangsan’,80); insert into stu (id,name)values(1001,‘wangwu’);//部分字段插入 插入一列 alter table stu add column address char; 删除 delete from stu;//删除全部 delete from stu where id=1000;//按条件删除 删除一列 sqlite3不支持直接删除一列 1)创建一张新表 create table stu1 as select id,name,score from stu; 2)删除原有表 drop table stu; 3)将新表名字改为原有的旧表名字 alter table stu1 rename to stu; 更新 update stu set name=‘wangwu’,score=88 where id=1000;//将id为1000的学生名字改为’wangwu’,分数改为88 查询记录 select * from stu;//查询所有字段 select name,score from stu;//查询部分字段 select * from stu where score=80; select * from stu where score=80 and name=‘zhangsan’; select * from stu where score=80 or name=‘zhangsan’//按条件查询字段 3、sqlite3编程接口 a)int sqlite3_open(char *path,sqlite3 **db); 功能:打开sqlite数据库 path:数据库文件路径 db:指向sqlite句柄的指针 返回值:成功返回0,失败返回错误码(非零值) b)int sqlite3_close(sqlite3 *db); 功能:关闭sqlite数据库 返回值:成功返回0,失败返回错误码 c)const char *sqlite3_errmsg(sqlite3 *db); 功能:通过db句柄得到数据库的错误信息 返回值:返回错误信息的首地址 d)int sqlite3_exec(sqlite3 *db,const char *sql,sqlite3_callback callback,void *arg,char **errmsg); 功能:执行一条sql语句 db:数据库操作句柄 aql:一条sql语句 callback:回调函数,只有sql为查询语句的时候,才会执行此语句 arg:表示的是给回馈函数传递参数 errmsg:错误信息 返回值:成功返回SQLITE_OK typedef int (*sqlite3_callback)(void *para,int f_num,char **f_value,char **f_name); 功能:每找到一条记录自动执行一次回调函数 para:传递给回调函数的参数 f_num:记录包含的字段数目 f_value:包含每个字段值的指针数组 f_name:包含每个字段名称的指针数组 返回值:成功返回0,失败返回-1 举例: if(sqlite3_exec(db,“create table stu (id Integer,name char)”,NULL,NULL,&errmsg)) { printf("%s ",errmsg); } else { printf(“create table open success”); } e)不使用回调函数执行sql语句 int sqlite3_get_table(sqlite3 *db,const char *sql,char ***resultp,int *nrow,int *ncolumn,char **errmsg); 功能:执行sql操作 db:数据库句柄 resultp:用来指向sql执行结果的指针 nrow:满足条件的记录的数目 ncolumn:每条记录包含的字段数目 errmsg:错误信息指针地址 返回值:成功返回0,失败返回错误码
