【MySQL】数据类型和表的操作
目录
一. 常用的数据类型
1.数值类型
1.1 整形类型
1.2 浮点型类型
2.字符串类型
char和varchar的区别
如何选择char和varchar
3.日期类型
4.二进制类型
二. 表的操作
1.查看所有表
2.表的创建
3.查看表的结构
4.表的修改
4.1 添加新的列
4.2 修改表中现有的列
4.3 删除表中现有的列
4.4 重命名表中现有的列
4.5 重命名当前表
5.表的删除
一. 常用的数据类型
在我们日常开发中最用的MySQL数据类型有:数值类型、字符串类型、日期型类型、二进制类型,MySQL中的数据类型和我们之前学习的java中的基本类型是类似的,都是用来存储不同类型的数据,接下来我们分别来认识一下这些类型的特点。
1.数值类型
1.1 整形类型
注:M表示每个值的位数
类型 | 大小 | 说明 |
BIT[(M)] | bit | 只能存0或者1(相当于只能存二进制位的数)取值范围为1 ~ 64,省略M则默认大小为1 |
TINYINT | 1byte | 取值范围-2^7 ~ 2^7-1,无符号取值范围2^8-1 |
BOOL | 1byte | 只能包含1位数字的值,值为0则为假,非零则为真 |
SMALLINT[(M)] | 2byte | 取值范围 -2^15 ~ 2^15-1,无符号取值范围2^16-1 |
MEDIUMINT[(M)] | 3byte | 取值范围 -2^23 ~ 2^23-1,无符号取值范围2^24-1 |
INT[(M)] | 4byte | 取值范围 -2^31 ~ 2^31-1,无符号取值范围2^32-1 |
INTEGER[(M)] | 4byte | INT[(M)]的同义词(用哪个都行) |
BIGINT[(m)] | 8byte | 取值范围 -2^63 ~ 2^63-1,无符号取值范围2^64-1 |
在现在存储资源不缺乏的情况下,我们能用BIGINT类型就用BIGINT类型,因为取值范围更大,避免不必要的错误
1.2 浮点型类型
类型 | 大小 | 说明 |
FLOAT[(M,D)] | 4byte | 单精度浮点型,M表示总位数,D表示小数点后面的位置,大约可以精确到小数点后面7位 |
DOUBLE[(M,D)] | 8byte | 双精度浮点型,M表示总位数,D表示小数点后面的位置,大约可以精确到小数点后面15位 |
DECIMAL[(M,D)] | 动态 | 不存在精度丢失,DECIMAL的最大位数为65 ,最⼤⼩数位数为30。如果省略M,则默认为10,如果省略D,则默认为0。M中不计算⼩数点和负数的-号,如果D为0,则值没有⼩数点和⼩数部分。 |
因为FLOAT和DOUBLE的精度丢失问题,在我们的开发中时一般不使用这两种类型,我们都使用DECIMAL,那么DECIMAL是如何保证数据精度是不受损失的?
假设我们现在有一个浮点数:123456789987654321123456789.123456789987654321123456789
那么Decimal的底层是将这个浮点数进行拆分,每一份用一个int表示:(小数点和符号不记录)
整数位:123456789 | 987654321 | 123456789 | 小数位:123456789 | 987654321 | 123456789
整数部分用了3个int表示,小数部分用了3个int表示
那么假设后面还有多余的小数(剩余部分),那么就会使用最小的合适的数据类型进行存储,最终通过这样的方式保存数据,就保证了数据精度不受损失。
那么在我们真实的开发过程中,如果遇上描述金额的所需要的数据类型时,一般有以下两种解决方式:
- 用上述说的不损失精度的Decimal类型
- 将金额的单位转换成分或者更小的单位,使用int类型去存储(这是一个小技巧)
2.字符串类型
类型 | 说明 |
CHAR[(M)] | 固定长度的字符串,以字符为单位,取值范围为0 ~ 255,M省略长度默认为1 |
VARCHAR[(M)] | 可变长度字符串,取值范围为0 ~ 65535 ,有效字符个数取决于实际字符数和使用字符集,例如使用utf8mb4字符集时65535/4约等于16383个字符 |
TINYTEXT | 小文本类型,最大长度为255个字节 |
TEXT[(M)] | 文本类型,最大长度为65535字节 |
MEDIUMTEXT | 中文本类型,最大长度为16777215字节 |
LONGTEXT | 大文本类型,最大长度为4294967295字节 |
enum(value,value...) | 枚举类型:
|
set(value,value...) | 集合
|
注:当我们使用TEXT类型时,如果超出的最大长度,那么它就是自动变为MEDIMTEXT类型,当超出 MEDIMTEXT类型时就会自动转变成LONGTEXT类型
char和varchar的区别
- char是固定长度的字符串,获取列的值时会从尾部删除空格(就像java中的next()读入一样,不会读入末尾的空格,但是一个字符串如果中间存在空格,那么是会保留的)
- varchar是可变长度字符串,有效⻓度取决于实际字符数和使⽤的字符集,获取列的值时不会从尾部删除空格,插⼊数据时会删除超出⻓度的空格。
举个例子:
varchar类型的字符串是会保留空格的,char类型的字符串将后面的空格进行了删除
如何选择char和varchar
- 如果数据确定⻓度都⼀样,就使⽤定⻓ CHAR 类型,⽐如:⾝份证,md5,学号,邮编。
- 如果数据⻓度有变化,就使⽤变⻓ VARCHAR , ⽐如:名字,地址,但要规划好⻓度,保证最⻓的字符串能存的进去。
- 定⻓ CHAR 类型⽐较浪费磁盘空间,但是效率⾼。
- 变⻓ VARCHAR 类型⽐较节省磁盘空间,但是效率低
3.日期类型
类型 | 大小 | 说明 |
DATE | 3 bytes | 日期类型 ⽀持范围 1000-01-01 ~ 9999-12-31 显⽰格式为 YYYY-MM-DD |
TIME | 3 bytes | 时间类型 ⽀持范围 -838:59:59.000000 ~ 838:59:59.000000 显⽰格式为 hh:mm:ss |
DATETIME | 8 bytes | ⽇期类型和时间类型的组合 ⽀持范围 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.499999 显⽰格式为 YYYY-MM-DD hh:mm:ss[.fraction] |
YEAR | 1 bytes | 4位格式的年份 ⽀持范围 1901 ~ 2155 显⽰格式为 YYYY |
4.二进制类型
类型 | 说明 |
BINARY | 固定长度二进制字节,存储的是二进制字节,取值范围0~255 |
VARBINARY | 可变长度二进制字节,存储的是二进制字节 |
注:在现在的开发中我们已经不使用二进制类型来存储数据了 ,了解即可
二. 表的操作
数据库中的表就像java中的一个类,那么我们一起来学习一下表的基本操作,那么我们需要先新建一个库,在库中来实现表的一些操作~
1.查看所有表
在创建表之前,我们肯定需要查看一下当前库中已经具备了哪些表,以防止重复创建:
show tables;
那么可以看见当前库中没有任何的表,这时候我们就要来创建表啦!
2.表的创建
创建表的语法:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_namefield datatype [约束] [comment '注解内容'][, field datatype [约束] [comment '注解内容']] ...
) [engine 存储引擎] [character set 字符集] [collate 排序规则];
- field:列名
- datatype:数据类型
- comment:对列的描述或说明
- engine:存储引擎,不指定则使⽤默认存储引擎
- character set:字符集,不指定则使⽤默认字符集
- collate:排序规则,不指定则使⽤默认排序规则
现在我们来创建一个学生表:
create table users (name VARCHAR(20) comment'姓名',age BIGINT COMMENT'年龄',class VARCHAR(20)COMMENT'班级'
) CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
此时一个学生表就创建完成了,接下来我们查看一下当前学生表的结构~
3.查看表的结构
语法:
desc 表名;
查看刚才创建的学生表:
- Field:表中的列名
- Type:列的数据类型
- Null:该列的值是否允许为Null
- Key:该列的索引类型
- Default:该列的默认值
- Extra:扩展信息
4.表的修改
在我们的项目实际开发中,经常会对表结构进行调整,这个时候就要对表进行修改操作
ALTER TABLE tbl_name [alter_option [, alter_option] ...];
alter_option: {table_options| ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]| MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]| DROP [COLUMN] col_name| RENAME COLUMN old_col_name TO new_col_name| RENAME [TO | AS] new_tbl_name
- tbl_name:要修改的表名
- ADD:向表中添加列
- MODIFY:修改表中现有的列
- DROP:删除表中现有的列
- RENAME COLUMN:重命名表中现有的列
- RENAME [TO | AS] new_tbl_name:重命名当前的表
这么多修改表的操作,我们一个一个来看:
4.1 添加新的列
假设我们现在需要为刚才创建的添加一个birthday列;
此时birthday列就被添加成功了,那么这是在尾部插入一个新的列,那么现在我想在头部插入一个gender列能不能实现呢?其实是可以实现的,只需要将最后的after改成first即可:
4.2 修改表中现有的列
那么假设说现在name列的varchar( 20 )不够用了,我需要做出调整改成varchar( 40 ):
4.3 删除表中现有的列
现在我不需要birthday这个列了,需要将它删除:
此时表中的birthday这个字段就被删除了
4.4 重命名表中现有的列
现在我需要将表中的name字段重命名成studentname:
4.5 重命名当前表
我现在需要将当前student表重命名成students:
5.表的删除
语法:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
- TEMPORARY:表⽰临时表
- tbl_name:将要删除的表名
现在我们将刚才创建的students表删除:
删除表不仅可以单个删除,同时也可以进行多个删除,那么我们现在重新创建两个表:student表和class表,然后进行多个表同时删除
注:表的创建和删除跟库的创建和删除是类似的,都可以加上 if not exists 和 if exists来防止报错
相关文章:
【MySQL】数据类型和表的操作
目录 一. 常用的数据类型 1.数值类型 1.1 整形类型 1.2 浮点型类型 2.字符串类型 char和varchar的区别 如何选择char和varchar 3.日期类型 4.二进制类型 二. 表的操作 1.查看所有表 2.表的创建 3.查看表的结构 4.表的修改 4.1 添加新的列 4.2 修改表中现有的列 4…...
Tauri打包时出现WixTools以及NSIS报错
前言 Tauri构建时会通过github下载Wix和NSIS,由于国内网络限制,所以这个过程基本都会失败,而且你无法使用挂代理的方式解决此问题,唯一的办法就是先下载对于的库,然后把库丢到对应的文件夹内来解决此问题。。。 文章目…...
Linux操作系统学习---进程地址空间
前言: 在学习c,c这些偏底层的语言时,我们常常会对一个变量取地址,一遍对他进行一系列的操作 . 可是 , 这真的是真实的物理地址吗 ? 其实并非如此 , 通过了解进程地址空间,我们就能解开这个困惑. 一、虚拟地址空间的概念: 同地址,不同值的代码示例: 下面通过创建子进程来看一个…...
docker compose -p的踩坑经验
刚才启动ragflow解析了几百个文件,再次启动登录时报错 没有这个账户,心疼token几秒。。。 再次回顾之前的启动方式和当前的启动方式,才发现有出入。 问题: 第一次启动sudo docker compose up -d 第二次启动sudo docker compose -…...
深入理解 Linux 用户管理:从基础到实践
在 Linux 操作系统中,用户管理是确保系统安全、合理分配资源的核心环节。无论是个人开发者搭建本地开发环境,还是运维人员管理企业级服务器集群,熟练掌握 Linux 用户管理都是一项必备技能。本文将从用户管理的基础概念出发,结合实…...
Go语言之路————指针、结构体、方法
Go语言之路————指针、结构体、方法 前言指针结构体声明初始化使用组合引用结构体和指针结构体的标签 方法例子结合结构体总结 前言 我是一名多年Java开发人员,因为工作需要现在要学习go语言,Go语言之路是一个系列,记录着我从0开始接触Go…...
【漫话机器学习系列】227.信息检索与数据挖掘中的常用加权技术(TF-IDF)
在自然语言处理(NLP)、信息检索(IR)和数据挖掘(DM)领域中,TF-IDF 是一种非常经典且常用的加权技术。 无论是搜索引擎排序、文本挖掘,还是特征工程,TF-IDF都扮演着重要角色…...
【音视频】FFmpeg过滤器框架分析
ffmpeg的filter⽤起来是和Gstreamer的plugin是⼀样的概念,通过avfilter_link,将各个创建好的filter按⾃⼰想要的次序链接到⼀起,然后avfilter_graph_config之后,就可以正常使⽤。 ⽐较常⽤的滤镜有:scale、trim、over…...
硬盘损坏数据恢复后对python程序的影响
最近硬盘突然间坏掉了,让数据商恢复了2个月今天终于拿到了恢复后的数据。 但是一测试问题就来了: PS E:\geosystem> python manage.py runserver 0.0.0.0:5000 Unhandled exception in thread started by <function check_errors.<locals>.…...
Azure Devops - 尝试一下在Pipeline中使用Self-hosted Windows agent
1.简单介绍 Azure Devops是微软提供的辅助软件的开发,测试,部署以及计划和进度跟踪的平台,通过Azure Devops可以使开发者,项目经理,运维人员在软件的整个生命周期中更紧密地合作,同时借助Continuous Integ…...
Linux红帽:RHCSA认证知识讲解(十 四)分区管理、交换分区,创建逻辑卷与调整逻辑卷的大小
Linux红帽:RHCSA认证知识讲解(十 四)分区管理、交换分区,创建逻辑卷与调整逻辑卷的大小 前言一、分区管理,使用fdisk管理分区1.1 找到硬盘1.2 使用fdisk分区1.3 格式化分区1.4 挂载分区 二、创建逻辑卷,调整…...
详解 Unreal Engine(虚幻引擎)
详解 Unreal Engine(虚幻引擎) Unreal Engine(简称 UE)是由 Epic Games 开发的一款全球领先的实时渲染引擎,自 1998 年随首款游戏《Unreal》问世以来,已发展成为覆盖 游戏开发、影视制作、建筑可视化、汽车…...
【Linux网络】Http服务优化 - 增加请求后缀、状态码描述、重定向、自动跳转及注册多功能服务
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
Docker compose 部署微服务项目(从0-1出发纯享版无废话)
目录 一.Docker安装 (1)安装依赖 (2)安装Docker (3)启动Docker服务 (4)系统配置 (5)镜像加速配置 (6)验证安装 二.编写Docke…...
C#学习第19天:多线程
什么是多线程? 定义:多线程允许一个程序分成多个独立的执行路径来进行并发操作。用途:提高程序的执行效率,特别是在I/O操作、计算密集型任务和用户交互中。 多线程核心概念 1. 创建和管理线程 使用 Thread 类 using System; u…...
day7 python针对心脏病数据集预处理
在数据科学与机器学习领域,数据预处理与可视化是挖掘数据价值的关键前置步骤。本文以 heart1.csv 心脑血管疾病数据集为例,借助 Python 中的 pandas、matplotlib、seaborn 以及 scikit-learn 库,详细演示数据加载、缺失值处理、特征相关性分析…...
树莓派学习专题<9>:使用V4L2驱动获取摄像头数据--设定分辨率和帧率
树莓派学习专题<9>:使用V4L2驱动获取摄像头数据--设定分辨率和帧率 1. 设定分辨率2. 设定帧率3. 设定分辨率代码解析4. 获取与设定帧率代码解析5. 实测 1. 设定分辨率 使用如下代码设定摄像头的分辨率: #define CAMERA_RESOLUTI…...
模态链:利用视觉-语言模型从多模态人类视频中学习操作程序
25年4月来自谷歌 DeepMind 和斯坦福大学的论文“Chain-of-Modality: Learning Manipulation Programs from Multimodal Human Videos with Vision-Language-Models”。 从人类视频中学习执行操作任务,是一种很有前景的机器人教学方法。然而,许多操作任务…...
JAVAEE初阶01
个人主页 JavaSE专栏 JAVAEE初阶01 操作系统 1.对下(硬件)管理各种计算机设备 2.对上(软件)为各种软件提供一个稳定的运行环境 线程 运行的程序在操作系统中以进程的形式存在 进程是系统分配资源的最小单位 进程与线程的关…...
【网络安全】用 Linux 命令行 CLI 日志文件处理指南
Linux 命令行 CLI 神技回忆录:日志文件处理指南(以 Zeek Logs 为例) 1. CLI简介2. 基础操作3. 文件读取4. 查找与筛选5. 进阶操作6. Zeek 日志骚操作7. 结语 1. CLI简介 在数据分析的世界里,图形界面(GUI)…...
[C++] 高精度乘法
目录 引入: 大整数比较比较方法例题1-青蛙计数题目描述 输入描述输出描述输入输出样例AC代码 高精度乘法模版高精度运算小合集(这集乘法上集加法) 注意: 若还没有学过高精度运算的话先去看高精度加法 引入: 大整数比较 比较方法 大整数比较可以使用此方法比较(注释有讲解): …...
反事实——AI与思维模型【82】
一、定义 反事实思维模型是一种心理认知模型,它指的是人们在头脑中对已经发生的事件进行否定,然后构建出一种可能性假设的思维活动。简单来说,就是思考“如果当时……,那么就会……”的情景。这种思维方式让我们能够超越现实的限制,设想不同的可能性和结果,从而对过去的…...
Java学习手册:Java开发常用的内置工具类包
以下是常用 Java 内置工具包。 • 日期时间处理工具包 • java.time包(JSR 310):这是 Java 8 引入的一套全新的日期时间 API,旨在替代陈旧的java.util.Date和java.util.Calendar类。其中的LocalDate用于表示不带时区的日期&…...
JAVA多线程(8.0)
目录 线程池 为什么使用线程池 线程池的使用 工厂类Executors(工厂模式) submit 实现一个线程池 线程池 为什么使用线程池 在前面我们都是通过new Thread() 来创建线程的,虽然在java中对线程的创建、中断、销毁、等值等功能提供了支持…...
通过门店销售明细表用Python Pandas得到每月每个门店的销冠和按月的同比环比数据
假设我在本地有Excel销售表,包含ID主键、门店ID、日期、销售员姓名和销售额,需要用Pandas统计出每个月所有门店和各门店销售额最高的人,不一定是一个人,以及他所在的门店ID和月总销售额。 步骤1:导入数据并处理日期 …...
详解最新链路追踪skywalking框架介绍、架构、环境本地部署配置、整合微服务springcloudalibaba 、日志收集、自定义链路追踪、告警等
1.skywalking介绍 多种监控手段,可以通过语言探针和service mesh 获得监控数据支持多种语言自动探针,包含java/net/nodejs轻量高效,无需大数据平台和大量的服务器资源模块化,UI、存储、集群管理都有多种机制可选支持告警优秀的可…...
【OSG学习笔记】Day 11: 文件格式与数据交换
OSG 常用文件格式简介 在开始转换前,先了解 OSG 生态中常见的文件格式: .osg:OSG 标准二进制格式,存储场景图数据,体积小、加载快,适合实时渲染。 .ive:OSG 标准文本格式,可读性强,便于手动编辑或调试场景图结构(本质是 XML 格式的文本描述)。 .osgb:OSG 二进制格…...
2025.04.26-美团春招笔试题-第二题
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 02. 曼哈顿距离探测器 问题描述 K小姐正在研发一种城市交通探测器,该探测器能够检测城市中任意两个位置之间的曼哈顿距离是否恰好为特定值。曼哈顿距离是在直角坐标系中,两点之间…...
搭建基于火灾风险预测与防范的消防安全科普小程序
基于微信小程序的消防安全科普互动平台的设计与实现,是关于微信小程序的,知识课程学习,包括学习后答题。 技术栈主要采用微信小程序云开发,有下面的模块: 1.课程学习模块 2.资讯模块 3.答题模块 4.我的模块 还需…...
05--Altium Designer(AD)的详细安装
一、软件的下载 Altium Designer官网下载 1、临近五一的假期,想着搞个项目,且这个项目与PCB有关系,所以就下这个软件来玩玩。下面保姆级教大家安装。 2、选择适合自己的版本下载(我安装的是24的) 3、软件安装 1.下…...
药监平台上传数据报资源码不存在
问题:电子监管码上传药监平台提示“导入的资源码不存在” 现象:从生产系统导出的关联关系数据包上传到药监平台时显示: 原因:上传数据包的通道的资源码与数据包的资源码不匹配。 解决方法:检查药监平台和生产系统的药…...
DeepSeek预训练追求极致的训练效率的做法
DeepSeek在预训练阶段通过多种技术手段实现了极致的训练效率,其中包括采用FP8混合精度训练框架以降低计算和内存需求 ,创新性地引入Multi-head Latent Attention(MLA)压缩KV缓存以提升推理效率,以及基于Mixture-of-Experts(MoE)的稀疏计算架构以在保证性能的同时显著降低…...
Windows11系统中GIT下载
Windows11系统中GIT下载 0、GIT背景介绍0.0 GIT概述0.1 GIT诞生背景0.2 Linus Torvalds 的设计目标0.3 Git 的诞生(2005 年)0.4 Git 的后续发展0.5 为什么 Git 能成功? 1、资源下载地址1.1 官网资源1.2 站内资源 2、安装指导3、验证是否下载完…...
Maven的概念与初识Maven
目录 一、Maven的概念 1. 什么是Maven 2. 项目构建:从代码到部署的标准化流程 2.1 Maven构建生命周期 2.2 传统构建 vs Maven构建 3. 依赖管理:解决“JAR地狱”的利器 3.1 依赖声明 3.2 依赖传递与冲突解决 4. Maven仓库:依赖的存储…...
【Android】app调用wallpaperManager.setBitmap的隐藏权限
这是一个杞人忧天的问题,app中,可以通过wallpaperManager.setBitmap来设置壁纸, private void setWallpaper() {// 获取 WallpaperManager 实例WallpaperManager wallpaperManager WallpaperManager.getInstance(getApplicationContext());t…...
ORACLE数据库备份入门:第四部分:2-备份场景举例
下面以4个常见的场景为例,介绍如何规划备份方案。备份方案没有标准答案,需要根据实现情况来制定,也和管理员的个人使用习惯有很大相关性。 1 交易型数据库备份 以银行的交易系统为例,除了前一章节提到的关于RPO和RTO的指标外&am…...
STL中emplace实现原理是什么?
template <class... Args>void emplace_back (Args&&... args);这个是vector的emplace_back方法,用到的c11的语法有三个,分别是万能引用、完美转发、参数包。 参数包中的参数是用来构造vector<T>中的T对象。 假如我直接传的就是一个…...
血泪之arduino库文件找不到ArduinoJSON.h: No such file or directory错误原因
#include <ArduinoJson.h> 始终报这个错误, C:\techxixi_project\Arduino\test\camer\camertoserver\camertoserver.ino:6:10: fatal error: ArduinoJSON.h: No such file or directory 6 | #include <ArduinoJSON.h> | ^~~~~~~~~…...
通过门店销售明细表用PySpark得到每月每个门店的销冠和按月的同比环比数据
假设我在Amazon S3上有销售表的Parquet数据文件的路径,包含ID主键、门店ID、日期、销售员姓名和销售额,需要分别用PySpark的SparkSQL和Dataframe API统计出每个月所有门店和各门店销售额最高的人,不一定是一个人,以及他所在的门店…...
【前后端分离项目】Vue+Springboot+MySQL
文章目录 1.安装 Node.js2.配置 Node.js 环境3.安装 Node.js 国内镜像4.创建 Vue 项目5.运行 Vue 项目6.访问 Vue 项目7.创建 Spring Boot 项目8.运行 Spring Boot 项目9.访问 Spring Boot 项目10.实现 Vue 与 Spring Boot 联动11.安装 axios12.编写请求13.调用函数请求接口14.…...
图解 Redis 事务 ACID特性 |源码解析|EXEC、WATCH、QUEUE
写在前面 Redis 通过 MULTI、EXEC、WATCH 等命令来实现事务功能。Redis的事务是将多个命令请求打包,然后一次性、按照顺序的执行多个命令的机制,并且在事务执行期间,服务器不会中断事务而该去执行其他客户端的命令请求。 就像下面这样&#…...
w~嵌入式C语言~合集3
我自己的原文哦~ https://blog.51cto.com/whaosoft/13870307 一、单片机多任务事件驱动 单片机的ROM与RAM存贮空间有限,一般没有多线程可用,给复杂的单片机项目带来困扰。 经过多年的单片机项目实践,借鉴windows消息机制的思想ÿ…...
CMCC RAX3000M CH EC 算力版刷机(中国移动 RAX3000M 算力版)刷机
刷机前面的工作参考: https://blog.csdn.net/asdcls/article/details/147434218 刷机 eMMC Flash instructions: 1. SSH to RAX3000M, and backup everything, especially factory part. (data partition can be ignored, its useless.) 2. Write new GPT tabl…...
cron定时任务
cron定时任务 一、Cron表达式的定义 基础结构 Cron表达式是由空格分隔的6或7个字段组成的字符串,格式为: 秒 分 时 日 月 星期 [年]其中,年通常可以被省略 字段说明: 秒(0-59) 秒字段表示每分钟的哪一…...
1.4 大模型应用产品与技术架构
目录 一,产品架构 1.1 AI Embedded产品架构 1.2 AI Copilot产品架构 1.3 AI Agent产品架构 二,技术架构 2.1 纯Prompt 2.2 Agent Function Calling 2.3 RAG (Retrieval-Augmented Generation 检索增强生成) 2.4 Fine-tu…...
Android HAL HIDL
1 Android HAL HIDL 1.1 Android中查看有哪些HIDL HAL HIDL是Treble Interface的一部分。 adb root adb shell # lshal 1.2 Android打印C调用栈 #include <utils/CallStack.h> 在需要打印的地方加如下的定义。 android::CallStack stack("oem"); logcat | g…...
std::mutex底层实现原理
std::mutex是一个用于实现互斥访问的类,其具备两个成员函数——lock和unlock 锁的底层实现原理 锁的底层实现是基于原子操作的,这些原子操作是由指令支持的,因为单个指令是不能被中断的 一些与锁的实现有关的原子指令为: 待补充…...
性能提升手段--池化技术
看到hadoop代码里有ByteBufferPool,使用池子来避免频繁创建、销毁ByteBuffer,减轻GC压力,提高性能。 顺便总结一下池化技术 一、什么是池化技术? 池化(Pooling) 是一种资源管理策略,通过预先创建并复用资源(如数据库连接、线程、内存对象等)来提…...
精益数据分析(28/126):解读商业模式拼图与关键指标
精益数据分析(28/126):解读商业模式拼图与关键指标 在创业和数据分析的探索旅程中,每一次深入研究都可能带来新的启发和突破。今天,我们依旧带着共同进步的初心,深入解读《精益数据分析》中关于商业模式的…...
QT6 源(52)篇二:存储 c 语言字符串的类 QByteArray 的使用举例,
(3) (4) 谢谢...