您的位置:首页 > 运维架构 > Linux

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.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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sqlite linux sqlite3 sql ubuntu