【从零开始的嵌入式生活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


相关文章
|
11天前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
|
9天前
|
存储 缓存 NoSQL
2款使用.NET开发的数据库系统
2款使用.NET开发的数据库系统
|
12天前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
30 4
|
21天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
40 2
|
21天前
|
监控 Java 数据库连接
在Java开发中,数据库连接管理是关键问题之一
在Java开发中,数据库连接管理是关键问题之一。本文介绍了连接池技术如何通过预创建和管理数据库连接,提高数据库操作的性能和稳定性,减少资源消耗,并简化连接管理。通过示例代码展示了HikariCP连接池的实际应用。
19 1
|
30天前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
1月前
|
Rust 前端开发 关系型数据库
Tauri 开发实践 — Tauri 集成本地数据库
本文介绍了在 Tauri 框架中集成本地数据库的几种方案,包括直接绑定 SQLite、使用第三方数据库库和使用 tauri-plugin-sql-api 插件。最终选择了 tauri-plugin-sql-api,因为它集成简单、支持多种数据库类型,并且与 Tauri 框架深度整合,提升了开发效率和安全性。文章详细介绍了如何安装和使用该插件,以及如何编写核心代码实现数据库操作。
150 2
|
1月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
47 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
1月前
|
存储 NoSQL API
.NET NoSQL 嵌入式数据库 LiteDB 使用教程
.NET NoSQL 嵌入式数据库 LiteDB 使用教程~
|
3月前
|
存储 前端开发 关系型数据库
秀啊,用Python快速开发在线数据库更新修改工具
秀啊,用Python快速开发在线数据库更新修改工具
下一篇
无影云桌面