linux下的sqlite入门

安装sqlite

  1. 拖动三个deb包 进入ubuntu 正常文件夹(非根目录,非共享目录)

  2. sudo dpkg -i *.deb

    sudo dpkg (deb 安装包 debain linux 安装包类型)

    *.deb 所有的 以deb结尾的文件

  3. sql 自动补齐(tab键) sqlite3 正常

  4. 进入 输入 .quit为退出

  5. 不行的话 输个; (分号)提示错误以后 再输第四步

使用sqlite

  1. 文档 解压 doc。zip 打开index.html

  2. sqlite3 + 文件名。db(类似于 vi) 自动保存

  3. 创建表格

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);

增删改查

  1. 表格属性

    .schema 查看表格的属性

  2. 插入表格

    insert into stu values(“jiangwenxiao”,”genzhiboy”,90,100,100,100,60);

  3. 查询表格

    select * from stu;

    select * from stu where NW<=60;

  4. 删除

    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)
  1. void * 是指 sqlite3_exec callback 后面的参数

  2. argc 满足条件的返回结果的行乘以列 argc=行*列

  3. argv 结果的某个内容 “jiangwenxiao”

  4. 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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值