下面是关于连接SQLite数据库的C语言操作攻略的详细讲解。
1.安装SQLite以及其开发库
在Ubuntu和Debian发行版中通过APT包管理器可以很简单地安装SQLite和其开发库(指定版本为3.22.0):
sudo apt-get install sqlite3 libsqlite3-dev=3.22.0-1ubuntu0.3
2.连接SQLite数据库
C语言连接SQLite数据库的步骤如下:
- 创建并打开数据库连接
- 创建表
- 插入数据
- 查询数据
- 关闭数据库连接
以下是一个连接SQLite数据库的示例程序:
#include <stdio.h>
#include <sqlite3.h>
int main(int argc, char **argv)
{
int rc;
sqlite3 *db;
// 创建并打开数据库连接
rc = sqlite3_open("test.db", &db);
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return(1);
}
// 创建表
char *create_table = "CREATE TABLE COMPANY(ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);";
char *err_msg = 0;
rc = sqlite3_exec(db, create_table, 0, 0, &err_msg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", err_msg);
sqlite3_free(err_msg);
} else {
fprintf(stdout, "Table created successfully\n");
}
// 插入数据
char *insert_data = "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, insert_data, 0, 0, &err_msg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", err_msg);
sqlite3_free(err_msg);
} else {
fprintf(stdout, "Records created successfully\n");
}
// 查询数据
char *sql = "SELECT * FROM COMPANY";
rc = sqlite3_exec(db, sql, callback, 0, &err_msg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", err_msg);
sqlite3_free(err_msg);
}
// 关闭数据库连接
sqlite3_close(db);
return 0;
}
该示例程序完成了创建表、插入数据、查询数据等操作。
3.扩展示例
你可以在上述示例程序的基础上进行扩展,例如增加查询数据的回调函数:
int callback(void *data, int argc, char **argv, char **az_col_name)
{
int i;
fprintf(stderr, "%s: ", (const char*)data);
for (i = 0; i < argc; i++) {
printf("%s = %s\n", az_col_name[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
定义回调函数后,可以通过以下方式查询数据:
// 查询数据
char *sql = "SELECT * FROM COMPANY";
rc = sqlite3_exec(db, sql, callback, (void*)data, &err_msg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", err_msg);
sqlite3_free(err_msg);
}
在这个示例中,data是一个指向数据的指针,该数据用于在回调函数中使用。
通过以上步骤,你已经学会了如何使用C语言连接SQLite数据库,包括创建并打开数据库连接、创建表、插入数据、查询数据等操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux c语言操作数据库(连接sqlite数据库) - Python技术站