安装sqlite
拖动三个deb包 进入ubuntu 正常文件夹(非根目录,非共享目录)
sudo dpkg -i *.deb
sudo dpkg (deb 安装包 debain linux 安装包类型)
*.deb 所有的 以deb结尾的文件
sql 自动补齐(tab键) sqlite3 正常
进入 输入 .quit为退出
不行的话 输个; (分号)提示错误以后 再输第四步
使用sqlite
文档 解压 doc。zip 打开index.html
sqlite3 + 文件名。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 -lsqlite3
3. 执行
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;
}