嵌入式day36

news2024/11/14 13:22:35

数据库

专业存储数据、大量数据

数组、链表、变量---->内存:程序运行结束、掉电数据丢失

文件---->硬盘:程序运行结束、掉电数据不丢失

数据库---->硬盘

数据库文件与普通文件区别:

1.普通文件对数据管理(增删改查)效率低

2.数据库对数据管理效率高,使用方便

常用数据库:

1.关系型数据库:

        将复杂的数据结构简化为二维表格形式

        大型:Oracle、DB2

        中型:MySql、SQLServer

        小型:Sqlite

2.非关系型数据库:

        以键值对存储,且结构不固定

        //JSON

        Redis

        MongoDB

嵌入式数据库:

sqlite3:

stu.db

1.开源免费,c语言开发

2.代码量少,1万行左右,总大小10M以内

3.文件型数据库,可以移动

4.数据容量最大2T

sqlite3

1.sqlite相关的命令

        .tables 查看数据库中的表

        .headers on | off 开启/关闭表头

        .mode column 列对齐

        .width 列宽1 列宽2 设置列宽

        .schema 表名 查询表头

2.sqlite的SQL语句

每个SQL语句后面必须要有一个分号

INTEGER:整型

REAL:浮点型

TEXT:文本类字符串

NULL:空

        1.创建表

                create table 表名(列名1 数据类型,列名2 数据类型,列名3 数据类型);

        2.插入数据

                insert into 表名 values(值1,值2,值3);

        3.查询

                select 列名1,列名2 from 表名;

                select * from 表名;(所有)

        4.条件查询

                select * from 表名 where 条件(列 关系运算符 值);

                关系运算符:>, <,=,!=,>=,<=,and,or

        5.模糊查找

                select * from 表名 where 列 like

                % 可以通配多个字符

                _ 只能通配一个字符

        6.升序/降序排列

                select * from 表名 order by 列名 ASC/DESC

        7.删除一行

                delete from 表名 where 列名 关系运算符 值;

        8.删除表

                drop 表名;

        9.修改

                update 表名 set=新值 where 列=值;

        10.设置主键值自动增长列

                1.主键值自动增长列的数据类型必须是INTEGER

                2.类名 INTEGER PRIMARY KEY AUTOINCREMENT

        11.设置时间

                select datetime(“now”, “+8 hours”)

        12.多表联查

                CROSS JOIN 交叉连接

                INNER JOIN 内连接

                OUTER JOIN 外连接

3.sqlite3提供的c/c++ API接口

sqlite3_open

打开数据库,如果不存在,则创建

参数:

filename 数据库名称

ppDb 保存数据库句柄的地址

返回值:

成功 返回SQLITE_OK

失败 返回错误码

sqlite_exec

执行sql语句

        

参数:

sqlite*pdb         数据库句柄

sql         要执行的sql语句的首地址

int calllback(void*arg,int column_cnt,char * *column_value,char **column_name)(回调函数)

        功能         在使用sqlite3_exec执行select语句时,每查找到一条数据,则调用一次回调

        参数         arg sqlite_exec传递的第4个参数

                        column_cnt 查找到的数据的列数

                        column_value 查找到的一行数据的每一列值的地址的集合

                        column_name 查找到得一行数据得每一列列名的地址的集合

        返回值         成功返回0

注意:

        1.每找到一行,回调触发一次

        2.回调函数必须返回0

errmsg         存储错误信息的地址

返回值:

成功         返回SQLITE_OK

失败         返回错误码

增删改查

c中二级指针的使用场景:

1.在被调函数中修改主调函数中的指针变量

2.指针数组的数组名为二级指针

快速查询:sqlitebrowser +数据库名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2086748.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

提前还房贷结果失败了该怎么办?需要注意哪些?怎么做更顺利?

提前还房贷结果失败了&#xff0c;该怎么办&#xff1f; 1. 满足条件再申请&#xff1a;部分银行对提前还款设有一定的条件和限制&#xff0c;例如需要提前预约&#xff0c;对已还款时间和还款金额也有具体的要求。如果借款人未能满足这些条件&#xff0c;提前还款的申请可能会…

0829作业+思维导图

一、作业 代码&#xff1a; #include <iostream> #include <string.h> #include <stdio.h> using namespace std; class Mystring { public://无参构造Mystring():size(10){str new char[size];cout<<"无参构造完成"<<endl;}//有参…

【Java】—— Java面向对象进阶:Java银行账户管理系统设计与实现

目录 1. 账户类&#xff08;Account&#xff09; 2. 客户类&#xff08;Customer&#xff09; 3. 银行类&#xff08;Bank&#xff09; 4. 测试类&#xff08;BankTest&#xff09; 运行结果 在今天的博文中&#xff0c;我们将一起探讨一个简单的Java银行账户管理系统的设…

【JavaEE初阶】HTTP请求(Request)

&#x1f4d5;引言 HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成 本片文章将从以下四个方面对HTTP请求报文进行解析 URL方法请求报头正文 &#x1f384;认识URL 我们先抓一个包来看一下URL在包里面的位置 平时我们俗称的 “网址” 其实就是说的 URL (…

数据库——开篇

一、数据存储方式 1、内存存数据&#xff1a;当程序运行结束&#xff0c;掉电&#xff0c;数据丢失。&#xff08;数组、链表、变量等&#xff09; 2、硬盘存数据&#xff1a;程序运行结束&#xff0c;掉电&#xff0c;数据不丢失。 &#xff08;1&#xff09;文件&#xff…

盘点2024年wind录屏好用工具,这四款打工人常备!

嘿&#xff0c;朋友们&#xff0c;今天我要给大家分享一下关于Windows自带录屏系统以及几款热门录屏软件的使用方法和体验感。录屏功能对于很多小伙伴来说可是个宝贝&#xff0c;无论你是要录制游戏过程、制作教学视频还是记录生活小确幸&#xff0c;都能派上用场。接下来&…

HAL库:串口 不定长数据接收 + 循环收发缓冲区 + 空闲中断 收发数据

目录 HAL库&#xff1a;不定长数据接收 循环收发缓冲区 空闲中断 收发数据 串口&#xff1a;多指针定位收发循环使用缓冲区设计 文件架构&#xff1a; 程序部分大体思路 Uart.h Uart.c stm32fxx_It.c main.c HAL库&#xff1a;不定长数据接收 循环收发缓冲区 空闲中…

SOCKS5代理配置中的常见问题:故障排除指南

SOCKS5代理是一种灵活的网络代理协议&#xff0c;被广泛用于提高网络隐私、访问受限内容、绕过网络限制等。然而&#xff0c;用户在配置SOCKS5代理时经常会遇到各种问题&#xff0c;这些问题可能会影响网络连接的稳定性和安全性。 了解这些常见问题及其解决方案可以帮助用户更…

水陆双雄:赛艇与VELO Angel Revo Halo坐垫的平衡共舞~

在广阔的水域上&#xff0c;赛艇运动员们以划桨为笔&#xff0c;书写着速度与激情的篇章。每一桨的挥动&#xff0c;都是力量与技巧的完美结合。而在自行车运动中&#xff0c;VELO Angel Revo Halo坐垫则如同骑行者的守护神&#xff0c;以科技与环保之名&#xff0c;为长途跋涉…

【开学季】你需要这样一个桌面倒计时 时刻提醒你不负韶华

【开学季】你需要这样一个桌面倒计时 时刻提醒你不负韶华。又到开学季了&#xff0c;莘莘学子陆续的回归到校园&#xff0c;开启人生价值的提升。 时光荏苒&#xff0c;岁月如梭&#xff0c;转眼间又是开学季。这个季节&#xff0c;总是承载着太多的期待与梦想&#xff0c;它像…

推荐2024年新手友好的4款音乐剪辑软件!

最近我开始接触音乐剪辑&#xff0c;想把一些歌曲进行剪辑创作&#xff1b;于是在网上好多了很多的音频剪辑软件进行试用&#xff0c;一番下来&#xff0c;发现了4款使用起来体验感比较好的专业剪辑工具&#xff0c;在这里跟大家分享分享。这些工具都可以被应用于歌曲创作&…

样式(3)----修改主题颜色

楔子&#xff1a;做软件时&#xff0c;经常有这样的需求&#xff0c;这样配色不合适&#xff1f;或者像动态的修改样式&#xff1f;那问题来了&#xff1a;怎样修软件界面的主题、修改皮肤&#xff1f; 方法1&#xff1a;使用第三方控件&#xff0c;直接更换主题&#xff0c;p…

电商库存API:商家数字化转型的加速器

在电商行业&#xff0c;库存管理是运营的核心之一。随着业务的扩展和消费者需求的多样化&#xff0c;传统的库存管理方法已经难以满足现代电商的需求。这时&#xff0c;电商库存API应运而生&#xff0c;为商家提供了一种高效、灵活的库存管理手段。 一、对接电商库存API的重要…

如何用SpringBoot搭建摇滚乐鉴赏网站?一步步教你实现音乐分享与社区互动!

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

高效产品设计:十大关键经验教程

在当今这个竞争异常激烈的市场环境中&#xff0c;产品系统设计的效率已经迅速成为企业能否取得成功的关键因素之一。随着消费者需求的不断变化和技术发展的日新月异&#xff0c;企业必须快速响应市场动态&#xff0c;以便在激烈的竞争中保持优势。而一套高效的产品系统设计方法…

js逆向——异步栈分析(上)

案例1&#xff1a; 受害者网站&#xff1a;https://m.ctyun.cn/wap/main/auth/login 首先抓包分析一波 发现是xhr请求&#xff0c;可以跟栈调试&#xff0c;相对还是容易一些 前面三个一般是send,ajax,xmlhttprequest这种封装好的发包的库&#xff0c;一般不用在意&#xff…

图像数据处理25

六、 图像分割 6.2区域生长 6.2.1区域生长的基本概念&#xff1a;可以理解成先选择一个像素区域&#xff0c;然后将其邻接区域中相似程度高的像素合并进去&#xff0c;直到找不到可以合并的像素为止。其的主要优点是能够较为精准地将具有相同特征的联通区域分割出来。 6.2.2…

农产品品牌优化:软硬兼施,全网突围成焦点

农产品品牌想要在全网范围内脱颖而出&#xff0c;‌单靠传统的“硬实力”——如优质的产品质量、‌丰富的种植经验或是先进的生产技术&#xff0c;‌已经远远不够。‌在这个多元化的市场竞争中&#xff0c;‌软实力成为了决定品牌能否远航的关键。‌ 农产品讲究品牌软实力&…

【大模型】chatglm系列模型基础

前言&#xff1a;2022年11月&#xff0c;斯坦福大学大模型中心对全球30个主流大模型进行了全方位的评测2&#xff0c;GLM-130B 是亚洲唯一入选的大模型。GLM-130B 在准确性和恶意性指标上与 GPT-3 175B持平。chatglm1&#xff0c;2&#xff0c;3代在模型架构上基本一样&#xf…

day-43 有效的数独

思路 暴力解法&#xff1a;1.判断每行是否有重复的数字;2.判断每列是否有重复的数字&#xff1b;3.判断每一个以粗实线分隔的 3x3 宫内是否有重复的数字 解题过程 如果以上三种情况都不存在重复的数字&#xff0c;则返回true Code class Solution {public boolean isValidSu…