【从零开始的嵌入式生活7】数据库开发

简介: 【从零开始的嵌入式生活7】数据库开发

今天讲一讲数据库开发,这部分结束之后就会进入底层的开发原理和实践了,应用层的开发其实还是蛮有意思的,但是我们的目标是底层开发,冲鸭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的基本命令

系统命令

以.开头的命令

113497632266e3b1db4148d2a22e0a3.png


sql命令

不以.开头, 以;结尾的命令

e9068121577db07f584a7fb2b65b084.png



删除一列

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


相关文章
|
3天前
|
SQL 存储 关系型数据库
数据库开发之图形化工具以及表操作的详细解析
数据库开发之图形化工具以及表操作的详细解析
21 0
|
3月前
|
存储 NoSQL API
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
140 0
|
3月前
|
SQL 关系型数据库 MySQL
Python 数据库访问与ORM框架——打造高效开发利器
Python 作为一门广泛使用的编程语言,其在数据库访问方面也有着较为成熟的解决方案,其中ORM框架更是成为了开发者们的首选。本文将介绍 Python 中数据库访问和 ORM 框架的基本概念,以及如何使用 SQLAlchemy 这一优秀的 ORM 框架进行开发。
|
3月前
|
关系型数据库 API 数据库
Python数据库访问与ORM框架:加速开发、提升效率
在现代软件开发中,数据库是不可或缺的组成部分。本文介绍了Python中数据库访问的重要性,并探讨了ORM框架(例如SQLAlchemy)如何帮助程序员加速开发、提升效率。通过使用ORM框架,开发人员可以轻松地将Python对象映射到数据库表,并且可以通过简洁的API进行数据库操作。此外,本文还讨论了ORM框架在处理复杂查询、维护数据一致性和实现数据库迁移方面的优势。
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
|
3月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
50 0
|
3月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
49 0
|
3月前
|
SQL 数据库 C++
C++ Qt开发:Charts与数据库组件联动
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍`Charts`组件与`QSql`数据库组件的常用方法及灵活运用。在之前的文章中详细介绍了关于`QCharts`绘图组件的使用方式,本章将继续延续这个知识点,通过使用`QSql`数据库模块动态的读取某一个时间节点上的数据,当用户点击查询数据时则动态的输出该事件节点的所有数据,并将数据绘制到图形组件内,实现动态查询图形的功能。
34 0
C++ Qt开发:Charts与数据库组件联动
|
3天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
14 0
|
3月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)

热门文章

最新文章