【数据库初阶】MySQL中表的约束(上)

亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 MySQL中表的约束 帮助您轻松入门,快速掌握核心概念。
如果文章对您有所启发或帮助,请别忘了 点赞 👍、收藏 🌟、留言 📝 支持!您的每一份鼓励,都是我持续创作的源动力。让我们携手前行,共同进步!
文章目录
- @[toc]
- `0. 什么是表的约束`
- `1. NULL & NOT NULL`
- 🎧1.1 关键词解释🎧
- 🎧1.2 用法示例🎧
- `2.DEFAULT`
- 🎧2.1 关键词解释🎧
- 🎧2.2 用法示例🎧
- 🎧2.3 NOT NULL 和 DEFAULT 区别🎧
- `3.COMMENT`
- 🎧3.1 关键词解释🎧
- 🎧3.2 用法示例🎧
- `4.ZEROFILL`
- 🎧4.1 关键词解释🎧
- 🎧4.2 用法示例🎧
- `5. PRIMARY KEY`
- 🎧5.1 关键词解释🎧
- 🎧5.2 用法示例🎧
- 5.2.1 单列主键
- 5.2.2 复合主键
文章目录
- @[toc]
- `0. 什么是表的约束`
- `1. NULL & NOT NULL`
- 🎧1.1 关键词解释🎧
- 🎧1.2 用法示例🎧
- `2.DEFAULT`
- 🎧2.1 关键词解释🎧
- 🎧2.2 用法示例🎧
- 🎧2.3 NOT NULL 和 DEFAULT 区别🎧
- `3.COMMENT`
- 🎧3.1 关键词解释🎧
- 🎧3.2 用法示例🎧
- `4.ZEROFILL`
- 🎧4.1 关键词解释🎧
- 🎧4.2 用法示例🎧
- `5. PRIMARY KEY`
- 🎧5.1 关键词解释🎧
- 🎧5.2 用法示例🎧
- 5.2.1 单列主键
- 5.2.2 复合主键
上一篇文章中,博主介绍了 :
- MySQL中不同的数据类型
建议将上一篇文章看完之后再来看这篇文章,链接如下:
【数据库初阶】MySQL数据类型那么接下来正文开始:
0. 什么是表的约束
- 上一篇文章中讲过,真正表的约束其实是 数据类型;
- 但是数据类型约束很单一,需要有一些 额外的约束,更好的保证 数据的合法性,从业务逻辑角度 保证数据的正确性。
- 表的约束有很多,本篇文章主要介绍以下几个:
null / not null,
default,
comment,
zerofill,
primary key,
auto_increment,
unique key
1. NULL & NOT NULL
🎧1.1 关键词解释🎧
NULL
就是空,什么都没有的意思,和语言上的NULL
是有点区别的;- 在数据库创建中,如果从逻辑角度不想让某一个字段(某一列)为空,就要添加约束条件,
NOT NULL
。
🎧1.2 用法示例🎧
- 例如,在学校中,从逻辑上讲,每个学生的学号都不可能是空值;
- 因此可以将这个字段添加约束
NOT NULL
; SQL
代码如下:
mysql> create table if not exists null_test(-> stu_id varchar(10) not null,-> stu_name varchar(10),-> stu_class int-> );
- 查看一下表结构,输入:
desc null_test;
- 此时,必须在这个表中的每一行添加这个字段的值,不然就会报错:
2.DEFAULT
🎧2.1 关键词解释🎧
- 在一张表中,某一个字段的值可能 出现的频率比较高;
- 为了避免重复的输入,可以将这个字段添加约束
DEFAULT
默认值; - 下次就不需要手动进行插入,会自动添加到表中;
- 如果某一行中此字段的值不是默认值,再手动修改,大大提高了效率。
🎧2.2 用法示例🎧
- 例如,在理工类学校中,男生的人数可能比女生的人数要多很多;
- 那么就可以将性别这个字段添加默认值;
- 代码如下:
mysql> create table if not exists default_test(-> stu_id int not null,-> gender char(1) default '男',-> age int unsigned -> );
Query OK, 0 rows affected (0.05 sec)
- 查看表结构:
- 省略
gender
字段向表中插入数据,那就是默认值,不省略就可以修改:
🎧2.3 NOT NULL 和 DEFAULT 区别🎧
问题1:
- 先来看下面的一个插入方式,为什么在创建的时候
age
字段没有设置默认值,插入的时候也可以被省略?
- 实际上,对于不是
NOT NULL
的字段,MySQL
会自动帮我们添加 默认值NULL
,我们可以查看一下MySQL
为我们修改的创建表的语法:
问题2:
- 我们可以看到:非空约束的默认值也是
NULL
,为什么呢?
- 其实这个
NULL
的本质是不一样的,如果我们不指定stu_id
列插入数据看一下:- 可以看到,这里的报错是 没有默认值报的错。
- 如果我们指定了这个列,但是插入的是空值看一下:
- 注意到,这里的报错是 此列不能是空报的错。
- 因此,在定义非空约束的表中,
MySQL
不会帮我们自动生成一个默认值; - 对于带有
NOT NULL
约束的字段,DESC
中显示的Default
为NULL
,这并不表示这个字段的默认值是NULL
。实际上,NOT NULL
约束要求这个字段在插入时不能是NULL
,如果插入时没有提供这个字段的值,MySQL
会报错,报的是没有默认值的错误。
总结:
-
对于是非空约束的字段:
MySQL
不会帮我们自动生成一个默认值,如果我们在插入数据的时候不显示指定此列,那么编译器就会报没有默认值的错误;- 如果插入数据的时候显示插入值,但是插入的值是
NULL
,才会报自此段不能为空的错误。
-
对于不是非空约束的字段:
MySQL
会自动帮我们生成一个默认值NULL
,所以不会报没有默认值的错误。- 因为只有设置了
default
的列,才可以在插入值的时候,对列进行省略。
-
一般情况下,
default
约束和not null
约束不会一起使用。
3.COMMENT
🎧3.1 关键词解释🎧
comment
表示列描述,没有实际含义,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA来进行了解;
🎧3.2 用法示例🎧
- 创建一个表,描述各个列的含义;
- 代码如下:
mysql> create table if not exists comment_test(-> name varchar(20) not null comment '姓名',-> age tinyint unsigned default 18 comment '年龄',-> gender char(1) default '男' comment '性别'-> );
Query OK, 0 rows affected (0.08 sec)
desc
是查不到注释信息的:
- 通过
show create table
可以看到:
4.ZEROFILL
🎧4.1 关键词解释🎧
- 还记得在上一篇文章中讲的数据类型
int
吗,在查表的时候后面的数字代表着什么呢? - 其实没有这个
zerofill
属性,这个数字是没有意义的; - 其实这个表示最后用统一的字数显示,如果是 10 10 10,那么最后就是显示 10 10 10位数字,如果实际数字少于 10 10 10 位,就用 0 0 0 补齐,如果多出就不管。
🎧4.2 用法示例🎧
- 创建一个表,里面只有
int
,一个int(5)
,另一个int(10)
这个用zerofill
约束; - 代码如下:
mysql> create table if not exists zerofill_test(-> a int(5),-> b int(10) unsigned zerofill-> );
- 插入数据,代码如下:
mysql> insert into zerofill_test values(1,2);
Query OK, 1 row affected (0.01 sec)mysql> insert into zerofill_test values(325, 510);
Query OK, 1 row affected (0.01 sec)
- 查表:
mysql> select * from zerofill_test;
+------+------------+
| a | b |
+------+------------+
| 325 | 0000000510 |
| 1 | 0000000002 |
+------+------------+
2 rows in set (0.00 sec)
- 其实
int
默认是 10 10 10 位也是有原因的,因为它的最大值就是二十一亿多( 10 10 10 位数字),unsigned
也就是四十二亿多( 10 10 10 位数字)。
5. PRIMARY KEY
🎧5.1 关键词解释🎧
primary key
用来 唯一的 约束该字段里面的数据,不能重复,不能为空;- 主键要求表中每一行记录的值都是唯一的,也就是说,主键字段的值不能重复。每行数据的主键值都是唯一的,确保数据的唯一性。
- 主键字段不能为
NULL
。也就是说,在定义主键时,MySQL
会自动给该字段添加NOT NULL
约束。每一行数据在插入时,主键字段必须提供一个有效的、非空的值。
- 一张表中最多只能有 一个主键,但可以由一个列或多个列组成(复合主键)。
- 主键可以由一列或多列字段组成。一个单列主键称为“单列主键”,而由多个列组成的主键称为“复合主键”。
- 单列主键:表中只有一个字段作为主键。
- 复合主键:多个字段组合成一个主键,保证唯一性。
- 主键可以由一列或多列字段组成。一个单列主键称为“单列主键”,而由多个列组成的主键称为“复合主键”。
- 主键所在的列通常是 整数类型。
🎧5.2 用法示例🎧
5.2.1 单列主键
- 可以用以下两种方式定义主键:
#方法1:
mysql> create table if not exists primarykey_test(-> stu_id int,-> name varchar(20),-> gender char(2) default '男',-> primary key(stu_id)-> );
Query OK, 0 rows affected (0.04 sec)# 方法2:
mysql> create table if not exists primarykey_test(-> stu_id int primary key,-> name varchar(20),-> gender char(2) default '男',-> );
Query OK, 0 rows affected (0.04 sec)
- 查看创建信息:
- 发现自动添加了
NOT NULL
约束。
- 发现自动添加了
- 插入信息,发现如果有了主键约束,此列信息不能重复:
- 可以删除主键,代码如下:
mysql> alter table primarykey_test drop primary key;
Query OK, 1 row affected (0.16 sec)
Records: 1 Duplicates: 0 Warnings: 0mysql> desc primarykey_test;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| stu_id | int | NO | | NULL | |
| name | varchar(20) | YES | | NULL | |
| gender | char(2) | YES | | 男 | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
- 删除后可以重新添加,但要 保证添加这一列中没有重复的值!!
mysql> alter table primarykey_test add primary key(stu_id);
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> desc primarykey_test;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| stu_id | int | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| gender | char(2) | YES | | 男 | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
5.2.2 复合主键
- 定义方法,代码如下:
- 这个表中定义主键的意思是一个学生可以选择多门课,一门课可以被多名学生选择,但是 不存在一名学生重复选择同样的课的情况。
mysql> create table if not exists primarykey_test2( -> stu_id int, -> course_id int, -> grade int, -> primary key(stu_id, course_id)
);
Query OK, 0 rows affected (0.04 sec)
- 查看创建信息和表结构:
主键的特点与约束:
- 每个表只能有一个主键,但是主键可以包含多个字段(即复合主键)。
- 如果表中已经有一个字段被定义为主键,其他字段就不能重复该主键的值。
相关文章:
【数据库初阶】MySQL中表的约束(上)
🎉博主首页: 有趣的中国人 🎉专栏首页: 数据库初阶 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 MySQL…...
smbms超市管理系统
系统测试及实现效果 完整源码已上传资源 登录界面 系统首页 订单管理页面 用户管理页面 供应商管理页面 密码修改 SQL语句分析 存储引擎:InnoDB,支持事务和外键;字符集:utf8,支持多语言字符;排序规则&am…...
Visual Studio 中增加的AI功能
前言: 人工智能的发展,在现在,编程技术的IDE里面也融合了AI的基本操做。本例,以微软的Visual Studio中的人工智能的功能介绍例子。 本例的环境: Visual Studio 17.12 1 AI 智能变量检测: 上图展示了一…...
大功率PCB设计
1.电源和电机的走线用线径较大的铺铜,讲究的是走线顺畅: 2.同一个电源属性四层板都铺铜,并打很多过孔: 3.走线顺畅,可以看到从左到右供电。从右向左接地,加电流采样: 一个问题,这样会形成电源环…...
Nginx与frp结合实现局域网和公网的双重https服务
背景: 因为局域网内架设了 tiddlywiki、 Nextcloud 等服务,同时也把公司的网站架设在了本地,为了实现局域网直接在局域网内访问,而外部访问通过frps服务器作为反向代理的目的,才有此内容。 实现的效果如下图琐事 不喜欢…...
改投论文时如何重构
摘要: 不同期刊和会议对于论文的风格、页数限制等方面有一些差别, 论文在某个地方被拒, 改投别处时需要进行重构. 本贴描述重构的基本方案. 你的衣柜乱糟糟的, 如何清理呢? 方案 A. 把不喜欢的衣服一件件丢掉.方案 B. 把衣服全部丢出来, 然后再把喜欢的衣服一件件放进去. 对…...
【YOLOv5】源码(common.py)
该文件位于/models/common.py,提供了构建YOLOv5模型的各种基础模块,其中包含了常用的功能模块,如自动填充autopad函数、标准卷积层Conv、瓶颈层Bottleneck、C3、SPPF、Concat层等 参考笔记:【YOLOv3】 源码(common.py…...
python中的赋值方法
python赋值方法有很多,主要可以分为链式赋值、系列解包赋值、常量形式赋值,下面介绍下三者间区别: 1、链式赋值: 链式赋值用于同一个对象赋值给多个变量 xy123 可以认为是 x 123 y 123 2、系列解包赋值: 系列数据…...
pyhton 掩码 筛选显示
目录 bitwise_and控制: 点乘: 性能对比: bitwise_and控制: import cv2# 读取彩色图和mask二值图 color_img cv2.imread(color_image.jpg) mask cv2.imread(mask.jpg, 0) # 以灰度模式读取二值图# 确保彩色图和mask的尺寸一…...
测试覆盖率
1、概念 覆盖率测试,也称为测试覆盖率分析,是软件测试中的一个重要概念,用来衡量测试用例执行时对代码的覆盖程度。它提供了一种量化的方法来评估测试集的充分性,即测试是否足够广泛地触及了应用程序的所有部分。覆盖率测试可以应…...
clickhouse query_log 常用查询语句
1、查询一段时间耗时超过3秒的语句。 SELECT* FROMsystem.query_log WHEREquery_duration_ms > 30000AND event_time > 2024-12-31 15:50:00 AND event_time < 2024-12-31 17:50:00 ORDER BYevent_time desc;2、查询一段时间报错的语句 SELECT* FROMsystem.query_lo…...
uni-app 资源引用(绝对路径和相对路径)方法汇总
文章目录 一、前言🍃二、绝对路径和相对路径2.1 绝对路径2.2 相对路径 三、引用组件四、引用js4.1 js 文件引入4.2 NPM支持 五、引用css六、引用json6.1 json文件引入 七、引用静态资源7.1 模板内引入静态资源7.2 css 引入静态资源7.3 js/uts 引入静态资源7.4 静态资…...
Java SpringBoot使用EasyExcel导入导出Excel文件
点击下载《Java SpringBoot使用EasyExcel导入导出Excel文件(源代码)》 在 Java Spring Boot 项目中,导入(读取)和导出(写入) Excel 文件是一项常见的需求。EasyExcel 是阿里巴巴开源的一个用于简化 Java 环境下 Excel…...
CDN SSLTLS以及安全
随着互联网的发展,内容分发网络(CDN)在提升网站访问速度和安全性方面发挥了重要作用。然而,CDN在带来便利的同时也面临一些安全挑战。本文将探讨CDN的安全风险,并深入解析SSL/TLS加密技术及其在CDN中的应用。 CDN的安全…...
安卓11 SysteUI添加按钮以及下拉状态栏的色温调节按钮
最近客户想要做一个台灯产品,需要实现 串口调节台灯功能 ,其中包括 亮度调节 色温调节 开关 三个功能 话不多说,贴代码 diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml old mode 100644 new …...
SpringMVC启动与请求处理流程解析
目录 SpringMVC的基本结构 1.MVC简介 2.基本结构 什么是Handler? 什么是HandlerMapping? 什么是HandlerAdapter? RequestMapping方法参数解析 DispatcherServlet的init()方法 DispatcherServlet的doService()方法 SpringBoot整合SpringMVC …...
RabbitMQ案例
1. 导入依赖 <!--AMQP依赖,包含RabbitMQ--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency> 发送消息 注入RabbitTemplate Autowired RabbitT…...
前路漫漫,曙光在望 !
起始 从20年大一开始写作至今,转眼五年时光已经过去了,最开始在CSDN这个平台写博客也只是因为一次机缘巧合情况下得知写博客可以获取奖赏,所以那个时期开始疯狂在CSDN发文记录自己编程学习过程,但是至今也未从写作中获利一分哈…...
音视频-----RTSP协议 音视频编解码
流媒体协议详解:RTSP、RTP、RTCP、SIP、SDP、RTMP、WebRTC、WebSocket-CSDN博客 上文讲解比较清楚 多媒体编解码基础知识 一文详解WebRTC、RTSP、RTMP、SRT-腾讯云开发者社区-腾讯云 RTP :(Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传…...
SpringMVC的消息转换器
SpringMVC的消息转换器(Message Converter)是Spring框架中用于处理HTTP请求和响应体与Java对象之间转换的组件。它们使得开发人员可以轻松地将HTTP请求的数据映射到方法参数,并将返回的对象转换为HTTP响应。 工作原理 当一个HTTP请求到达Spr…...
计算机网络练习题
学习这么多啦,那就简单写几个选择题巩固一下吧! 1. 在IPv4分组各字段中,以下最适合携带隐藏信息的是(D) A、源IP地址 B、版本 C、TTL D、标识 2. OSI 参考模型中,数据链路层的主要功能是(…...
本地测试文件解析
PostMapping("/test") public void test() throws IOException {Path csvFile Paths.get("D:\\test/27.csv");//虚拟机退出时删除临时文件csvFile.toFile().deleteOnExit();List<String> list Files.readAllLines(csvFile, Charset.forName("…...
websocket-sharp:.NET平台上的WebSocket客户端与服务器开源库
推荐一个C#开发的,实现WebSocket功能的开源项目。 01 项目简介 websocket-sharp提供 WebSocket 客户端和服务器库,基于 C# 开发的,并遵循 WebSocket 协议规范,使得开发人员能够轻松地在 .NET 应用程序中实现 WebSocket 通信。 …...
SwiftUI 撸码常见错误 2 例漫谈
概述 在 SwiftUI 日常撸码过程中,头发尚且还算茂盛的小码农们经常会犯这样那样的错误。虽然犯这些错的原因都很简单,但有时想要快速准确的定位它们却并不容易。 况且这些错误还可能在模拟器和 Xcode 预览(Preview)表现的行为不甚…...
回归预测 | MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测
回归预测 | MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测 数据准备&#x…...
Nginx常用配置之详解(Detailed Explanation of Common Nginx Configurations)
Nginx常用配置详解(图文全面总结) Nginx Nginx 是一款轻量级的高性能 HTTP、 和反向代理服务器。 Nginx,被广泛用于负载均衡、静态文件服务、和代理.........等。 Nginx,以高并发、低内存占用、和高可用性著称,大部分的大厂以及公司都在使…...
【PyTorch入门】 PyTorch不同优化器的比较
本次分享pytorch中几种常用的优化器,并进行互相比较。 PyTorch 优化器原理及优缺点分析 在 PyTorch 中,torch.optim 提供了多种优化器用于神经网络训练。每种优化器背后有不同的更新规则和机制,旨在适应不同的训练需求。以下是五种常见优化器…...
jest使用__mocks__设置模拟函数不生效 解决方案
模拟文件 // __mocks__/axios.js const axios jest.fn(); axios.get jest.fn(); axios.get.mockResolvedValue({data: {undoList: [get data],}, }); export default axios; 测试文件 jest.mock(axios); import Axios from axios;test(mytest, () > {console.log("…...
聆听音乐 1.5.9 | 畅听全网音乐,支持无损音质下载
聆听音乐手机版是面向广大音乐爱好者的移动应用程序,用户可以随时随地通过手机享受丰富的音乐资源。它提供了多种魅力功能,让用户在手机上畅享更舒适的音乐体验,每位用户都能享受精彩纷呈的收听体验。此外,软件还支持无损音质音乐…...
VMware去虚拟化
介绍两款用于去除VMware虚拟机虚拟化特征的工具,这些工具可以帮助用户在虚拟机中运行游戏时避免被游戏检测到虚拟机环境,从而防止游戏因检测到虚拟机而闪退。这些工具通过修改虚拟机的硬件信息(如硬盘、声卡、网卡、主板芯片组、显卡、主板信…...
汉王扫描王 2.9.16 |免费无广告的智能扫描软件,支持多种格式导出
汉王扫描王是一款功能全面的智能扫描软件,集成了文字识别、表格提取和文档转换等功能。它支持将文档转换为PDF、Word、Excel等多种格式,非常适合学生、教师、业务人员和财务工作者使用。该软件具备手机扫描仪功能,能够自动抠边、矫正文档&…...
毕设中所学
1、交叉引用 在毕业设计论文Word中交叉引用参考文献_交叉引用如何标注[1~6]-CSDN博客 另:将标号或其他文字改为上标的快捷键是CtrlShift。 图的交叉引用一样,修改引用类型即可。 2、ENVI安装 ENVI5.6 安装教程,新手入门(超详细…...
[微服务]分布式搜索Java客户端
快速入门 使用RestClient客户端进行数据搜索可以分为两步 构建并发起请求 代码解读: 第一步,创建SearchRequest对象,指定索引库名第二步,利用request.source()构建DSL,DSL中可以包含查询、分页、排序、高亮等 query…...
STM32 拓展 低功耗案例3:待机模式 (hal)
配置PA0的两种方式: 第一种 第二种 复制寄存器代码然后对其进行修改 mian.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program body…...
在Linux下安装部署Tomcat教程
摘要 Tomcat是由Apache开发的要给Servlet容器,实现了对Servlet 和JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台,安全管理和Tomcat阀等。简单来说,Tomcat是一个由WEB应用程序的托管平台,可以让用户编写的WEB应用程序,别Tomcat所托管,并提供网…...
第5章 串行接口
8251A的基本特性 可用于同步和异步传送。 同步传送:5~8bit/字符,内同步或外同步,自动插入同步字符; 异步传送:5~8bit/字符,接收/发送时钟频率为通信波特率的1,16或64倍; 可产生中止字符、1,1.5,2位停止位。…...
Vue 百度地图 搜索框+点击地图获取坐标
本文通过vueele百度地图,实现点击地图获取坐标,或者搜索框智能联想下拉框,点击获取坐标及地图位置标点。 百度地图通过public文件夹下index.html,script方式 引入全局 代码如下: <template><div><div id"l-…...
Python学习路线
以下是一个Python详细学习路线: 一、入门阶段(第1 - 2个月) 环境搭建与基础语法 安装与配置: 从Python官方网站(Download Python | Python.org)下载适合自己操作系统的Python版本并进行安装。 配置环境变…...
Web Services 简介
Web Services 简介 1. 引言 Web Services 是一种基于网络的软件服务,它允许不同的应用程序在互联网上相互通信和交互。这种技术是基于开放的互联网标准,如HTTP、XML、SOAP和WSDL,使得不同平台和编程语言的应用程序能够轻松地实现互操作性。Web Services 的出现,极大地推动…...
option api compose api
option api & compose api <script setup> import { ref, computed } from vue; // 原始数据 const data ref([ { position: { x: 1, y: 2 } }, { position: { x: 3, y: 4 } }, { position: { x: 5, y: 6 } } ]); // 数据转换函数 const convertData …...
tcpdump的常见方法
详解tcpdump的使用方法:网络数据包捕获与分析 tcpdump是一个功能强大的命令行工具,用于捕获和分析通过网络接口传输的数据包。它广泛应用于网络故障诊断、网络安全监控和协议分析等领域。本文将详细介绍tcpdump的使用方法,包括安装、基本命令…...
【C语言】可移植性陷阱与缺陷(四):字符是有符号整数还是无符号整数
在 C 语言中,字符类型(char)是一个字节大小的整数类型,但它可以被编译器解释为有符号整数或无符号整数,这是一个容易导致可移植性问题的重要因素。这种解释的不确定性可能会在程序的逻辑、比较运算和数据处理等多个方面引发错误。 一、字符类型的默认行为 根据C语言标准…...
[Linux]进程间通信-管道
目录 1. 进程间通信 2.父子进程之间的通信 3.匿名管道 匿名管道的创建 管道读写的情况 管道的5种特性 4.命名管道 指令级 命名管道原理 代码级 读取端 1. 进程间通信 当我们有两个进程操作数据库的时候,一个进程负责写入操作,一个进…...
设置开机自启动的应用
设置开机自启动的应用 step1:按住ShiftctrlEsc step2:找到启动应用 step3:鼠标到启动那里,右键就可以禁用了...
QQ长截屏
QQ长截屏 第一步:CtrlAltA 第二步:点击剪刀之后,再滑动滚轮就可以了。 展示...
38 Opencv HOG特征检测
文章目录 HOGDescriptor 构造函数setSVMDetector 设置支持向量机(SVM)检测器,用于目标检测。compute 用于计算图像区域的HOG描述符。detectMultiScale 多尺度检测目标。示例 HOGDescriptor 构造函数 HOGDescriptor(); HOGDescriptor(const S…...
Segment Anything论文详细翻译【Part2:引言Introduction】
目录 写在前面 Introduction 第1段 第2段 第3段 第4段 第5段 第6段 第7段 第8段 第9段 第10段 第11段 第12段 Figure2 关键特点 图中具体内容 图例说明 写在前面 为啥要写这篇文章?因为找不到一篇写的特别好的【翻译并仔细解释】文章。网上大多千…...
Mac中配置Node.js前端vscode环境(第二期)
核心组件:vscode、谷歌浏览器、Node.js(重点)、git 一、Node.js安装(nvm安装) 点击macos中的终端,保持bash,而不是zsh 若为zsh,则可在终端中使用下面命令变成bash chsh -s /bin/…...
基于COT(Chain-of-Thought Prompt)的教学应用:如何通过思维链提示提升模型推理能力
引言 随着人工智能技术的快速发展,大型语言模型(LLMs)在自然语言处理领域展现出了强大的能力。然而,面对复杂的推理任务时,模型的表现往往不尽如人意,尤其是在需要多步逻辑推导的场景中。为了应对这一挑战…...
Python Notes 1 - introduction with the OpenAI API Development
Official document:https://platform.openai.com/docs/api-reference/chat/create 1. Use APIfox to call APIs 2.Use PyCharm to call APIs 2.1-1 WIN OS.Configure the Enviorment variable #HK代理环境,不需要科学上网(价格便宜、有安全风险&#…...