今天讲一讲数据库开发,这部分结束之后就会进入底层的开发原理和实践了,应用层的开发其实还是蛮有意思的,但是我们的目标是底层开发,冲鸭0.0
🧑🏻作者简介:一个学嵌入式的年轻人
✨联系方式:2201891280(QQ)
📔源码地址:https://gitee.com/xingleigao/study_qianrushi
⏳全文大约阅读时间: 60min
文章目录
数据库
数据基本概念
常用的数据库
基于嵌入式的数据库
SQLite
SQLite的命令行操作
SQlite的安装
SQlite的基本命令
系统命令
sql命令
SQLite编程接口
打开数据库
关闭数据库
查看错误消息
执行sql语句
写在最后
数据库
数据基本概念
数据(Data)
能够输入计算机并能被计算机程序识别和处理的信息集合
数据库 (Database)
数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合
常用的数据库
大型数据库
Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。
IBM 的DB2是第一个具备网上功能的多媒体关系数据库管理系统,支持包Linux在内的一系列平台。
中型数据库
Server是微软开发的数据库产品,主要支持windows平台。
小型数据库
mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,2008年被Sun公司收购,开放源码。
基于嵌入式的数据库
由于嵌入式平台对资源的要求非常高,所以不太适用于上面的数据库。
基于嵌入式Linux的数据库主要有SQLite, Firebird, Berkeley DB, eXtremeDB
Firebird是关系型数据库,功能强大,支持存储过程、SQL兼容等
SQLite关系型数据库,体积小,支持ACID事务
Berkeley DB中并没有数据库服务器的概念,它的程序库直接链接到应用程序中
eXtremeDB是内存数据库,运行效率高
SQLite
SQLite的源代码是C,其源代码完全开放。SQLite第一个Alpha版本诞生于2000年5月。 他是一个轻量级的嵌入式数据库。
SQLite有以下特性:
零配置一无需安装和管理配置;
储存在单一磁盘文件中的一个完整的数据库;
数据库文件可以在不同字节顺序的机器间自由共享;
支持数据库大小至2TB;
足够小,全部源码大致3万行c代码,250KB;
比目前流行的大多数数据库对数据的操作要快;
SQLite的命令行操作
SQlite的安装
1–在线安装
apt 包管理是不是可以拿来用一用啦
sudo apt install sqlite
sudo apt install sqlite
2–本地安装
官网下载
然后解压之后sudo dpkg -i *.deb就好了
SQlite的基本命令
系统命令
以.开头的命令
sql命令
不以.开头, 以;结尾的命令
删除一列
1.创建一张新表
create table stu1 as select id,name,score from stu;
2.删除原有表
drop table stu;
3.改名
alter table stu1 rename to stu;
SQLite编程接口
API官网列表和介绍
需要相关的库文件:sudo apt-get install libsqlite3-dev
打开数据库
int sqlite3_open( const char *filename, //数据库路径 sqlite3 **ppDb //数据库的指针 文件句柄 );
功能:打开sqlite数据库
参数:
filename 数据库路径
ppDb:数据库的操作句柄(指针)
返回值:成功返回SQLITE_OK,失败返回错误码
关闭数据库
int sqlite3_close(sqlite3*);
功能:关闭sqlite数据库
参数:db,数据库的指针
返回值:成功返回SQLITE_OK,失败返回错误码
查看错误消息
const char *sqlite3_errmsg(sqlite3*);
功能:通过db查看错误
返回值:错误消息
执行sql语句
int sqlite3_exec( sqlite3*, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void*,int,char**,char**), /* Callback function */ void *, /* 1st argument to callback */ char **errmsg /* Error msg written here */ );
参数:
1.db 数据库操作句柄
2.sql 一条sql语句
3.callback 回调函数,只有sql为查询语句的时候,才会执行这个语句。
4.arg 给回调函数传递的参数
5.errmsg 错误消息
返回值:成功SQLITE_OK
typedef int (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name);
功能:每找到一条记录自动执行一次回调函数
para:传递给回调函数的参数
f_num:记录中包含的字段数目
f_value:包含每个字段值的指针数组
f_name:包含每个字段名称的指针数组
返回值:成功返回0,失败返回-1
小demo:
相关的代码在gitee库:/study_qianrushi/7.SQLite下
写在最后
应用层结束啦!!!!!!!!!!!!!!!!!!!!!!接下来大概一周时间更新一个大 的应用之后进入底层开发,长按催更见,前面的应用较多大家跟我一起改变世界。啊哈哈哈,求求大家给个三连再走吧,求求你们了0.0