SQLite是一款轻量级的嵌入式关系型数据库,适用于嵌入式设备和移动设备等资源有限的系统。它不需要独立的服务进程,可以直接访问存储在普通的磁盘文件中的数据,因此相对于其他数据库来说,SQLite占用的系统资源更少,性能更高。
在C语言中,我们可以通过SQLite API来连接SQLite数据库。这篇文章将详细介绍如何使用C语言中的SQLite API来连接SQLite数据库。主要包括以下几个方面:
1.连接SQLite数据库
2.插入数据
3.查询数据
4.更新数据
5.删除数据
1.连接SQLite数据库
在C语言中,我们可以使用sqlite3_open函数来创建一个与SQLite数据库的连接。该函数的原型如下:
“`
int sqlite3_open(const char *filename, sqlite3 **ppDb);
“`
该函数接收两个参数,之一个参数为要打开的SQLite数据库的文件名,包括路径,如果该文件不存在则会自动创建。第二个参数为用来存储SQLite数据库对象的指针。
连接SQLite数据库的示例代码如下:
“`c
#include
#include
int mn(int argc, char **argv)
{
sqlite3 *db;
int rc = sqlite3_open(“test.db”, &db);
if (rc)
{
fprintf(stderr, “Can’t open database: %s\n”, sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
else
{
printf(“Opened database successfully!\n”);
}
sqlite3_close(db);
return 0;
}
“`
在上述示例代码中,我们首先包含了sqlite3.h头文件,然后使用sqlite3_open函数连接了一个名为“test.db”的SQLite数据库。如果连接失败,我们将输出错误消息并返回错误代码。如果连接成功,我们将输出一条成功连接的消息。我们通过sqlite3_close函数关闭了与数据库的连接。
2.插入数据
要向SQLite数据库中插入数据,我们可以使用sqlite3_exec函数。这个函数可以执行在之一个参数中指定的任何SQL语句。该函数的原型如下:
“`c
int sqlite3_exec(sqlite3*, const char *sql, int (*callback)(void*,int,char**,char**), void *, char **errmsg);
“`
该函数接受五个参数,之一个参数为与SQLite数据库之间的连接。第二个参数为要执行的SQL语句。第三个参数为结果回调函数,可以在SQL执行期间或执行完成后进行一些操作。第四个参数为以上结果回调函数的之一个参数。第五个参数用于存储错误消息。
插入数据的示例代码如下:
“`c
#include
#include
int mn(int argc, char **argv)
{
sqlite3 *db;
int rc;
rc = sqlite3_open(“test.db”, &db);
if (rc)
{
fprintf(stderr, “Can’t open database: %s\n”, sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
else
{
printf(“Opened database successfully!\n”);
}
char *sql = “INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) ” \
“VALUES (1, ‘Paul’, 32, ‘California’, 20230.00); “;
char *errmsg;
rc = sqlite3_exec(db, sql, NULL, NULL, &errmsg);
if (rc != SQLITE_OK)
{
fprintf(stderr, “SQL error: %s\n”, errmsg);
sqlite3_free(errmsg);
}
else
{
printf(“Records created successfully!\n”);
}
sqlite3_close(db);
return 0;
}
“`
在上述示例代码中,我们通过sql变量设置了要执行的SQL语句,即向名为“COMPANY”的表中插入一条记录。然后我们将该SQL语句传递给sqlite3_exec函数来执行。如果执行期间发生错误,我们将通过sqlite3_free函数释放错误消息,并输出错误消息。否则,我们将输出一条成功插入的消息。
3.查询数据
要查询SQLite数据库中的数据,我们可以使用sqlite3_exec函数和结果回调函数。当sqlite3_exec执行SQL查询后,结果回调函数将被调用一次或多次。每次调用将返回一个结果行。每个结果行是由一个或多个数据值组成的数组。
结果回调函数的原型如下:
“`c
int callback(void *NotUsed, int argc, char **argv, char **azColName);
“`
除了之一个参数以外,其他参数只有在每行中具有一个以上的结果时才适用。之一个参数与sqlite3_exec的第四个参数相同,它是传递给结果回调函数的参数。第二个参数是结果集中的结果行数。第三个参数是由结果行中的每个元素组成的数组。第四个参数是包含每个结果行中的列名的数组。
查询数据的示例代码如下:
“`c
#include
#include
int callback(void *data, int argc, char **argv, char **azColName)
{
int i;
for (i = 0; i
{
printf(“%s = %s\n”, azColName[i], argv[i] ? argv[i] : “NULL”);
}
printf(“\n”);
return 0;
}
int mn(int argc, char **argv)
{
sqlite3 *db;
char *sql;
char *errmsg;
int rc;
rc = sqlite3_open(“test.db”, &db);
if (rc)
{
fprintf(stderr, “Can’t open database: %s\n”, sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
else
{
printf(“Opened database successfully!\n”);
}
sql = “SELECT * from COMPANY;”;
rc = sqlite3_exec(db, sql, callback, NULL, &errmsg);
if (rc != SQLITE_OK)
{
fprintf(stderr, “SQL error: %s\n”, errmsg);
sqlite3_free(errmsg);
}
else
{
printf(“Operation done successfully!\n”);
}
sqlite3_close(db);
return 0;
}
“`
在上述示例代码中,我们定义了一个名为callback的结果回调函数。然后,我们使用sqlite3_exec函数执行了一个SQL查询,该查询以指定的回调函数作为第三个参数。如果查询期间出现错误,我们将输出错误消息并释放错误消息。否则,我们将输出成功执行的消息。
4.更新数据
要更新从SQLite数据库中检索出的数据,我们可以使用sqlite3_exec函数。我们可以将UPDATE语句传递给该函数,并指定要更新的行和列。
更新数据的示例代码如下:
“`c
#include
#include
int mn(int argc, char **argv)
{
sqlite3 *db;
char *errmsg;
int rc;
rc = sqlite3_open(“test.db”, &db);
if (rc)
{
fprintf(stderr, “Can’t open database: %s\n”, sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
else
{
printf(“Opened database successfully!\n”);
}
char *sql = “UPDATE COMPANY set SALARY = 25000.00 where ID=1; “;
rc = sqlite3_exec(db, sql, NULL, NULL, &errmsg);
if (rc != SQLITE_OK)
{
fprintf(stderr, “SQL error: %s\n”, errmsg);
sqlite3_free(errmsg);
}
else
{
printf(“Total updated rows: %d\n”, sqlite3_changes(db));
}
sqlite3_close(db);
return 0;
}
“`
在上述示例代码中,我们通过UPDATE语句将ID为1的记录的薪水更新为25000.00。然后,我们将该SQL语句传递给sqlite3_exec函数。如果更新期间出现错误,我们将输出错误消息并释放错误消息。否则,我们将输出成功更新的行数。
5.删除数据
要从SQLite数据库中删除数据,我们可以使用sqlite3_exec函数。我们可以将DELETE语句传递给该函数,并指定要删除的行和列。
删除数据的示例代码如下:
“`c
#include
#include
int mn(int argc, char **argv)
{
sqlite3 *db;
char *errmsg;
int rc;
rc = sqlite3_open(“test.db”, &db);
if (rc)
{
fprintf(stderr, “Can’t open database: %s\n”, sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
else
{
printf(“Opened database successfully!\n”);
}
char *sql = “DELETE from COMPANY where ID=1; “;
rc = sqlite3_exec(db, sql, NULL, NULL, &errmsg);
if (rc != SQLITE_OK)
{
fprintf(stderr, “SQL error: %s\n”, errmsg);
sqlite3_free(errmsg);
}
else
{
printf(“Total deleted rows: %d\n”, sqlite3_changes(db));
}
sqlite3_close(db);
return 0;
}
“`
在上述示例代码中,我们使用DELETE语句删除ID为1的记录。然后,我们将该SQL语句传递给sqlite3_exec函数。如果删除期间出现错误,我们将输出错误消息并释放错误消息。否则,我们将输出成功删除的行数。
:
相关问题拓展阅读:
sorry, 没安装”sqlite developer”.
若只是想导出sqlite数据库中的表数据皮芦可以很简备尘单地用燃滚带sqlite命令:
tim@ubtim:~/workspace$ sqlite3
SQLite version 3.7.9:49:22
Enter “.help” for instructions
Enter SQL statements terminated with a “;”
sqlite> create table tb_test (field int, val varchar(3));
sqlite> insert into tb_test values (1, ‘a’);
sqlite> insert into tb_test values (2, ‘b’);
sqlite> insert into tb_test values (3, ‘c’);
sqlite> .mode csv
sqlite> .output tb_test.csv
sqlite> select * from tb_test;
sqlite> .q
tim@ubtim:~/workspace$ cat tb_test.csv
1,a
2,b
3,c
tim@ubtim:~/workspace$
是什么语言想要模袭连接差败的呢,不同语言的操作差别挺旦庆兄大的
~~~~~~~
~~~~~~~~~~~~~
~~~~~
首先说明这个问题困扰了我很长时间了,肆御严格地说应该有两天,不过终于通过sqlite的官方文档解决了。
For example, assume the string variable zText contains text as follows:
char *zText = “It’s a happy day!”;
One can use this text in an SQL statement as follows:
char *zSQL = sqlite3_mprintf(“州雹唯INSERT INTO table VALUES(‘%q’)”, zText); sqlite3_exec(db, zSQL, 0, 0, 0); sqlite3_free(zSQL);
摘自liuzhidong123的册培专栏
ORDER BY 列 ASC
c连接sqlite数据库语句的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c连接sqlite数据库语句,C语言中使用SQLite数据库的连接语句详解,sqlite怎么连接数据库文件,怎么用C语言动态往sqlite3里面插入数据的信息别忘了在本站进行查找喔。
创新互联成都网站建设公司提供专业的建站服务,为您量身定制,欢迎来电(028-86922220)为您打造专属于企业本身的网络品牌形象。
成都创新互联品牌官网提供专业的网站建设、设计、制作等服务,是一家以网站建设为主要业务的公司,在网站建设、设计和制作领域具有丰富的经验。
新闻名称:C语言中使用SQLite数据库的连接语句详解(c连接sqlite数据库语句)
链接地址:http://www.shufengxianlan.com/qtweb/news4/410804.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联