sqlite3数据库c语言简单操作基础(一)

概述:sqlite3数据库是一个比较精简的数据库操作库,在嵌入式设备上,因其轻量级,大多使用的就是这货了。当然它的使用也是比较简单的,通过几个基础的API就可以完成一些基本的操作了。最近使用这货,所以做一下学习笔记,省得以后用到又的查资料麻烦。这篇笔记就主要是数据库的创建还有基础的几个API介绍。后面的话会具体记录一下数据库的增删改查,以及事务部分。

使用测试环境:
系统linux:ubuntu14.04

1,sqlite3库下载地址
官网地址:https://www.sqlite.org/download.html.

2,四个基础API介绍

int sqlite3_open(
  const char *filename,   /* Database filename */
  sqlite3 **ppDb          /* OUT: SQLite db handle */
);
/*
打开/创建数据库文件的API,第一个参数是文件路径及名字,第二个参数是sqlite3操作句柄。在使用该API时,如果我们打开的数据库文件不存在就创建一个,并且会返回一个数据库操作句柄,保存到我们输入的第二个参数。操作成功,返回值为SQLITE_OK.
*/
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 */
);
/*
这个API就是主要执行sql语句的,第一个参数,打开的数据库操作句柄。第二个参数,sql语句,就是我们要执行的命令。第三个参数,回调函数。第四个参数,传入回调函数的参数。第五个参数,保存操作失败时的错误信息。操作成功,返回值为SQLITE_OK.
*/
void sqlite3_free(void *);
/*
这个API就是释放申请的动态内存了,在上一个API操作中,假设出现操作失败,错误信息保存在最后一个参数中,它的内存是动态申请的,这时候我们就要通过这个函数就释放内存了。
*/
int sqlite3_close(sqlite3 *);
/*
这个API就是关闭数据库的操作,第一个参数就是sqlite3操作句柄。一般在我们结束或出错时调用来关闭数据库。
*/

上面说到了sql语句,对于sql语句的语法可能要自己了解一下,这里放一个网址:
http://www.runoob.com/sqlite/sqlite-insert.html.

3,数据库文件及表创建

#include <sqlite3.h>
#include <stdio.h>
#define TABLE      "student"
int main(void) {
    sqlite3 *db;
    char *err_msg = NULL;
    /*打开或创建数据库test.db文件*/
    int rc = sqlite3_open("test.db", &db);
    if (rc != SQLITE_OK) {
        printf("open database test.db failed\n");
        sqlite3_close(db);
        return 1;
    }
    /*
    此sql语句意思,如果student这张表不存在就创建student表,
    表的格式为主键id int类型、name 字符串类型、uuid int类型、uuid 唯一性 不可重复
    */
    char *sql =  "CREATE TABLE IF NOT EXISTS student (\
                [id] INTEGER PRIMARY KEY AUTOINCREMENT,\
                [name] TXT,\
                [uuid] INTEGER,\
                UNIQUE([uuid])\
                );";
    /*执行上述sql语句*/
    rc = sqlite3_exec(db, sql, 0, 0, &err_msg);
    if (rc != SQLITE_OK ) {
        printf("SQL error: %s\n", err_msg);
        sqlite3_free(err_msg);        
        sqlite3_close(db);
        return 1;
    } 
    /*关闭数据库*/
    sqlite3_close(db);
    return 0;
}

最后
我自己写了一个sqlite3的操作demo,代码下载用cmake编译一下就可以跑了,一般满足基本需求了,如果需要的话可以下载:http://download.csdn.net/download/dancer__sky/10200497.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在C语言操作SQLite3数据库,需要安装SQLite3库并包含其头文件。然后,可以使用SQLite3提供的API来执行各种操作,例如打开/关闭数据库,执行SQL语句,获取结果等。 以下是一个简单的示例程序,演示了如何连接到数据库,创建表格并插入数据: ```c #include <stdio.h> #include <sqlite3.h> int main(int argc, char* argv[]) { sqlite3* db; char* errMsg = 0; int rc; rc = sqlite3_open("test.db", &db); if (rc != SQLITE_OK) { fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); return 1; } else { fprintf(stdout, "Opened database successfully\n"); } char* sql = "CREATE TABLE COMPANY(" "ID INT PRIMARY KEY NOT NULL," "NAME TEXT NOT NULL," "AGE INT NOT NULL," "ADDRESS CHAR(50)," "SALARY REAL);"; rc = sqlite3_exec(db, sql, 0, 0, &errMsg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", errMsg); sqlite3_free(errMsg); sqlite3_close(db); return 1; } else { fprintf(stdout, "Table created successfully\n"); } sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " "VALUES (1, 'Paul', 32, 'California', 20000.00 ); " "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " "VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); " "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " "VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );" "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)" "VALUES (4, 'Mark', 25, 'Rich-Mond', 65000.00 );"; rc = sqlite3_exec(db, sql, 0, 0, &errMsg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", errMsg); sqlite3_free(errMsg); sqlite3_close(db); return 1; } else { fprintf(stdout, "Records created successfully\n"); } sqlite3_close(db); return 0; } ``` 此程序将创建一个名为“test.db”的数据库,并在其中创建一个名为“COMPANY”的表格,并插入一些数据。请注意,通过sqlite3_exec函数执行SQL语句,并使用sqlite3_errmsg函数检查错误。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值