当前位置:   article > 正文

Linux C 实现sqlite3数据库的基本操作_linux怎么在c语言里面调用自己创建的sqlite3数据库

linux怎么在c语言里面调用自己创建的sqlite3数据库

一、数据库简介

        SQLite第一个Alpha版本诞生于2000年5月. 至今已经有10个年头了. SQLite也迎来了一个版本 SQLite 3已经发布.  
 
        SQLite是一款轻型的数据库,是遵守ACID的关系式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。

二、数据库指令

创建表:create table XXX(name text, passwd text)       

向表中插入数据:insert into XXX values("jack", "ps666")      

查询表中数据:select * from XXX;   

删除指定记录项:delete from XXX where name  = "rose"

删除表:drop table XXX

三、sqlite3相关接口函数

1、打开数据库——sqlite_open()

  1. int sqlite3_open(const char *filename, sqlite3 **ppDb)
  2. /*********************************************************************************
  3. * Description: 打开数据库
  4. * Input: filename:数据库路径名 ppDb:代指打开的数据库(打开的数据库句柄)
  5. * Return: 成功返回 SQLITE_OK
  6. 失败返回 错误码
  7. * Others: 不存在,则创建
  8. **********************************************************************************/

2、执行sql语句——sqlite_exec()

  1. int sqlite3_exec(sqlite3* ppDb, const char *sql, sqlite_callback, void *data, char **errmsg)
  2. /*********************************************************************************
  3. * Description: 执行sql语句
  4. * Input: ppDb:为刚才使用sqlite3_open打开的数据库链接
  5. sql: sql语句
  6. sqlite_callback:回调函数 用于查询 不关心写NULL
  7. data: 回调函数的参数 不关心写NULL
  8. errmsg:返回的错误信息
  9. * Return: 成功返回0 失败返回错误码
  10. * Others:
  11. **********************************************************************************/

3、关闭数据库——sqlite_close()

  1. int sqlite3_close(sqlite3 *ppDb);
  2. /*********************************************************************************
  3. * Description: 关闭数据库
  4. * Input: ppDb:为刚才使用sqlite3_open打开的数据库链接
  5. * Return:
  6. * Others:
  7. **********************************************************************************/

四、代码演示

  1. /*===============================================================
  2. * Copyright (C) 2022 All rights reserved.
  3. *
  4. * 文件名称:sqlite3.c
  5. * 创 建 者:QiuCC
  6. * 创建日期:2022年08月20日
  7. * 描 述:
  8. *
  9. * 更新日志:
  10. *
  11. ================================================================*/
  12. #include <stdio.h>
  13. #include <string.h>
  14. #include <stdlib.h>
  15. #include <sqlite3.h>
  16. #include <strings.h>
  17. #define N 100
  18. int main(int argc, char *argv[])
  19. {
  20. //创建数据库句柄db
  21. sqlite3 *db;
  22. //使用数据库句柄打开数据库
  23. int ret = sqlite3_open("./my.db", &db);
  24. if(ret < 0)
  25. {
  26. perror("打开数据库");
  27. exit(-1);
  28. }
  29. //用于存放数据库中需要执行的数据库指令
  30. char sql[N] = "create table if not exists stu_table(name text, score int);";
  31. char *errmsg;
  32. ret = sqlite3_exec(db, sql, NULL, NULL, &errmsg);
  33. if(ret != 0)
  34. {
  35. printf("sqlite3_exec:%s\n", errmsg);
  36. exit(-1);
  37. }
  38. //拷贝指令到sql中将数据进行写入
  39. strcpy(sql, "insert into stu_table values ('lisi', 86);");
  40. ret = sqlite3_exec(db, sql, NULL, NULL, &errmsg);
  41. if(ret != 0)
  42. {
  43. printf("sqlite3_exec:%s\n", errmsg);
  44. exit(-1);
  45. }
  46. strcpy(sql, "insert into stu_table values ('zhangsan', 91)");
  47. ret = sqlite3_exec(db, sql, NULL, NULL, &errmsg);
  48. if(ret != 0)
  49. {
  50. printf("sqlite3_exec:%s\n", errmsg);
  51. exit(-1);
  52. }
  53. //关闭数据库
  54. sqlite3_close(db);
  55. return 0;
  56. }

五、结果展示

        从上述结果中可以看出,我们成功的将创建了一张成绩的表,并且内部数据均正确,这里值得注意的是,我们的数据库命令在输入完成时一定要加上分号,不然就无法正确执行。 

好的,以上就是本期内容了!!!

欢迎大家参考指正!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/173292?site
推荐阅读
相关标签
  

闽ICP备14008679号