sqlite3 c代码示例

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

sqlite3 的c代码示例和sql语句示例


提示:以下是本篇文章正文内容,下面案例可供参考

一、sqlite3是什么?

SQLite 是一个开源的数据库引擎,它的特点是轻量级、零配置、自包含,并且以源代码库的形式提供,可以嵌入到各种应用程序中。

二、使用步骤

1.sql语句

代码如下(示例):

创建表:
"CREATE TABLE SHOP "
         "(ID INT PRIMARY KEY AUTOINCREMENT,"
         " NAME           TEXT    NOT NULL, "
         " NUM            INT     NOT NULL, "
         " PRICE          REAL)"

删除表: "drop table SHOP"

插入表:
"INSERT INTO SHOP (NAME,NUM,PRICE) "
         "VALUES ('banana2', 32, 2.5 )";

查找表:"SELECT id, name, NUM from SHOP";

更新字段:
"UPDATE SHOP SET NAME='banbn' WHERE NAME='banana2';"

2.c代码示例

代码如下(示例):

#include <stdio.h>
#include <string.h>


#include <sqlite3.h>

// 回调函数,用于处理查询结果
static int callback(void *data, int argc, char **argv, char **azColName){
   int i;
   for(i=0; i<argc; i++){
      printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
   }
   printf("\n");
   return 0;
}

int main(int argc, char *argv[]){
   sqlite3 *db;
   char *zErrMsg = 0;
   int rc;
   const char *sql;

   /* 打开或创建数据库 */
   rc = sqlite3_open("test.db", &db);

   if( rc ) {
      fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
      sqlite3_close(db);
      return(0);
   } else {
      fprintf(stderr, "Opened database successfully\n");
   }

   /* 创建表 */
   sql = "CREATE TABLE SHOP "
         "(ID INT PRIMARY KEY AUTOINCREMENT,"
         " NAME           TEXT    NOT NULL, "
         " NUM            INT     NOT NULL, "
         " PRICE          REAL)";
   
   rc = sqlite3_exec(db, sql, NULL, 0, &zErrMsg);

   if( rc != SQLITE_OK ){
      fprintf(stderr, "SQL error: %s\n", zErrMsg);
      sqlite3_free(zErrMsg);
   } else {
      fprintf(stderr, "Table created successfully\n");
   }

   /* 插入数据 */
   sql = "INSERT INTO SHOP (NAME,NUM,PRICE) "
         "VALUES ('banana', 32, 2.5 )";

   rc = sqlite3_exec(db, sql, NULL, 0, &zErrMsg);

   sql = "INSERT INTO SHOP (NAME,NUM,PRICE) "
         "VALUES ('banana1', 32, 2.5 )";

   rc = sqlite3_exec(db, sql, NULL, 0, &zErrMsg);
   
   sql = "INSERT INTO SHOP (NAME,NUM,PRICE) "
         "VALUES ('banana2', 32, 2.5 )";

   rc = sqlite3_exec(db, sql, NULL, 0, &zErrMsg);
   
   sql = "INSERT INTO SHOP (NAME,NUM,PRICE) "
         "VALUES ('banana3', 32, 2.5 )";

   rc = sqlite3_exec(db, sql, NULL, 0, &zErrMsg);
   
   sql = "INSERT INTO SHOP (NAME,NUM,PRICE) "
         "VALUES ('banana4', 32, 2.5 )";

   rc = sqlite3_exec(db, sql, NULL, 0, &zErrMsg);

   if( rc != SQLITE_OK ){
      fprintf(stderr, "SQL error: %s\n", zErrMsg);
      sqlite3_free(zErrMsg);
   } else {
      fprintf(stderr, "Records created successfully\n");
   }

   /* 查询数据 */
   sql = "SELECT id, name, NUM from SHOP";
   
   rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);

   if( rc != SQLITE_OK ){
      fprintf(stderr, "SQL error: %s\n", zErrMsg);
      sqlite3_free(zErrMsg);
   } else {
      fprintf(stderr, "Operation done successfully\n");
   }

   /* 关闭数据库 */
   sqlite3_close(db);
   return 0;
}

编译需要加 -lsqlite3
gcc my_sqlite3_lib.c -lsqlite3 -o sqltest


总结

简单介绍sqlite3 语句和c代码示例,代码示例可以运行。

  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值