查看: 370  |  回复: 0
使用LS10串口数据库模块实现单片机SQL数据库存取功能
爱品质的工程师
4
主题
1
回复
发表于2022-09-05 15:28:43 | 只看该作者
1# 电梯直达
 资料下载:

链接:https://pan.baidu.com/s/1UkrQQ63QB39Hl2xNxq0ypw

提取码:ls10



历史上,sql数据库都是后台的专利,底层单片机使用sql数据库是天方夜谭。很多时候,底层都需要存储一段时间的数据,例如近一年的交易数据,且要能对特定数据快速查询,这种功能单片机往往很难去做。


现在分享LS10串口数据库模块实现单片机存取sql数据库功能。

 




关系型数据库功能:

1, 创建表;

2, 插入数据;

3, 修改数据;

4, 查询数据;

5, 删除数据;

6, 删除表。


根据手册,LS10模块使用5V电源,uart TTL接口(3.3V)与单片机通信,使用AT命令实现数据库功能。LS10模块可供数据库使用的空间为约2.5M。



 

LS10模块上电启动成功后,串口会输出Rdy标志。


此时,给LS10发AT回车能得到OK响应,见下图:

 



AT+SQL命令用于执行数据库语句,下面一一介绍。


1, 创建表

给LS10模块发送如下命令:

AT+SQL=”CREATE TABLE test_tab(ID INTPRIMARY KEY NOT NULL,PAR1 INT,PAR2 REAL,PAR3 TEXT)”

该AT命令用于创建sql表格,表格名为test_tab,表格列项分别为ID,PAR1,PAR1,PAR3,其中ID为int型,且为主键,PAR1为INT型,PAR2为REAL型,PAR3为TEXT型。

接着可以使用AT+SQLSTRU查询模块内表格及结构。见下图:

 


从上图可以看出,模块内部已经创建了test_tab表格。



2, 插入一行数据

AT+SQL=”INSERT INTO test_tab VALUES(1,188,1.253,’abcdefg’)”

该命令向所有列插入数据,插入的数据分别为1,188,1.253和‘abcdefg’;

AT+SQL=”INSERT INTO test_tab (ID,PAR3) VALUES(2,’hijklmn’)”

该命令向部分列插入数据;

我们可以使用select语句查看我们插入的数据,如下图:


 


从上图可以看出,我们插入的数据已经可以查询到了,其中&是列分隔符。  



3, 修改数据

发送如下命令:

AT+SQL="UPDATE test_tab SET PAR2=2.568,PAR3='I love China' WHERE ID=1"

该命令将ID为1的列,所对应的PAR2改为2.568,PAR3改为’I love China’

 


从上图可以看出,对应的数据已经完成修改;



4, 删除数据

AT+SQL="DELETE FROM test_tab WHERE ID<=1"

上述命令用于删除ID<=1的数据行;

 


执行完成后,通过select语句查询,ID为1的数据已经被删除。



5, 删除表

AT+SQL="DROP TABLE test_tab"

该命令用于删除表test_tab

 


执行删除表命令后,使用AT+SQLSTRU查询,可以看出表格已经被删除。




容量测试,分享如下:


表格结构(sn int primary key not null,id int,p1 int,p2 int,p3 real,p4 text,p5 text),

存储的内容分别为

sn(自增),id(自增),p1(自增),p2(自增),1.23456,abcdefghijklmn


空间占用快满时,存储了115888条数据。

按照手册的要求,始终保留至少500K空间,也至少能存储50000条数据。





主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部