嵌入式数据库是什么

SQLite是一款轻量级的嵌入式数据库,广泛应用于嵌入式设备,因其低内存占用、跨平台性、多语言支持和免费开源而受到青睐。本文介绍了SQLite的特性、安装方法、命令行操作以及API接口的使用,通过实例演示了如何进行数据库的创建、查询、更新和删除等操作。此外,还展示了如何在C语言中使用SQLite3 API进行数据库操作,适合嵌入式学习者快速上手。
摘要由CSDN通过智能技术生成

SQLite,是一款轻型的数据库,其设计目标是嵌入式的数据库,而且当前在很多嵌入式产品中使用到了sqlite数据库,sqlite数据库占用资源非常的低,对嵌入式设备而言,内存是非常宝贵的,而sqlite数据库可能只需要几百K的内存就够了。

Sqlite数据库还能够支持Windows/Linux/Unix等等主流的操作系统,其跨平台的可移植性特别强,这极大的拓展了其生存的空间。

同时能够跟很多程序语言相结合,比如C#、PHP、Java,C等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快,比起Oracle数据库来说,免费也是极大的优势。

SQLite第一个Alpha版本诞生于2000年5月,至2018年已经有18个年头, SQLite 3也已经发布,并成功的进入了我们的事业。

除了上面提到的低内存占用率、跨平台可移植性、多语言支持、免费开源,sqlite3数据库还有强大的功能,比如支持数据库大小可达2TB,十多万行的代码非常适合学习,良好的代码注释等等。

那么我们学习数据库好可以快速的入门,在门外徘徊太久的话会挫伤我们学习的积极性。如果你是一个嵌入式的学习和开发者,那么从以下两个方面出发可以帮你快速的上手sqlite3数据库:

1、Sqlite3的命令 :数据库的创建及增删改查

2、2、sqlite3 API函数接口:用API接口实现数据库的创建及增删改查

当然了,以下是基于Ubuntu平台做的测试:

1-- 安装数据库:

在线安装:sudo apt-get install sqlite sqlite3

sudo apt-get install libsqlite3-dev

sudo apt-get install sqlitebrowser

离线安装:

下载安装下面三个包:

libsqlite3-0_3.7.2-1ubuntu0.1_i386.deb

libsqlite3-dev_3.7.2-1ubuntu0.1_i386.deb

sqlite3_3.7.2-1ubuntu0.1_i386.deb

sudo dpkg -i *.deb (数据库安装文件)

2、Sqlite3的命令

2.1、创建数据库

sqlite3 stu.db

必须指定数据库名字

2.2、sqlite命令

系统命令 以 "."开头

普通命令 ,以";"结束

.schema 查看表的结构

.quit 退出数据库

.exit 退出数据库

.help 查看帮助信息

.databases 查看数据库

.tables 显示数据库中所有的表的表名

2.3、sqlite3 的使用 : 增删改查

1-- 创建一张表

create table 表名(字段名称1 字段类型,字段名称2 字段类型, ....);

create table stu(id int, name char, sex char , score int);

2-- 向表中插入一条记录

insert into 表名 values (字段值1,字段值2,...);

insert into stu values(1001, 'zhangsan', 'm', 89);

insert into stu (id, name, sex,score) values(1002, 'lisi', 'm', 99);

3-- 查询记录

select * from stu; // 查找所有的记录

select * from stu where id=1001; // 查找符号条件的记录

select * from stu where id=1001 and name='zhangsan'; // 字符串需要加引号

select * from stu where name = 'zhangsan' or score=92;

4-- 删除记录

delete from stu where id=1004;

5-- 更新记录

update stu set score=98 where id=1003;

6-- 删除一张表

drop table stu;

7-- 添加一列

alter table stu add column score int;

8-- 删除一列

sqlite3 不允许直接删除一列

1)先创建一张新表

create table stu1 as select id , name from stu;

2)删除原来的旧表

drop table stu;

3)对新表重命名

alter table stu1 rename to stu;

9-- 数据库主键(既设置的数据将会是唯一存在的)

create table usr(name text primary key , passwd text);

3、sqlite3 API 函数接口:

学习API函数接口,那么首先要掌握函数接口的三要素: 功能--参数--返回值,

然后就是写代码去验证我们队函数的理解,然后将函数用到实际的项目开发当中

(1)int sqlite3_open(

const char *filename, /* Database filename (UTF-8) */

sqlite3 **ppDb /* OUT: SQLite db handle */

);

功能:打开一个数据库

参数:filename 数据库名字

ppdb 操作数据库的指针,句柄。

返回值:成功 SQLITE_OK , 失败 error_code

(2)const char *sqlite3_errmsg(sqlite3* db);

功能:获取错误信息描述

(3)int sqlite3_close(sqlite3* db);

功能:关闭一个数据库

(4)int sqlite3_exec(

sqlite3* db, /* An open database */

const char *sql, /* SQL to be evaluated */

int (*callback)(void*,int,char**,char**), /* Callback function */

void * arg, /* 1st argument to callback */

char **errmsg /* Error msg written here */

);

功能:执行一条sql语句

参数:db 数据库的句柄指针

sql 将要被执行sql语句

callback 回调函数, 只有在查询语句时,才给回调函数传参

arg 为callback 传参的

errmsg 错误信息的地址

返回值:成功 SQLITE_OK

出错 errcode 错误码

int (*callback)(void* arg ,int ncolumn ,char** f_value,char** f_name)

功能:得到查询结果

参数:arg 为回调函数传递参数使用的

ncolumn 记录中包含的字段的数目

f_value 包含每个字段值的指针数组

f_name 包含每个字段名称的指针数组

返回值:成功 0,出错 非0

(5)int sqlite3_get_table(

sqlite3 *db, /* An open database */

const char *zSql, /* SQL to be evaluated */

char ***pazResult, /* Results of the query */

int *pnRow, /* Number of result rows written here */

int *pnColumn, /* Number of result columns written here */

char **pzErrmsg /* Error msg written here */

);

功能:查询数据库,它会创建一个新的内存区域来存放查询的结果信息

参数:db 数据库操作句柄

sql 数据库的sql语句

azResult 查询的结果

nRow 行数

nColumn 列数

errmsg 错误消息

返回值:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值