【数据库初阶】MySQL数据类型

亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 MySQL数据类型 帮助您轻松入门,快速掌握核心概念。
如果文章对您有所启发或帮助,请别忘了 点赞 👍、收藏 🌟、留言 📝 支持!您的每一份鼓励,都是我持续创作的源动力。让我们携手前行,共同进步!
文章目录
- @[toc]
- 1. 数值类型
- 🎧1.1 数值类型纵览🎧
- 🎧1.2 smallint 类型🎧
- 🎧1.3 类比 C/C++ 截断操作🎧
- 🎧1.4 修改表数据类型🎧
- 🎧1.5 无符号类型🎧
- 2. bit 类型
- 🎧2.1 bit 类型介绍🎧
- 🎧2.2 bit 类型详解🎧
- 3. 小数类型
- 🎧3.1 float类型🎧
- 🎧3.2 decimal 类型🎧
- 4. 字符串类型
- 🎧4.1 char类型🎧
- 🎧4.2 varchar类型🎧
- 🎧4.3 char 和 varchar 比较🎧
- 5. 日期类型
- 6. enum 和 set
- 🎧6.1 enum类型🎧
- 🎧6.2 set 类型🎧
- 🎧6.3 查找🎧
文章目录
- @[toc]
- 1. 数值类型
- 🎧1.1 数值类型纵览🎧
- 🎧1.2 smallint 类型🎧
- 🎧1.3 类比 C/C++ 截断操作🎧
- 🎧1.4 修改表数据类型🎧
- 🎧1.5 无符号类型🎧
- 2. bit 类型
- 🎧2.1 bit 类型介绍🎧
- 🎧2.2 bit 类型详解🎧
- 3. 小数类型
- 🎧3.1 float类型🎧
- 🎧3.2 decimal 类型🎧
- 4. 字符串类型
- 🎧4.1 char类型🎧
- 🎧4.2 varchar类型🎧
- 🎧4.3 char 和 varchar 比较🎧
- 5. 日期类型
- 6. enum 和 set
- 🎧6.1 enum类型🎧
- 🎧6.2 set 类型🎧
- 🎧6.3 查找🎧
上一篇文章中,博主介绍了 :
- MySQL表的相关操作
建议将上一篇文章看完之后再来看这篇文章,链接如下:
【数据库初阶】Linux中表的基础操作那么接下来正文开始:
1. 数值类型
🎧1.1 数值类型纵览🎧
MySQL
中数据类型为数值类型的如下:
数据类型 | 字节数 | 带符号最小值 | 带符号最大值 | 无符号最小值 | 无符号最大值 |
---|---|---|---|---|---|
TINYINT | 1 | -128 (-2^7) | 127 (2^7 - 1) | 0 | 255 (2^8 - 1) |
SMALLINT | 2 | -32,768 (-2^15) | 32,767 (2^15 - 1) | 0 | 65,535 (2^16 - 1) |
MEDIUMINT | 3 | -8,388,608 (-2^23) | 8,388,607 (2^23 - 1) | 0 | 16,777,215 (2^24 - 1) |
INT | 4 | -2,147,483,648 (-2^31) | 2,147,483,647 (2^31 - 1) | 0 | 4,294,967,295 (2^32 - 1) |
BIGINT | 8 | -9,223,372,036,854,775,808 (-2^63) | 9,223,372,036,854,775,807 (2^63 - 1) | 0 | 18,446,744,073,709,551,615 (2^64 - 1) |
- 接下来,博主将以
SMALLINT
类型为例进行讲解:
🎧1.2 smallint 类型🎧
- 首先创建数据库
test1
,之后进入此数据库:- 输入如下代码:
create database if not exists test1;
use test1;
- 创建表
t1
,在其中插入一个类型为smallint
的id
create table if not exists t1(id smallint);
- 插入一条数据:
insert into t1 (id) values (100);
- 插入一个越界数
32768
或者-32769
;
mysql> insert into t1 (id) values (32768);
mysql> insert into t1 (id) values (-32769);
- 很明显会报错。
🎧1.3 类比 C/C++ 截断操作🎧
- 如果我们在
C/C++
中输入下面代码,会发生什么呢:
char ch = 12345;
std::cout << ch << std::endl;
- 首先,因为
char
类型是 1 B y t e 1Byte 1Byte,范围是-128 ~ 127
; - 所以很明显, 12345 12345 12345 超出范围了;
- 但是一般情况下编译器不会直接报错,而是会在编译阶段发生截断操作;
- 这就意味着编译器只会读取 12345 12345 12345 转化成 二进制的低八位:
- 12345 12345 12345的二进制: 0011 0011 0011 0000 0000 0000 0011 0011 0011 1001 1001 1001
- 截断: 0011 0011 0011 1001 1001 1001
(BIN)
-> 57 57 57(DEC)
- 所以结果就是 57 57 57 对应的
ASCII
码值。 - 所以在
MySQL
中在我们输入的时候就给了限制,这其实是对 程序员的一种约束。
🎧1.4 修改表数据类型🎧
- 如果我们将定义时比较大范围的类型改成比较小的类型会发生什么呢?例如将
smallint
改变成tinyint
。
- 这里会直接报错,所以系统会 约束 程序员不要将大范围的类型转换成小范围的类型。
🎧1.5 无符号类型🎧
- 在
MySQL
中,整型可以指定是有符号的和无符号的,默认是有符号的; - 可以通过
UNSIGNED
来说明某个字段是无符号的; - 输入下面代码给刚才的 t1 表添加一列:
mysql> alter table t1 add column age tinyint unsigned;
- 注意这里
unsigned
要放在tinyint
后面。
- 由于无符号的
tinyint
的范围是0 ~ 255
,尝试插入256
,输入以下代码:insert into t1 (id, age) values (1,256);
- 很明显,这也被约束了。
2. bit 类型
🎧2.1 bit 类型介绍🎧
bit(M)
: 位字段类型。M
表示每个值的位数,范围从1 ~64
。如果M
被忽略,默认为1
。- 创建表
t2
,字段为id int
和gender bit
,代码如下:
mysql> create table if not exists t2(-> id int,-> gender bit-> );
- 注意细节,默认
bit
就是1位
🎧2.2 bit 类型详解🎧
-
在表中插入两行:
(10, 0)
和(20, 1)
:- 输入代码:
mysql> insert into t2 (id, gender) values (10, 0);
mysql> insert into t2 (id, gender) values (20, 1);
-
进行查询:
- 输入语句:
mysql> select * from t2;
- 输入语句:
- 说明:博主这个
MySQL
是8.0
版本之后,如果是在此版本之前,bit
类型会显示ASCII
码对应的值,但是我这个版本就显示十六进制了。
完整操作代码:
mysql> insert into t2 (id, gender) values (10, 0);
Query OK, 1 row affected (0.00 sec)mysql> insert into t2 (id, gender) values (20, 1);
Query OK, 1 row affected (0.01 sec)mysql> select * from t2;
+------+----------------+
| id | gender |
+------+----------------+
| 10 | 0x00 |
| 20 | 0x01 |
+------+----------------+
2 rows in set (0.00 sec)
3. 小数类型
🎧3.1 float类型🎧
-
语法:
float[(m, d)] [unsigned]
M
指定显示长度;d
指定小数位数,占用空间4
个字节。
-
如果是
float(4,2)
,那么它的范围就是-99.99 ~ 99.99
,例如:- 插入
99.99
是可以的:insert into t3 values(100, 99.99);
- 插入
100.00
是不行的:insert into t3 values(100, 100.00);
- 但是插入
99.994
也是可以的,但是会被优化掉(四舍五入):insert into t3 values(100, 99.994);
- 类似的,插入
-99.994
是可以的,但是插入-99.995
就不行了:insert into t3 values(100, -99.994);
insert into t3 values(100, -99.995);
- 插入
- 完整代码:
mysql> create table t3(-> id int,-> salary float(4,2)-> );
Query OK, 0 rows affected, 1 warning (0.10 sec)mysql> insert into t3 values(100, 99.99);
Query OK, 1 row affected (0.01 sec)mysql> insert into t3 values(100, 100);
ERROR 1264 (22003): Out of range value for column 'salary' at row 1
mysql> insert into t3 values(100, 100.00);
ERROR 1264 (22003): Out of range value for column 'salary' at row 1
mysql> insert into t3 values(100, 99.994);
Query OK, 1 row affected (0.01 sec)mysql> insert into t3 values(100, -99.994);
Query OK, 1 row affected (0.00 sec)mysql> insert into t3 values(100, -99.995);
ERROR 1264 (22003): Out of range value for column 'salary' at row 1
mysql> select * from t3;
+------+--------+
| id | salary |
+------+--------+
| 100 | 99.99 |
| 100 | 99.99 |
| 100 | -99.99 |
+------+--------+
3 rows in set (0.00 sec)
- 默认情况下,浮点数都是带符号的,如果不要带符号的浮点数,例如:
float(4,2) unsigned
范围就是0 ~ 99.99
,这里就不尝试了。
🎧3.2 decimal 类型🎧
-
语法:
decimal(m, d) [unsigned]
:- 定点数
m
指定长度; d
表示小数点的位数。
- 定点数
-
decimal(5,2)
表示的范围是-999.99 ~ 999.99
-
decimal(5,2) unsigned
表示的范围0 ~ 999.99
decimal
和float
很像,但是有区别!
- 他们表示的精度不一样!
- 例如,创建下面的表:
mysql> create table t4(-> id int,-> salary1 float(10,8),-> salary2 decimal(10,8)-> );
- 插入元素
23.12345612
mysql> insert into t4 values(100, 23.12345612, 23.12345612);
- 查看结果:
select * from t4;
- 可以发现
decimal
的精度更准确,因此如果我们希望某个数据表示高精度,选择decimal
float
表示的精度大约是7
位decimal
整数最大位数m
为65
;- 支持小数最大位数
d
是30
。如果d
被省略,默认为0
,如果m
被省略,默认是10
。
完整代码:
mysql> create table t4(-> id int,-> salary1 float(10,8),-> salary2 decimal(10,8)-> );
Query OK, 0 rows affected, 1 warning (0.05 sec)mysql> insert into t4 values(100, 23.12345612, 23.12345612);
Query OK, 1 row affected (0.01 sec)mysql> select * from t4;
+------+-------------+-------------+
| id | salary1 | salary2 |
+------+-------------+-------------+
| 100 | 23.12345695 | 23.12345612 |
+------+-------------+-------------+
1 row in set (0.00 sec)
4. 字符串类型
🎧4.1 char类型🎧
-
语法:
char(L)
- 固定长度字符串,
L
是可以存储的长度; - 单位为 字符;
- 注意这里是字符,不是字节,字符就是你实际存了多少个。
- 最大长度值可以为
255
。
- 固定长度字符串,
-
示例:
mysql> create table t5(-> id int,-> name char(3)-> );
-
插入元素,下面都正确:
insert into t5 values(1,'张三三');
insert into t5 values(2,'abc');
insert into t5 values(3,'李四');
-
因为存放的是字符,不管是字母还是汉字都是正确的,但是
char
不能超过255
个字符。
🎧4.2 varchar类型🎧
- 语法:
varchar(L)
- 可变长度字符串,
L
表示字符长度,最大长度65535
个字节;- 注意这里单位就是字节了!
关于L
最大值的讲解:
- 在
utf8mb4
中,每个字符可以是1~4
个字节长度,具体可以看下图:
- 那么
L
的最大值应该是什么呢?还需要了解下面一点: - 对于
VARCHAR
,存储内容需要额外加上1~2
字节的长度前缀,用于表示数据的实际字节长度:- 如果字段定义的最大长度
≤ 255
,使用1
字节表示长度; - 如果字段定义的最大长度
> 255
,使用2
字节表示长度。
- 如果字段定义的最大长度
- 因此,
MySQL
考虑的是最坏的情况:- 取出两个字节的长度,假设每个字符都是四个字节,就可以得到下面的结果:
- ( 65535 − 2 ) / 4 = 16383 (65535 - 2) / 4 = 16383 (65535−2)/4=16383。
- 示例:
mysql> insert into t7 values(100, '我爱你,中国');
Query OK, 1 row affected (0.00 sec)mysql> select * from t7;
+------+--------------------+
| id | name |
+------+--------------------+
| 100 | 我爱你,中国 |
+------+--------------------+
1 row in set (0.00 sec)
🎧4.3 char 和 varchar 比较🎧
- 如果数据确定长度都一样,就使用定长(
char
),比如:身份证,手机号,md5 - 如果数据长度有变化,就使用变长(
varchar
), 比如:名字,地址,但是你要保证最长的能存的进去。 - 定长的磁盘空间比较浪费,但是效率高。
- 变长的磁盘空间比较节省,但是效率低。
- 定长的意义是,直接开辟好对应的空间
- 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少。
5. 日期类型
常用的日期有如下三个:
-
date
:日期'yyyy-mm-dd'
,占用三字节; -
datetime
时间日期格式'yyyy-mm-dd HH:ii:ss'
表示范围从1000
到9999
,占用八字节; -
timestamp
:时间戳,从1970
年开始的yyyy-mm-dd HH:ii:ss
格式和datetime
完全一致,占用四字节。 -
示例:
//创建表
mysql> create table birthday (t1 date, t2 datetime, t3 timestamp);
Query OK, 0 rows affected (0.01 sec)
//插入数据:
mysql> insert into birthday(t1,t2) values('1997-7-1','2008-8-8 12:1:1'); --插入两种时间
Query OK, 1 row affected (0.00 sec)
mysql> select * from birthday;
+------------+---------------------+---------------------+
| t1 | t2 | t3 |
+------------+---------------------+---------------------+
| 1997-07-01 | 2008-08-08 12:01:01 | 2017-11-12 18:28:55 | --添加数据时,时间戳自动补上当前时间
+------------+---------------------+---------------------+
//更新数据:
mysql> update birthday set t1='2000-1-1';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from birthday;
+------------+---------------------+---------------------+
| t1 | t2 | t3 |
+------------+---------------------+---------------------+
| 2000-01-01 | 2008-08-08 12:01:01 | 2017-11-12 18:32:09 | -- 更新数据,时间戳会更新成当前时间
+------------+---------------------+---------------------+
6. enum 和 set
🎧6.1 enum类型🎧
enum
是枚举类型,学过C
的都很熟悉;- 语法:
enum('选项1','选项2','选项3',...);
示例:
- 创建表
- 插入数据
- 这里插入数据可以选一个插入;
- 当然也可以用下标来插入 ,开始的下标是
1
!
mysql> create table t8 (-> gender enum('男','女')-> );
mysql> insert into t8 values('男');
Query OK, 1 row affected (0.01 sec)mysql> insert into t8 values('女');
Query OK, 1 row affected (0.01 sec)// 或者下标:mysql> insert into t8 values(1);
Query OK, 1 row affected (0.01 sec)mysql> insert into t8 values(2);
Query OK, 1 row affected (0.01 sec)
🎧6.2 set 类型🎧
- 语法:
set('选项值1','选项值2','选项值3', ...);
- 这是一个集合类型,可以从中选择多个!
- 创建一个表,其中包含爱好的
set
类型
- 向其中插入元素:
set
中就不可以用下标了,这里是 位图的形式- 例如一共有五个爱好,如果想象成5个二进制位,如果对应的位置是你的爱好,此为就是
1
; - 例如这五个全都是我的爱好,那么 00001 00001 00001 1111 1111 1111 就是 31 31 31:
- 例如一共有五个爱好,如果想象成5个二进制位,如果对应的位置是你的爱好,此为就是
- 如果只喜欢爬山和游泳,那么就是 0000 0000 0000 0011 0011 0011,转化成十进制就是 3 3 3:
- 那如果是
0
会发生什么呢?- 这里是空不是没有数据!
🎧6.3 查找🎧
- 现在先看一下表:
mysql> select * from t9;
+--------+---------------------------------------+
| name | hobby |
+--------+---------------------------------------+
| Alice | 爬山 |
| Alan | 足球,代码 |
| Mikael | 爬山,游泳,乒乓球,足球,代码 |
| Peter | 爬山,游泳 |
| kk | |
+--------+---------------------------------------+
5 rows in set (0.00 sec)
- 假如我要查找所有喜欢爬山的人怎么找呢?用到
find_in_set()
函数 - 这个函数表示查找一个元素是否在集合中,返回
0为假,非0为真
:
mysql> select find_in_set('a','a,b');
+------------------------+
| find_in_set('a','a,b') |
+------------------------+
| 1 |
+------------------------+
1 row in set (0.00 sec)
- 所以就有了下面的用法:
where
有点类似于if
语句
mysql> select * from t9 where find_in_set('爬山',hobby);
+--------+---------------------------------------+
| name | hobby |
+--------+---------------------------------------+
| Alice | 爬山 |
| Mikael | 爬山,游泳,乒乓球,足球,代码 |
| Peter | 爬山,游泳 |
+--------+---------------------------------------+
3 rows in set (0.00 sec)
- 当然,如果想要查找喜欢爬山和游泳的人,可以用
and
连接两个find_in_set()
函数,例如:
mysql> select * from t9 where find_in_set('爬山',hobby) and find_in_set('游泳',hobby);
+--------+---------------------------------------+
| name | hobby |
+--------+---------------------------------------+
| Mikael | 爬山,游泳,乒乓球,足球,代码 |
| Peter | 爬山,游泳 |
+--------+---------------------------------------+
2 rows in set (0.00 sec)
相关文章:
【数据库初阶】MySQL数据类型
🎉博主首页: 有趣的中国人 🎉专栏首页: 数据库初阶 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 MySQL…...
(九千七-星河襟)椭圆曲线加密(ECC, Elliptic Curve Cryptography)及其例题
椭圆曲线加密(ECC)是一种基于椭圆曲线数学的公钥加密技术。它提供了一种高效的加密方法,能够在较小的密钥长度下实现与传统加密算法(如RSA)相同的安全级别。以下是ECC的主要特点和工作原理的总结: 1. 基本…...
LookingGlass使用
背景 Looking Glass 是一款开源应用程序,可以直接使用显卡直通的windows虚拟机。 常见环境是Linux hostwindows guest,基本部署结构图: 编译 git clone --recursive https://github.com/gnif/LookingGlass.git编译client mkdir client/b…...
ArcGIS Server 10.2授权文件过期处理
新的一年,arcgis server授权过期了,服务发不不了。查看ecp授权文件,原来的授权日期就到2024.12.31日。好吧,这里直接给出处理方法。 ArcGIS 10.2安装时,有的破解文件中会有含一个这样的注册程序,没有的话&…...
js es6 reduce函数, 通过规格生成sku
const specs [{ name: 颜色, values: [红色, 蓝色, 绿色] },{ name: 尺寸, values: [S, M, L] } ];function generateSKUs(specs) {return specs.reduce((acc, spec) > {const newAcc [];for (const combination of acc) {for (const value of spec.values) {newAcc.push(…...
Spring 事务底层原理
61 张图,剖析 Spring 事务,就是要钻到底! 拜托!面试请不要再问我 Transactional my: AOP Transactional PlatformTransactionManager:数据源隔离 TransactionInterceptor:拦截添加了注解的…...
ruoyi 分页 查询超出后还有数据; Mybatis-Plus 分页 超出后还有数据
修改:MybatisPlusConfig 类中 分页合理化修改为:paginationInnerInterceptor.setOverflow(false);...
基于Java的超级玛丽游戏的设计与实现【源码+文档+部署讲解】
目 录 1、绪论 1.1背景以及现状 1.2 Java语言的特点 1.3 系统运行环境及开发软件: 1.4 可行性的分析 1.4.1 技术可行性 1.4.2 经济可行性 1.4.3 操作可行性 2、 需求分析 2.1 用户需求分析 2.2功能需求分析 2.3界面设计需求分析…...
智慧工地信息管理与智能预警平台
建设背景与政策导向 智慧工地信息管理与智能预警平台的出现,源于工地管理面临的诸多挑战,如施工地点分散、危险区域多、监控手段落后等。随着政府对建筑产业现代化的积极推动,各地纷纷出台政策支持智慧工地的发展,旨在通过信息技…...
使用Apache Mahout制作 推荐引擎
目录 创建工程 基本概念 关键概念 基于用户与基于项目的分析 计算相似度的方法 协同过滤 基于内容的过滤 混合方法 创建一个推荐引擎 图书评分数据集 加载数据 从文件加载数据 从数据库加载数据 内存数据库 协同过滤 基于用户的过滤 基于项目的过滤 添加自定…...
记录:导出功能:接收文件流数据进行导出(vue3)
请求接口:一定要加responseType: blob 后端返回数据: api.js export function export() {return request({url: dev/api/export,method: get,responseType: blob,//一定要加}) } vue: import {export} from /api// 导出 const exportTab…...
GraphRAG vs 传统 RAG:如何通过知识图谱提升 AI 检索能力
相比传统 RAG 仅能独立检索文本片段的局限性,GraphRAG通过构建实体关系图谱实现了信息间的连接,让 AI 能更完整地理解和检索复杂的关联信息,从而生成更准确和连贯的回答 问题背景: 想象有一本详细记录某人(X)成就的传记,每个章节都描述了他的…...
问题清除指南|关于num_classes与 BCELoss、BCEWithLogitsLoss 和 CrossEntropyLoss 的关系
前言:关于「 num_classes 1 」引发的探究。 2024年尾声,学弟问到一个问题:在研究工作 CNNDetection 的github开源代码 networks/trainer.py 文件的 line 27 self.model resnet50(num_classes1) 中,变量 num_classes 的值为1&…...
组网实训实现
小型单元网络实现 IP划分: 外网:172.1.1.0/24 172.1.2.0/24 内网:基于192.168.3.0/24的子网划分 综合办公楼:192.168.3.00 000000 /26(192.168.3.0-192.168.3.63) 综合一楼:192.168.3.0000 0000 /28&…...
【DevOps】Jenkins部署
Jenkins部署 文章目录 Jenkins部署资源列表基础环境一、部署Gilab1.1、安装Gitlab1.2、修改配置文件1.3、加载配置文件1.4、访问Gitlab1.5、修改root登录密码1.6、创建demo测试项目1.7、上传代码1.8、验证上传的代码 二、部署Jenkins所需软件2.1、部署JDK2.2、部署Tomcat2.3、部…...
HTML——38.Span标签和字符实体
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>span标签和字符实体</title><style type"text/css">h1{text-align: center;}p{text-indent: 2em;}span{color: red;}</style></head><…...
doris:基于 Arrow Flight SQL 的高速数据传输链路
Doris 基于 Arrow Flight SQL 协议实现了高速数据链路,支持多种语言使用 SQL 从 Doris 高速读取大批量数据。 用途 从 Doris 加载大批量数据到其他组件,如 Python/Java/Spark/Flink,可以使用基于 Arrow Flight SQL 的 ADBC/JDBC 替代过去…...
文献阅读 | B. S. Carmo 2010
目录 一、文献名称二、原文地址三、ABSTRACT主要发现详细观察分岔分析雷诺数依赖性比较见解意义结论 四、IINTRODUCTION历史研究回顾计算研究近期研究进展研究空白与目的论文结构 一、文献名称 二、原文地址 研究目的:研究串列排列双圆柱体周围流场中的次级不稳定性…...
GRAPE——RLAIF微调VLA模型:通过偏好对齐提升机器人策略的泛化能力(含24年具身模型汇总)
前言 24年具身前沿模型大汇总 过去的这两年,工作之余,我狂写大模型与具身的文章,加之具身大火,每周都有各种朋友通过CSDN私我及我司「七月在线」寻求帮助/指导(当然,也欢迎各大开发团队与我司合作共同交付)…...
超越YOLO11!DEIM:先进的实时DETR目标检测
DEIM: DETR with Improved Matching for Fast Convergence arXiv: https://arxiv.org/abs/2412.04234 Project webpage:https://www.shihuahuang.cn/DEIM/ GitHub:https://github.com/ShihuaHuang95/DEIM 1 背景:DETR目标检测框架 目标检…...
django vue3实现大文件分段续传(断点续传)
前端环境准备及目录结构: npm create vue 并取名为big-file-upload-fontend 通过 npm i 安装以下内容"dependencies": {"axios": "^1.7.9","element-plus": "^2.9.1","js-sha256": "^0.11.0&quo…...
用户注册模块(芒果头条项目进度4)
1 创建⽤户模块⼦应⽤ 1.1 在项⽬包⽬录下 创建apps的python包。 1.2 在apps包下 创建应⽤userapp $ cd 项⽬包⽬录/apps $ python ../../manage.py startapp userapp 1.3 配置导包路径 默认情况下导包路径指向项⽬根⽬录 # 通过下⾯语句可以打印当前导包路径 print(sys.pa…...
Java Map集合、集合的嵌套
一. 概述 1. Map集合称为双列集合,格式:{key1value1, key2value2,.....},一次需要存一对数据作为一个元素。 2. Map集合的每个元素"keyvalue"称为一个键值对/键值对对象/一个Entry对象,Map集合也被称为"键值对集合"。 3.…...
C#中使用系统默认应用程序打开文件
有时您可能希望程序使用默认应用程序打开文件。 例如,您可能希望显示 PDF 文件、网页或互联网上的 URL。 System.Diagnostics.Process类的Start方法启动系统与文件关联的应用程序。 例如,如果文件扩展名为.txt,则系统会在 NotePad、WordPa…...
论文泛读《LPFHE: Low-Complexity Polynomial CNNs for Secure Inference over FHE》
文章目录 1、摘要2、介绍3、文章结构4、总结 1、摘要 Machine learning as a service (MLaaS) 在客户中越来越受欢迎。为了解决 MLaaS 中的隐私问题,引入了 FHE 来保护客户端的数据。 然而,FHE 不能直接评估 卷积神经网络 (CNNs) 中的非算数激活函数。…...
基于Spring Boot的IT技术交流和分享平台的设计与实现源码
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的IT技术交流和分享平台的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于S…...
力扣hot100——二分查找
35. 搜索插入位置 class Solution { public:int searchInsert(vector<int>& a, int x) {if (a[0] > x) return 0;int l 0, r a.size() - 1;while (l < r) {int mid (l r 1) / 2;if (a[mid] < x) l mid;else r mid - 1;}if (a[l] x) return l;else …...
1月第一讲:WxPython跨平台开发框架之前后端结合实现附件信息的上传及管理
1、功能描述和界面 前端(wxPython GUI): 提供文件选择、显示文件列表的界面。支持上传、删除和下载附件。展示上传状态和附件信息(如文件名、大小、上传时间)。后端(REST API 服务):…...
uniapp:跳转第三方地图
1.跳转第三方高德地图 //跳转地图 toMap(item){uni.navigateTo({url: (window.location.href https://uri.amap.com/navigation?to${item.lng},${item.lat},${item.shopName}&modecar&policy1&srchttps://gawl.gazhcs.com/wap/index.html&callnative0)}) },…...
源码理解 UE4中的 FCookStatsManager::FAutoRegisterCallback RegisterCookStats
官方文档:https://dev.epicgames.com/documentation/zh-cn/unreal-engine/API/Runtime/Core/ProfilingDebugging/FCookStatsManager文档中的注释: When a cook a complete that is configured to use stats (ENABLE_COOK_STATS), it will broadcast this…...
QML Text详解
1. 概述 Text 是 QML 中用来显示文本的基本组件。它可以用于创建静态的标签、标题、说明文字等,支持多种文本格式、样式、颜色、对齐方式等配置。Text 组件也支持动态文本内容的显示,可以通过绑定数据源来实时更新文本内容。 Text 组件非常灵活&#x…...
详细讲一下Prettier对我们日常开发的作用,以及详细用法
1.什么是 Prettier? // Prettier 是代码格式化工具,它可以自动调整代码格式 // 比如把这样的代码: function foo ( a, b ){ return ab; }// 自动格式化成这样: function foo(a, b) {return a b; } 2.基础配置详解 {// 控制…...
多模态论文笔记——Coca
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍多模态模型Coca,在DALLE 3中使用其作为captioner基准模型的原因和优势。 文章目录 ALBEF论文模型结构组成训练目标 CoCa论文模型结构CoCa…...
24年无人机行业资讯 | 12.23-12.29
24年无人机行业资讯 | 12.23-12.29 1、 国家发改委新设低空经济司,助力低空经济规范发展2、商务部支持无人机民用国际贸易,强调出口管制与安全并重3、滨州高新区首架无人机成功下线4、 2025第九届世界无人机大会筹备推进会顺利召开5、2024年世界无人机竞…...
我们公司只有3个人,一个前端,一个后端
在当今这个数字化时代,各行各业都离不开互联网技术的支撑,而在这股技术浪潮中,小而美的创业公司如同雨后春笋般涌现,它们凭借着灵活高效、创新不断的特点,在市场中占有一席之地。 今天,就让我带你走进这样一…...
golang后台框架总结
gin [golang]gin框架接收websocket通信 - 花酒锄作田 - 博客园 golang Gin实现websocket_golang gin websocket-CSDN博客 ws测试: Websocket测试-Websocket在线测试-Websocket模拟请求工具 vmware下载: VMware16安装包详细安装教程_vmware16下载-CSDN博客...
Elasticsearch分片数量是什么意思?
Elasticsearch中的分片(Shard)数量是一个重要概念,以下为你详细介绍它的含义及相关要点: ### 定义 分片是Elasticsearch将索引数据进行拆分的基本单元。简单来说,Elasticsearch会把一个索引的数据分割成多个较小的部分…...
BerOS 文件系统路径归一化问题及其 Python 实现
题目背景 本文将讨论一道与操作系统路径归一化有关的问题,该问题来自 BerOS 文件系统 的设计。BerOS 是一个新型操作系统,其文件路径系统允许路径中的分隔符 / 重复出现。例如,以下路径被视为等价的: /usr//local//nginx/sbin//…...
【微服务】1、引入;注册中心;OpenFeign
微服务技术学习引入 - 微服务自2016年起搜索指数持续增长,已成为企业开发大型项目的必备技术,中高级java工程师招聘多要求熟悉微服务相关技术。微服务架构介绍 概念:微服务是一种软件架构风格,以专注于单一职责的多个响应项目为基…...
SQL Server 数据库 忘记密码
1、先用windows 身份验证 连接 2、安全性--登录名 3、设置 身份验证 4、重启电脑 5、登录 登陆成功!!! ------------------------------------------------------------------ --1、查询登录账号信息 ------------------------------------------------------------------ -- …...
Tableau数据可视化与仪表盘搭建-安装教程
下载 tableau.com/zh-cn/support/releases 滚动到最下方的下载 在下载的同时 我们点击登录,去注册一个tableau的账号 下面点击我们下载好的tableau安装程序 不要自定义安装,会有路径问题 点击试用14天 点击激活 激活学生 tableau.com/zh-cn/academic…...
UGUI 优化DrawCall操作记录(基于Unity2021.3.18)
UGUI中相同材质相同Shader相同贴图的UI元素可以合并DrawCall。 1.使用图集 Unity性能优化---使用SpriteAtlas创建图集进行批次优化_unity2021.3.33 spriteatlas优化-CSDN博客 2.Canvas的子物体在场景树中的索引位置和不同图集不影响UI合批且UI网格没有重叠,如下图…...
DeepSeek v3为何爆火?如何用其集成Milvus搭建RAG?
最近,DeepSeek v3(一个MoE模型,拥有671B参数,其中37B参数被激活)模型全球爆火。 作为一款能与Claude 3.5 Sonnet,GPT-4o等模型匹敌的开源模型DeepSeek v3不仅将其算法开源,还放出一份扎实的技术…...
网络编程原理:回显服务器与客户端通信交互功能
文章目录 路由器及网络概念网络通信基础TCP/IP 五层协议封装和分用封装分用 网络编程(网络协议)UDP类 API使用实现回显通信程序回显服务器(UDP代码)回显客户端(UDP代码) TCP API使用回显服务器(TCP代码)回显客户端(TCP代码) 路由器及网络概念 网络发展是…...
#渗透测试#漏洞挖掘#WAF分类及绕过思路
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...
西安电子科技大学初/复试笔试、面试、机试成绩占比
西安电子科技大学初/复试笔试、面试、机试成绩占比 01通信工程学院 02电子工程学院 03计算机科学与技术学院 04机电工程学院 06经济与管理学院 07数学与统计学院 08人文学院 09外国语学院 12生命科学与技术学院 13空间科学与技术学院 14先进材料与纳米科技学院 15网络与信息安…...
【Python学习(六)——While、for、循环控制、指数爆炸】
Python学习(六)——While、for、循环控制、指数爆炸 本文介绍了While、for、循环控制、指数爆炸,仅作为本人学习时记录,感兴趣的初学者可以一起看看,欢迎评论区讨论,一起加油鸭~~~ 心中默念:Py…...
中间件自动化测试框架cmdlinker
背景 作为一个中间件的测试工程师,如何对于中间件提供的命令进行自动化的回归,这一直是一个难题,市面上好像缺乏了对于命令进行自动化回归的合理解决方案。 常见方式有下面两种: 直接写字符串的命令,然后使用各种编程…...
写一个类模板三个模板参数K,V,M,参数是函数(函数参数、lambda传参、函数指针)
cal是类的成员函数。cal的3个入参是func1(K),func2(K,V),func3(K,V,M),请写出cal,并在main函数中调用cal 在您给出的要求中,cal成员函数并不直接…...
STM32-笔记35-DMA(直接存储器访问)
一、什么叫DMA? DMA(Direct Memory Access,直接存储器访问)提供在外设与内存、存储器和存储器之间的高速数据传输使用。它允许不同速度的硬件装置来沟通,而不需要依赖于CPU,在这个时间中,CPU对于…...