sqlite3数据库归纳

简介:
sqlite3数据库是关系型 数据库,体积小,支持ACID事物。
  (ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。)
  /********************************************/
  sqlite是一个轻量级的嵌入式数据库。
  特征:
  1.零配置,无需安装和管理配置;
  2.储存在单一磁盘文件中的一个完整的数据库;
  3.数据库文件可以在不同字节顺序的机器间自由共享;
  4.支持数据库大小至2TB;
  5.足够小,全部源代码大致3万行c代码,250KB;
  6.比以前流行的大多数数据库对数据的操作要快;
  /*******************************************/
  SQLite数据库采用模块化设计,由8个独立的模块构成,这些独立模块又构成了三个主要的子系统,模块将复杂的查询过程分解为细小的 工作进行处理。
  /*******************************************/
  手工建数据库:
  linux@ubuntu:~$ sqlite3 my.db
  查看帮助:
  sqlite> .help
  文件存放位置:
  sqlite> .database
  退出:
  sqlite> .quit
  查看表:
  sqlite> .tables
  显示表的结构:
  sqlite> .schema
  1.建表:
  sqlite> create table usr(id integer primary key, name text,age integer null, gender text, salary real not null);
  2.删除表
  sqlite> drop table usr;
  3.增:
  sqlite> insert into usr(id, name, age, salary) values(2, 'liu', 20, 6000);
  4.删
  sqlite> delete from usr where id = 2;
  5.改:
  sqlite> update usr set gender = 'man' where id = 3;
  6.查:
  sqlite> select * from usr where id = 2;

  7.在表中添加字段
  sqlite>alter table  usr  add  column   country   text;
  /******************************************/
  代码创建
  sqlite编程接口
  1.打开sqlite数据库
  int  sqlite3_open(char *path, sqlite3 **db);
  path: 数据库文件的路径
  db:     指向sqlite句柄的指针
  返回值: 成功返回0,失败返回错误码(非零值)
  2.关闭sqlite数据库
  int  sqlite3_close(sqlite3 *db);
  返回值: 成功返回0,失败返回错误码
  3.
  const  char  *sqlite3_errmsg(sqlite3 *db);
  返回值: 返回错误信息
  程序的编译方法:
  gcc  -o  test  test.c  -lsqlite3
  4.执行SQL操作
typedef int (*sqlite3_callback)(void *, int, char **, char **);
int  sqlite3_exec(sqlite3 *db, const char *sql, sqlite3_callback callback, void *, char **errmsg);
db:     函数库句柄
sql:     SQL语句
callback:回调函数
errmsg:     错误信息指针的地址
  返回值:     成功返回0,失败返回错误码
  5.每次找到一条记录自动执行一次回调函数
typedef  int  (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name);
para: 传递回调函数的参数
f_num: 记录包含的字段数目
f_value: 包含每个字段值的指针数组
f_name: 包含每个字段名称的指针数组
  返回值: 成功返回0,失败返回-1
  6.不使用回调函数执行SQL操作
  int  sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int *nrow, int *ncolumn, char **errmsg);
  db: 数据库句柄
  sql: SQL语句
  resultp: 用来指向sql执行结果的指针
  nrow: 满足条件的记录的数目
  ncolumn: 每条记录包含的字段数目
  errmsg: 错误信息指针的地址
  返回值: 成功返回0,失败返回错误码

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
23天前
|
API 数据库 C语言
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
163 0
|
2月前
|
存储 监控 安全
内网屏幕监控软件的数据存储与管理:使用SQLite数据库保存监控记录和配置信息
在当今数字化时代,安全和监控在企业和组织中变得至关重要。内网屏幕监控软件作为一种关键工具,帮助组织监视员工的活动并确保信息安全。这种软件不仅需要高效地记录和管理监控数据,还需要能够方便地进行配置和调整。本文将讨论如何使用SQLite数据库来保存监控记录和配置信息,并介绍如何通过自动化机制将监控到的数据提交到指定网站。
149 2
|
5天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
1月前
|
关系型数据库 数据库 C++
嵌入式数据库sqlite3【基础篇】基本命令操作,小白一看就懂(C/C++)
嵌入式数据库sqlite3【基础篇】基本命令操作,小白一看就懂(C/C++)
|
1月前
|
存储 SQL 数据库
django如何连接sqlite数据库?
django如何连接sqlite数据库?
38 0
|
2月前
|
SQL 数据库管理
sqlite语句order by两个字段同时排序处理
sqlite语句order by两个字段同时排序处理
19 0
|
2月前
|
SQL 关系型数据库 MySQL
Python中的数据库操作:SQLite与MySQL的连接
Python中的数据库操作:SQLite与MySQL的连接
113 0
|
2月前
|
SQL 存储 数据库
艺术型轻量级数据库 --Sqlite
艺术型轻量级数据库 --Sqlite
|
3月前
|
SQL Dart 数据库
Flutter笔记: 在Flutter应用中使用SQLite数据库
Flutter笔记: 在Flutter应用中使用SQLite数据库
180 0
|
3月前
|
SQL 数据可视化 关系型数据库
7款实用的SQLite数据库可视化管理工具
7款实用的SQLite数据库可视化管理工具
184 0