当前位置: 首页 > news >正文

Linux---sqlite3数据库

一、数据库分类

1. 按数据关系分类
类型特点代表产品
关系型数据库- 使用 SQL(结构化查询语言)<br>- 数据以行列形式存储,支持事务和复杂查询MySQL、Oracle、SQLite
非关系型数据库- 无固定表结构(如键值对、文档、图)<br>- 高扩展性,适合非结构化数据MongoDB、Redis
2. 按功能规模分类
类型特点代表产品
大型数据库高并发、高可用性,支持企业级应用Oracle、DB2
中型数据库适用于中小型企业,跨平台支持MySQL、MSSQL
小型数据库轻量级,嵌入式或单机应用SQLite

注:以上分类中的代表产品均为关系型数据库。


二、核心概念与术语

1. 基础术语
  • DB(Database):存储数据的集合(如:用户表、订单表)。
  • DBMS(Database Management System):管理数据库的软件(如:MySQL、Oracle)。
  • MIS(Management Information System):集成数据库的管理信息系统(如:ERP系统)。
  • OA(Office Automation):基于数据库的办公自动化系统(如:审批流程系统)。
2. 数据库结构层次
数据库(DB)
├── 表(Table)
│   ├── 字段(Field,最小单位,如:姓名、年龄)
│   └── 记录(Record,由字段组成的一行数据)
└── 其他表...
  • 字段:表的列,定义数据类型(如:VARCHARINT)。
  • 记录:表的行,表示一条完整数据。

三、SQLite 数据库特点

1. 核心特性
特性说明
开源与轻量使用 C 语言开发,代码量约 1 万行,体积小于 10MB
无需安装绿色软件,直接集成到应用中
文件型数据库数据存储在单一文件中(如:data.db),便于迁移和备份
高兼容性支持跨平台(Windows/Linux/嵌入式设备)
容量限制单库最大支持 2TB 数据
2. 适用场景
  • 移动应用(如:Android/iOS 本地存储)
  • 嵌入式设备(如:智能硬件)
  • 小型项目原型开发

四、数据库文件操作

1. 创建/打开数据库
sqlite3 test.db    # 创建或打开 test.db 数据库文件

提示符变为 sqlite> 表示进入交互模式

2. 导入导出数据
# 导出数据库到 SQL 脚本
sqlite3 test.db .dump > backup.sql# 从 SQL 脚本导入数据
sqlite3 new.db < backup.sql


五、数据表操作 (DDL)

1. 创建表
-- 基础表结构
CREATE TABLE users (id INTEGER PRIMARY KEY,   -- 主键约束name TEXT NOT NULL,       -- 非空约束age INTEGER,reg_date DATETIME DEFAULT CURRENT_TIMESTAMP
);-- 带自增主键
CREATE TABLE user3 (id INTEGER PRIMARY KEY AUTOINCREMENT,name CHAR(20),age INT
);

SQLite 是弱类型数据库,字段类型仅为建议类型

2. 删除表
DROP TABLE users;  -- 慎用!会删除表结构和所有数据

六、数据操作 (DML)

1. 插入数据
-- 全字段插入
INSERT INTO users VALUES (1, '张三', 25, '2023-08-20 10:00:00');-- 指定字段插入
INSERT INTO users (name, age) VALUES ('李四', 30);-- 插入当前时间
INSERT INTO user1 VALUES (2, '王五', 28, datetime('now','+8 hours'));
2. 更新数据
-- 修改指定记录
UPDATE users SET age = 26 WHERE name = '张三';-- 多条件更新
UPDATE users SET age = 27 WHERE name = '李四' AND id = 2;
3. 删除数据
-- 清空表 (保留结构)
DELETE FROM users;-- 条件删除
DELETE FROM users WHERE age < 18;
DELETE FROM users WHERE id = 3 OR name = 'test';

七、数据查询 (DQL)

1. 基础查询
-- 查询所有字段
SELECT * FROM users;-- 查询指定字段
SELECT name, age FROM users;-- 条件查询
SELECT * FROM users WHERE age BETWEEN 20 AND 30;
2. 复杂查询
-- 排序查询
SELECT * FROM users ORDER BY age DESC;-- 模糊查询
SELECT * FROM users WHERE name LIKE '张%';-- 分页查询
SELECT * FROM users LIMIT 10 OFFSET 5;  -- 第6-15条记录

八、系统命令(以 . 开头)

命令功能
.tables显示所有表
.schema users查看 users 表结构
.dump users导出 users 表的 SQL 脚本
.mode column列式显示结果
.headers on显示列标题
.q退出 SQLite

九、数据类型与约束

1. 常用数据类型
类型描述
INTEGER整型 (支持自增 AUTOINCREMENT)
TEXT字符串
REAL浮点数
BLOB二进制数据
DATETIME日期时间 (需用函数处理)
2. 常用约束
约束说明
PRIMARY KEY主键 (唯一标识记录)
NOT NULL禁止空值
DEFAULT设置默认值
UNIQUE

值必须唯一

十、SQLite C 语言接口编程


(一)核心操作流程

graph TDA[打开数据库 sqlite3_open] --> B[执行操作]B --> C{操作类型}C -->|查询| D[使用 sqlite3_get_table]C -->|增删改| E[使用 sqlite3_exec]B --> F[关闭数据库 sqlite3_close]

(二)核心函数详解

1. 打开数据库 sqlite3_open
int sqlite3_open(const char *filename, sqlite3 **ppDb);
参数说明
filename数据库文件路径 (若不存在则自动创建)
ppDb输出参数,用于接收数据库句柄指针

返回值

  • SQLITE_OK (0):成功
  • 其他值:错误代码 (需用 sqlite3_errmsg() 获取错误信息)

示例

sqlite3 *db = NULL;
int rc = sqlite3_open("test.db", &db);
if (rc != SQLITE_OK) {fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db));exit(1);
}

2. 执行查询操作 sqlite3_get_table
int sqlite3_get_table(sqlite3 *db,          // 数据库句柄const char *zSql,     // SQL 语句char ***pazResult,    // 结果集指针int *pnRow,           // 返回行数int *pnColumn,        // 返回列数char **pzErrmsg       // 错误信息指针
);

结果集结构

// 假设查询返回 2 列 (name, age) 和 3 行数据
pazResult[0] = "name"
pazResult[1] = "age"
pazResult[2] = "Alice"
pazResult[3] = "25"
pazResult[4] = "Bob"
pazResult[5] = "30"

示例

char **result;
int rows, cols;
char *errmsg = NULL;rc = sqlite3_get_table(db, "SELECT name, age FROM users", &result, &rows, &cols, &errmsg);if (rc == SQLITE_OK) {// 处理结果集for (int i = 0; i <= rows; i++) { // 第0行是列名for (int j = 0; j < cols; j++) {printf("%s\t", result[i*cols + j]);}printf("\n");}sqlite3_free_table(result); // 必须释放内存!
} else {fprintf(stderr, "SQL错误: %s\n", errmsg);sqlite3_free(errmsg);
}

3. 执行非查询操作 sqlite3_exec
int sqlite3_exec(sqlite3 *db,               // 数据库句柄const char *sql,           // SQL 语句int (*callback)(void*,int,char**,char**), // 回调函数void *arg,                 // 回调函数参数char **errmsg              // 错误信息指针
);

回调函数原型

int callback(void *arg,        // 用户传递的参数int num_cols,     // 结果列数char **col_values, // 当前行的列值char **col_names   // 列名数组
);

示例

// 插入数据
rc = sqlite3_exec(db, "INSERT INTO users VALUES(3, 'Charlie', 28)", NULL, NULL, &errmsg);// 带回调的查询
int print_callback(void *arg, int cols, char **values, char **names) {for (int i = 0; i < cols; i++) {printf("%s: %s\t", names[i], values[i]);}printf("\n");return 0; // 必须返回0
}rc = sqlite3_exec(db, "SELECT * FROM users", print_callback, NULL, &errmsg);

4. 关闭数据库 sqlite3_close
int sqlite3_close(sqlite3 *db);

注意事项

  • 关闭前必须完成所有事务
  • 返回 SQLITE_BUSY 表示仍有未完成的查询

(三)内存管理与错误处理

1. 释放资源
sqlite3_free_table(char **result);  // 释放 sqlite3_get_table 的结果
sqlite3_free(void *ptr);           // 释放错误信息内存
2. 错误信息获取
const char *errmsg = sqlite3_errmsg(db);
printf("错误信息: %s\n", errmsg);

实例:

程序用于将一个文本格式的字典文件(每行包含一个单词及其解释)转换为 SQLite 数据库格式,便于后续的查询和管理。

#include <stdio.h>
#include <sqlite3.h>
#include <string.h>
#include <unistd.h>// 主函数,参数为字典文本文件和目标数据库文件
int main(int argc, const char *argv[])
{// 检查命令行参数是否正确if (argc != 3){printf("Usage: %s <*.txt> <*.db>\n", argv[0]);return -1;}// 打开字典文本文件FILE *fp = fopen(argv[1], "r");if (fp == NULL){perror("fopen fail");return -1;}// 初始化 SQLite 数据库sqlite3 *db;int ret = sqlite3_open("dict.db", &db); // 打开或创建数据库文件if (ret != SQLITE_OK){printf("sqlite3_open fail:%s\n", sqlite3_errmsg(db));return -1;}printf("sqlite3_open success\n");// 创建字典表char sql[1024] = {0};printf("Please create table:");fgets(sql, sizeof(sql), stdin); // 从标准输入读取创建表的 SQL 语句sql[strlen(sql) - 1] = '\0';     // 去除换行符char *errmsg = NULL;ret = sqlite3_exec(db, sql, NULL, NULL, &errmsg); // 执行 SQL 语句if (ret != SQLITE_OK){printf("sqlite3_exec fail : %s \n", errmsg);return -1;}// 读取字典文本文件并插入数据库char buf[1024] = {0};int i = 0;while (1){char *pret = fgets(buf, sizeof(buf), fp); // 逐行读取文本文件if (pret == NULL){break; // 读取完成}// 解析单词和解释char *pword = strtok(buf, " ");    // 提取单词char *pexplain = strtok(NULL, "\r"); // 提取解释printf("pword    = %s\n", pword);printf("pexplain = %s\n", pexplain);// 构造插入 SQL 语句sprintf(sql, "insert into dict values (%d,\"%s\",\"%s\");", i, pword, pexplain);ret = sqlite3_exec(db, sql, NULL, NULL, &errmsg); // 执行插入操作if (ret != SQLITE_OK){printf("sqlite3_exec fail : %s \n", errmsg);return -1;}++i;// sleep(1); // 如果需要控制插入速度,可以取消注释}// 关闭文件和数据库连接fclose(fp);sqlite3_close(db);return 0;
}

相关文章:

Linux---sqlite3数据库

一、数据库分类 1. 按数据关系分类 类型特点代表产品关系型数据库- 使用 SQL&#xff08;结构化查询语言&#xff09;<br>- 数据以行列形式存储&#xff0c;支持事务和复杂查询MySQL、Oracle、SQLite非关系型数据库- 无固定表结构&#xff08;如键值对、文档、图&#…...

侯捷 C++ 课程学习笔记:进阶语法之lambda表达式(二)

侯捷 C 课程学习笔记&#xff1a;进阶语法之lambda表达式&#xff08;二&#xff09; 一、捕获范围界定 1. 局部变量与函数参数 ​非静态局部变量&#xff1a;Lambda 所在作用域内定义的局部变量&#xff08;如函数内部的 int x&#xff09;会被完整复制其当前值。捕获后外部变…...

python爬虫Scrapy(6)之增量式

增量式 爬虫应用场景分类 通用爬虫聚焦爬虫功能爬虫分布式爬虫增量式&#xff1a; 用来监测网站数据更新的情况&#xff08;爬取网站最新更新出来的数据&#xff09;。只是一种程序设计的思路&#xff0c;使用什么技术都是可以实现的。核心&#xff1a; 去重。 使用一个记录表来…...

oracle删除表中重复数据

需求&#xff1a; 删除wfd_procs_nodes_rwk表中&#xff0c;huser_id、dnode_id、rwk_name字段值相同的记录&#xff0c;如果有多条&#xff0c;只保留一条。 SQL&#xff1a; DELETE FROM wfd_procs_nodes_rwk t WHERE t.rowid > (SELECT MIN(t1.rowid)FROM wfd_procs_n…...

动作捕捉手套如何让虚拟现实人机交互 “触手可及”?

在虚拟与现实逐渐交融的当下&#xff0c;动作捕捉技术正以前所未有的速度革新着多个领域。 动作捕捉技术&#xff0c;简称“动捕”&#xff0c;已经从早期的影视特效制作&#xff0c;逐步拓展到游戏开发、虚拟现实、机器人控制等多个领域。 而mHandPrO数据手套作为这一领域的…...

【大模型基础_毛玉仁】2.3 基于 Encoder-only 架构的大语言模型

更多内容&#xff1a;XiaoJ的知识星球 目录 2.3 基于Encoder-only 架构的大语言模型2.3.1 Encoder-only 架构2.3.2 BERT 语言模型1&#xff09;BERT 模型结构2&#xff09;BERT 预训练方式3&#xff09;BERT 下游任务 2.3.3 BERT 衍生语言模型1&#xff09;RoBERTa 语言模型2&a…...

C# ManualResetEvent‌的高级用法

一、ManualResetEvent 的核心作用‌ ManualResetEvent 是 C# 中用于 ‌线程同步‌ 的类&#xff08;位于 System.Threading 命名空间&#xff09;&#xff0c;通过信号机制控制线程的等待与执行。其核心功能包括&#xff1a; 阻塞线程‌&#xff1a;调用 WaitOne() 的线程会等…...

Language Models are Few-Shot Learners,GPT-3详细讲解

GPT的训练范式&#xff1a;预训练Fine-Tuning GPT2的训练范式&#xff1a;预训练Prompt predict &#xff08;zero-shot learning&#xff09; GPT3的训练范式&#xff1a;预训练Prompt predict &#xff08;few-shot learning&#xff09; GPT2的性能太差&#xff0c;新意高&…...

js 给元素添加点击事件的方法

在 JavaScript 里&#xff0c;为元素添加点击事件有多种方法&#xff0c;下面为你介绍三种常见的方式。 1. 使用内联事件处理程序 你可以在 HTML 标签里直接使用 onclick 属性添加点击事件。示例如下&#xff1a; <!DOCTYPE html> <html lang"en"><…...

Linux环境使用jmeter做性能测试

一、安装JDK&#xff0c;版本jdk1.8 1、下载压缩包到/jdk目录下解压 cd /jdk tar -zxvf jdk-8u241-linux-64.tar.gz 2、配置环境变量 在profile文件中末尾新增信息如下所示 vim /etc/profile export JAVA_HOME/usr/local/java/jdk/jdk1.8.0_221 export PATH$PATH:$JAVA_HOM…...

联想台式电脑启动项没有U盘

开机按F12&#xff0c;进入启动设备菜单&#xff0c;发现这里没有识别到插在主机的U盘&#xff1f; 解决方法 1、选上图的Enter Setup或者开机按F2&#xff0c;进入BIOS设置 选择Startup -> Primary Boot Sequence 2、选中“Excludeed from boot order”中U盘所在的一行 …...

单片机开发资源分析的实战——以STM32F103C8T6为例子的单片机资源分析

目录 第一点&#xff1a;为什么叫STM32F103C8T6 从资源手册拿到我们的对STM32F103C8T6的资源描述 第二件事情&#xff0c;关心我们的GPIO引脚输出 第三件事情&#xff1a;去找对应外设的说明部分 前言 本文章隶属于项目&#xff1a; Charliechen114514/BetterATK: This is…...

Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http: request canceled while

英俊潇洒很有才,美丽端庄又大方的人已经点赞收藏&#xff0b;关注了 文章目录 1.ubuntu解决方案2.Windows的解决办法&#xff08;有威劈恩好搞&#xff09;3.其他报错json格式错误下载的镜像有问题 最后 1.ubuntu解决方案 报错如图&#xff1a;timeout Error response from da…...

yolo模型学习笔记——1——物体检测评估指标

1.置信度 表示模型预测的边界框中存在目标物体的概率以及反应预测框和真实框的定位质量 2.阈值 (1)定义 决定一个预测框是否被视为为正类的关键参数&#xff0c;通过调整不同的阈值&#xff0c;获得不同的精度和召回率。yolo模型会为每个预测框生成一个置信度分数&#xff0c…...

Elasticsearch 滚动索引(Rollover Index)详解

文章目录 1、滚动索引的作用2、滚动索引的用法2.1 核心概念2.2 实现步骤 3、适用场景4、与其他技术的结合使用5、案例&#xff1a;日志数据的滚动索引5.1 场景描述5.2 实现步骤 6、示例&#xff1a;结合索引生命周期管理&#xff08;ILM&#xff09;6.1 场景描述6.2 实现步骤 7…...

保持docker内容器一直运行

首先&#xff1a;确保Docker服务配置为开机自启&#xff0c;这样当虚拟机启动时&#xff0c;Docker也会启动&#xff0c;并按照设定的重启策略自动启动相关容器。 sudo systemctl enable docker 创建容器时&#xff1a; 当你使用docker run命令启动容器时&#xff0c;可以添…...

ChatBI 的技术演进与实践挑战:衡石科技如何通过 DeepSeek 实现商业落地

随着人工智能技术的快速发展&#xff0c;ChatBI&#xff08;基于自然语言交互的商业智能&#xff09;逐渐成为企业数据分析领域的热门话题。作为 BI&#xff08;商业智能&#xff09;领域的新形态&#xff0c;ChatBI 通过自然语言处理&#xff08;NLP&#xff09;技术&#xff…...

python-leetcode 55.子集

题目&#xff1a; 给定一个数组nums,数组中的元素互不相同&#xff0c;返回该数组所有可能子集&#xff08;幂集&#xff09; 解集不能包含重复的子集&#xff0c;可以按任意顺序返回解集 方法一&#xff1a;迭代法实现子集枚举 记原序列中元素的总数为 n&#xff0c;原序列…...

在LORA训练中,LORA模型的矩阵的行列是多少

在LORA训练中,LORA模型的矩阵的行列是多少: W n e w = W + α r B A W_{new}=W + \frac{\alpha}{r}BA...

冒泡排序:古老算法中的智慧启示

在计算机科学浩瀚的星空中&#xff0c;排序算法犹如璀璨的星辰&#xff0c;而冒泡排序恰似其中最朴实无华的一颗。这个诞生于计算机发展初期的经典算法&#xff0c;以其简单直观的逻辑原理&#xff0c;成为每个程序员启蒙阶段必经的试炼场。当我们凝视这个看似笨拙的排序方法时…...

基于ssm的电子病历系统(全套)

一、系统架构 前端&#xff1a;jsp | bootstrap | jquery 后端&#xff1a;spring | springmvc | mybatis 环境&#xff1a;jdk1.8 | mysql | maven | tomcat | idea 二、代码及数据库 三、功能介绍 01. 登录 02. 主页 03. 管理员-个人中心-修改密码…...

V2X验证

1. 标准和规范验证 欧洲对 DSRC 和 V2X 系统有一系列的标准和规范,主要由 ETSI (European Telecommunications Standards Institute) 和 IEEE 等组织制定。验证通常包括以下标准和规范: ETSI EN 302 571:这是DSRC在欧洲的主要标准,规定了DSRC系统的技术要求和操作条件。ET…...

SpringBoot美发门店管理系统开发与设计

在幽络源&#xff0c;我们致力于为开发者提供优质的技术资源和项目源码。今天&#xff0c;我们为大家分享一款基于SpringBoot开发的美发门店管理系统。该系统功能全面&#xff0c;操作便捷&#xff0c;适合中小型美发门店的管理需求。以下是系统的详细介绍。 系统功能模块 1.…...

Linux内核实时机制28 - RT调度器11 - RT 组调度

Linux内核实时机制28 - RT调度器11 - RT 组调度 相关数据结构 内核中通过static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)函数来判断实时任务运行时间是否超出带宽限制,判断这个运行队列rt_rq的运行时间是否超过了额定的运行时间。而“运行时间”和“额定时间”都…...

R语言——变量

参考资料&#xff1a;学习R 1、类 R中所有变量都有一个类&#xff0c;表明此变量属于什么类型。例如&#xff0c;大部分的数字是numeric类&#xff0c;逻辑值是logical类。其实&#xff0c;因为R没有标量类型&#xff08;scalar type&#xff09;&#xff0c;所以更严格地我说…...

Appium使用文档

Appium旨在支持许多不同平台&#xff08;移动端、网页端、桌面端等&#xff09;的UI自动化。不仅如此&#xff0c;它还旨在支持用不同语言&#xff08;JS、Java、Python等&#xff09;编写的自动化代码。 Appium移动端自动化要求如下&#xff1a; 安装Appium安装UiAutomator2…...

Houdini :《哪吒2》神话与科技碰撞的创新之旅

《哪吒2》&#xff08;即《哪吒之魔童闹海》&#xff09;截止至今日&#xff0c;荣登全球票房榜第五。根据猫眼专业版数据&#xff0c;截至2025年3月15日&#xff0c;《哪吒2》全球累计票房&#xff08;含预售及海外&#xff09;超过150.19亿元&#xff0c;超越《星球大战&…...

单台openEuler24.03 LTS下的开源大数据环境搭建

目录 概述 准备 虚拟机基本设置 关闭及禁用防火墙 修改主机名 静态ip 映射主机名 创建普通用户 SSH免密登录 目录准备 安装Java 下载Java 解压 设置环境变量 安装Hadoop 下载hadoop 解压 设置环境变量 查看版本 配置hadoop 配置hadoop_env.sh 配置core-s…...

HarmonyOS开发,深拷贝、浅拷贝的封装和调用

在 HarmonyOS 开发中&#xff0c;实现深拷贝和浅拷贝可以通过封装工具类来完成。下面分别介绍浅拷贝和深拷贝的实现方式&#xff0c;并将它们封装成一个工具类。 浅拷贝和深拷贝的区别 浅拷贝&#xff1a;创建一个新对象&#xff0c;新对象的属性引用原始对象的属性。也就是说…...

C 环境设置指南

C 环境设置指南 引言 C语言作为一种历史悠久且功能强大的编程语言,在软件开发和系统编程领域占有举足轻重的地位。C语言环境设置是进行C语言编程的第一步,也是确保编程顺利进行的关键。本文将详细介绍C语言环境的设置过程,包括系统要求、开发工具的选择、环境变量的配置等…...

2018年全国职业院校技能大赛高职组-计算机网络应用竞赛竞赛样题E卷

目录 总体规划 模块二:设备基础信息配置 模块三:网络搭建与网络冗余备份方案部署 模块四:移动互联网搭建与网优 模块五:出口安全防护与远程接入 总体规划 医院在进行网络部分信息化建设方案设计过程中,需要保证医院、血液中心通过社保网进行互连互通,同时满足献血中心与医…...

大华HTTP协议在智联视频超融合平台中的接入方法

一. 大华HTTP协议介绍 大华HTTP协议是大华股份&#xff08;Dahua Technology&#xff09;为其安防监控设备开发的一套基于HTTP/HTTPS的通信协议&#xff0c;主要用于设备与客户端&#xff08;如PC、手机、服务器&#xff09;之间的数据交互。该协议支持设备管理、视频流获取、…...

Dify Docker 私有化部署遇到的问题

Dify 版本为1.01&#xff0c;本地使用 docker desktop&#xff0c;版本为4.38.0 (181591)&#xff0c;以下是Dify部署及使用过程中遇到的问题&#xff0c;后续持续更新... db无法启动&#xff0c;一直提示&#xff1a;Permissions should be urwx (0700) or urwx,grx (0750).具…...

Python学习第十九天

Django-分页 后端分页 Django提供了Paginator类来实现后端分页。Paginator类可以将一个查询集&#xff08;QuerySet&#xff09;分成多个页面&#xff0c;每个页面包含指定数量的对象。 from django.shortcuts import render, redirect, get_object_or_404 from .models impo…...

大数据技术链路详解

随着大数据技术的不断发展&#xff0c;各种新兴技术层出不穷&#xff0c;今天我们就来详细拆解一条完整的大数据链路&#xff0c;看看每个环节都有哪些最新技术参与&#xff0c;以及它们如何发挥作用。 一、数据采集层 在大数据处理的第一步&#xff0c;数据采集至关重要。现代…...

vue computed 计算属性简述

Vue 的 ‌计算属性&#xff08;Computed Properties&#xff09;‌ 是 Vue 实例中一种特殊的属性&#xff0c;用于‌声明式地定义依赖其他数据动态计算得出的值‌。它的核心优势在于能够自动追踪依赖关系&#xff0c;并缓存计算结果&#xff0c;避免重复计算&#xff0c;提升性…...

365天之第P10周:Pytorch实现车牌识别

365天之第P10周&#xff1a;Pytorch实现车牌识别 Pytorch实现车牌识别 365天之第P10周&#xff1a;Pytorch实现车牌识别一、导入数据1.获取类别名2. 数据可视化3. 标签数字化4. 加载数据文件5. 划分数据 二、自建模型三、 训练模型1. 优化器与损失函数2. 模型训练 四、 结果分析…...

【Docker】-Docker Compose+Dockerfile最佳实践

最佳实践 在实际生产环境中&#xff0c;Docker Compose Dockerfile 的最佳实践通常包括以下几部分&#xff1a; 使用 Dockerfile 构建微服务镜像使用 docker-compose.yml 管理多个微服务使用 volumes 进行数据持久化使用 networks 进行服务间通信使用 depends_on 确保依赖服…...

TSB - AD 解读 — 迈向可靠、透明的 TSAD 任务

目录 一 文章动机 二 TSAD 领域内的两类缺陷 三 数据集的构建 四 实验结果及结论 项目宣传链接&#xff1a;TSB-AD 代码链接&#xff1a; TheDatumOrg/TSB-AD: TSB-AD: Towards A Reliable Time-Series Anomaly Detection Benchmark 原作者解读&#xff1a;NeurIPS 2…...

Linux 入门:权限的认识和学习

目录 一.shell命令以及运行原理 二.Linux权限的概念 1.Linux下两种用户 cannot open directory .: Permission denied 问题 2.Linux权限管理 1).是什么 2).为什么&#xff08;权限角色目标权限属性&#xff09; 3).文件访问者的分类&#xff08;角色&#xff09; 4).文…...

多任务学习与持续学习微调:深入探索大型语言模型的性能与适应性

引言 大型语言模型&#xff08;LLMs&#xff09;的出现极大地推动了自然语言处理领域的发展。为了使其在各种特定任务和动态环境中表现出色&#xff0c;微调技术至关重要。本节将深入探讨多任务学习&#xff08;Multi-task Learning, MTL&#xff09;和持续学习&#xff08;Co…...

Cocos Creator Shader入门实战(四):预处理宏定义和Chunk

引擎&#xff1a; 3.8.5 您好&#xff0c;我是鹤九日&#xff01; 回顾 学习Shader&#xff0c;前期是让人烦躁无味的&#xff0c;后期可能就是各种的逻辑让人抓耳挠腮。 一成不变的内容&#xff1a;遵循引擎设定的规则&#xff0c;理解引擎要求的规范。 这里&#xff0c;简单…...

[蓝桥杯 2023 省 B] 飞机降落

[蓝桥杯 2023 省 B] 飞机降落 题目描述 N N N 架飞机准备降落到某个只有一条跑道的机场。其中第 i i i 架飞机在 T i T_{i} Ti​ 时刻到达机场上空&#xff0c;到达时它的剩余油料还可以继续盘旋 D i D_{i} Di​ 个单位时间&#xff0c;即它最早可以于 T i T_{i} Ti​ 时刻…...

STAR Decomposition 一种针对极端事件的信号分解方法 论文精读加复现

STAR 分解&#x1f680; 在时序预测任务中&#xff0c;为了情绪化信号的各种成分&#xff0c;例如趋势信息季节信息等往往都需要对信号进行分解。目前熟知的分解方式有很多种&#xff0c;经验模态分解 EMD 变分模态分解 VMD &#xff0c;还有 集合经验模态分解 EEMD&#xff0c…...

matlab中如何集成使用python

在 MATLAB 中集成使用 Python 可以通过调用 Python 脚本或函数来实现。MATLAB 提供了 py 模块来直接调用 Python 代码。以下是一个简单的示例&#xff0c;展示如何在 MATLAB 中调用 Python 函数。 示例&#xff1a;在 MATLAB 中调用 Python 函数 1. 编写 Python 函数 首先&a…...

使用matlab求伴随矩阵

已知三阶方阵&#xff1a; 计算行列式det 计算逆矩阵inv 如何det不等于0&#xff0c;伴随矩阵 行列式det*逆矩阵inv >> A[1 0 0;1 1 -1;-2 0 3]A 1 0 01 1 -1-2 0 3>> det(A)ans 3>> >> A_invinv(A)A_inv 1.0000 …...

音视频处理的“瑞士军刀”与“积木”:FFmpeg 与 GStreamer 的深度揭秘

一、发展历史与生态演进对比 FFmpeg的成长轨迹 诞生背景&#xff1a;2000年由Fabrice Bellard创建&#xff0c;最初为解决视频编码标准化问题而生。早期版本仅支持MPEG-1编码&#xff0c;但凭借开源社区协作&#xff0c;迅速扩展为全格式编解码工具。技术扩张&#xff1a;2004年…...

Debezium日常分享系列之:Debezium 3.1.0.Beta1发布

Debezium日常分享系列之&#xff1a;Debezium 3.1.0.Beta1发布 新特性和改进Debezium 平台的首次发布Percona 的最小锁定新的 Oracle 源信息 SCN 和时间戳字段Vitess Epoch/零日期列解析的变化Vitess 二进制排序的 tiny、medium 和 long 文本列的变化CloudEvent traceparent 支…...

智能汽车图像及视频处理方案,支持视频智能剪辑能力

在智能科技日新月异的今天&#xff0c;汽车已不仅仅是代步工具&#xff0c;它们正逐步进化为集出行、娱乐、生活于一体的智能移动空间。在这场汽车行业的智能化变革中&#xff0c;美摄科技以其卓越的智能汽车图像及视频处理方案&#xff0c;引领了一场前所未有的视觉盛宴&#…...

《从零手写Linux Shell:详解进程控制、环境变量与内建命令实现 --- 持续更新》

承接上文Linux 进程的创建、终止、等待与程序替换保姆级讲解-CSDN博客&#xff0c;涉及所用到的代码&#xff0c;本文所绑定的资源就是上篇文章的主要代码。 完整代码在文章末尾 目录 1.实现编写代码输出一个命令行 a.如何获取自己的用户名&#xff0c;主机名&#xff0c;路径…...