linux下的sqlite入门
2016-06-06 21:42
288 查看
安装sqlite
拖动三个deb包 进入ubuntu 正常文件夹(非根目录,非共享目录)sudo dpkg -i *.deb
sudo dpkg (deb 安装包 debain linux 安装包类型)
*.deb 所有的 以deb结尾的文件
sql 自动补齐(tab键) sqlite3 正常
进入 输入 .quit为退出
不行的话 输个; (分号)提示错误以后 再输第四步
使用sqlite
文档 解压 doc。zip 打开index.htmlsqlite3 + 文件名。db(类似于 vi) 自动保存
创建表格
sqlite>create table (f1 type1, f2 type2,…);
create table stu(NAME char(20),SEX char(20),C int,DS int,IO int,P int, NW int);
增删改查
表格属性.schema 查看表格的属性
插入表格
insert into stu values(“jiangwenxiao”,”genzhiboy”,90,100,100,100,60);
查询表格
select * from stu;
select * from stu where NW<=60;
删除
delete from stu where NAME=”jiangwenxiao”;
改
update stu set SEX=”woman” where NAME=”yanxiong”;
c语言调用 sqlite
1. 打开 sqlite
int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ );
2.编译
gcc sqlite_test.c -lsqlite33. 执行
int sqlite3_exec( sqlite3*, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void*,int,char**,char**), /* Callback function */ void *, /* 1st argument to callback */ char **errmsg /* Error msg written here */ );
4. callback 函数 回调函数
int callback(void *NotUsed, int argc, char **argv, char **azColName)
void * 是指 sqlite3_exec callback 后面的参数
argc 满足条件的返回结果的行乘以列 argc=行*列
argv 结果的某个内容 “jiangwenxiao”
azcolname 结果某个内容的表头 NAME
#include <stdio.h> #include <sqlite3.h> int callback(void * notuse, int argc, char ** argv, char ** acolname) { int i; for(i=0;i<argc;i++) { printf("colname: %s colvalue %s\n", acolname[i],argv[i]); } return 0; } int main(int argc, const char *argv[]) { sqlite3 * db; int ret; char *errormsg=0; ret=sqlite3_open("./test.db",&db); if(ret) { printf("fail to open db\n"); return -1; } char *s="create table stu(NAME char(20),SEX char(20),C int,DS int,IO int,P int, NW int)"; ret=sqlite3_exec(db,s,NULL,NULL,&errormsg); if(ret) { printf("fail to do exec: %s\n",errormsg); sqlite3_free(errormsg); } s="insert into stu values('jiangwenxiao','genzhiboy',90,100,100,100,60)"; ret=sqlite3_exec(db,s,NULL,NULL,&errormsg); if(ret) { printf("fail to do exec: %s\n",errormsg); sqlite3_free(errormsg); } s="select * from stu"; ret=sqlite3_exec(db,s,callback,NULL,&errormsg); if(ret) { printf("fail to do exec: %s\n",errormsg); sqlite3_free(errormsg); } sqlite3_close(db); return 0; }
相关文章推荐
- Ubuntu 默认壁纸历代记
- Ubuntu Remix Cinnamon 20.04 评测:Ubuntu 与 Cinnamon 的完美融合
- Linux socket 初步
- 关于Ubuntu 11.10启动提示waiting for the network configuration的问题
- 在 Ubuntu 桌面中使用文件和文件夹
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- ubuntu下chrome无法同步问题解决
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验