提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
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代码示例,代码示例可以运行。