【MySQL】数据库的 “红绿灯”:非空、主键、外键到底管什么?

【MySQL】数据库的 “红绿灯”:非空、主键、外键到底管什么?

表的约束:表中一定要有各种约束,通过各种约束,保证未来数据库中的数据的准确的;约束的本质是:通过技术手段倒逼程序员,插入正确的数据,进而保证数据库中的数据的正确的;

一、非空约束

两个值:null(默认的)和not null(不为空)

数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办法参与运算。

null Vs '' 

null : 表示什么都没有;

'' :有,但是为空;

二、default 约束

default : 跟 C++ 的缺省值一样;

not null  and default:

注意:如果我们的表中没有设置 default 和 not null 约束,他默认 default null,如果设置了 not null 则不会有 default null;

三、comment 列描述

列描述跟注释没什么区别;

四、zerofill 约束

int(10) 没有 zerofill 约束是没有意义的:

相当于 int(10) 里面的 10 就是数字的长度,如果少于 10 个数字,用0来补充显示;

五、主键约束

主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;主键所在的列通常是整数类型。

去除主键约束:

添加主键约束:

复合主键:主键不是只能给一列设置,给多列设置主键的就是符合主键;

注意:复合主键只有设置有主键的那几列同时和过往的数据相同时就会产生主键冲突;

六、auto increment 约束

auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。

自增长的特点:

任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)

自增长字段必须是整数

一张表最多只能有一个自增长

自定义自增长值:

查看最后一次的插入的自增长的值:

七、唯一键

主键不能为空,而唯一键可以为空,NULL 的意思的什么都没有,NULL 不参与计算;

注意:一张表中只能有一个主键,但是可以有多个唯一键;

八、外键

因为学生是从属于某个班级的,所以:

外键主要是:表与表之间的约束;

创建外键:

外键用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。当定义外键后,要求外键列数据必须在主表的主键列存在或为null。

Read more

tmux_for_windows windows上面安装 git bash 2026年 正是专门为了解决“SSH 掉线后还能继续原来的会话”这个问题而设计的工具

tmux_for_windows tmux是一个开源工具,用于在一个终端窗口中运行多个终端会话。本工具从msys2里提取,可以在Git for Windows的Git Bash (MingW64)下正常使用。 蘭雅sRGB 龙芯小本服务器 | https://262235.xyz ##tmux(以及 screen)正是专门为了解决“SSH 掉线后还能继续原来的会话”这个问题而设计的工具。 简单来说: 工具SSH 掉线后还能连上原来的会话吗?说明普通 bash / zsh不能会话结束,进程收到 SIGHUP 信号,通常被杀死tmux能会话独立于 SSH 连接存在,掉线后可以随时重新 attachscreen能和 tmux 功能几乎一样,但 tmux 现在更流行、功能更强zellij能更现代的替代品,但普及度不如 tmux tmux 的典型用法(SSH 掉线后重连)

By Ne0inhk

开源CV大模型部署:MogFace+ResNet101人脸检测镜像免配置GPU加速教程

开源CV大模型部署:MogFace+ResNet101人脸检测镜像免配置GPU加速教程 想快速搭建一个专业级的人脸检测工具,但又不想折腾复杂的模型下载、环境配置和GPU驱动安装?今天,我来带你体验一个“开箱即用”的解决方案。这个方案基于CVPR 2022顶会论文提出的MogFace模型,结合强大的ResNet101骨干网络,能让你在几分钟内,就在本地拥有一个能应对各种复杂场景的高精度人脸检测器。 无论你是计算机视觉的初学者,还是需要快速验证人脸检测效果的开发者,这个教程都将为你省去大量前期准备时间。我们直接从一个预置好的Docker镜像出发,跳过所有繁琐步骤,直奔主题——体验AI如何精准地“看见”人脸。 1. 为什么选择MogFace+ResNet101? 在开始动手之前,我们先花一分钟了解一下手里的“武器”有多厉害。你可能会问,人脸检测不是有很多现成的工具吗,为什么还要专门部署这个? 关键在于鲁棒性和精度。很多通用检测器在人脸正面、清晰、无遮挡的情况下表现不错,但一旦遇到下面这些“刁钻”场景,就容易“翻车”: * 大角度侧脸或低头、仰头 * 部分被遮挡(戴口罩、眼镜

By Ne0inhk
大数据背景下时序数据库选型指南:国产开源技术的突破与实践

大数据背景下时序数据库选型指南:国产开源技术的突破与实践

摘要:在大数据时代,时序数据管理面临写入频繁、存储量大等挑战。Apache IoTDB作为专业时序数据库,通过树状数据模型、高效压缩算法和分布式架构,实现千万级数据点/秒写入和毫秒级查询。其支持SQL语法、UDF扩展和Hadoop/Spark生态集成,在智能网联汽车、电力监控等场景中显著提升性能并降低80%存储成本。选型时需结合数据规模、查询需求及扩展性,IoTDB凭借灵活的架构(边缘计算到云端部署)和开源优势,成为处理海量时序数据的优选方案。 1.前言 在当今大数据时代,物联网、工业互联网和金融科技等领域正以前所未有的速度产生海量时序数据。据IDC预测,到2025年,全球时序数据总量将达到ZB级别。面对如此庞大的数据洪流,如何选择合适的时序数据库成为企业架构师和数据工程师必须面对的重要课题。 2.时序数据的独特挑战 时序数据与传统关系型数据有着本质区别:它们按时间顺序排列,通常包含时间戳、数据源标识和测量值三个基本要素。这类数据具有写入频繁、查询模式特定、数据量巨大等特点。传统关系型数据库在处理时序数据时,往往面临写入瓶颈、存储效率低下和查询性能不足等问题。 以某大型核

By Ne0inhk

STM32项目毕设开源实战:从传感器采集到低功耗通信的完整链路实现

最近在整理本科阶段的嵌入式项目,发现很多同学在做STM32相关的毕业设计时,常常陷入几个相似的困境:代码和硬件绑定太死,换个传感器就得大改;通信部分一旦出问题,整个系统都跟着“罢工”;还有最头疼的,就是代码写完自己都看不懂,更别说复用了。正好我之前开源了一个基于STM32的环境监测项目,涵盖了从传感器采集到无线通信的完整流程,今天就来详细拆解一下,希望能给大家提供一个清晰、可复用的开发思路。 1. 背景与常见痛点分析 在做STM32毕设时,尤其是涉及多传感器和通信的场景,以下几个问题非常普遍: 1. 硬件驱动与业务逻辑强耦合:很多同学会直接把HAL库的读写函数写在main.c的业务循环里。比如读取DHT22温湿度,代码里到处都是HAL_GPIO_WritePin和HAL_Delay。一旦需要更换为其他型号的温湿度传感器(如SHT30),或者移植到不同引脚,改动点就会非常多,且容易出错。 2. 电源管理意识薄弱:很多设计是让MCU一直全速运行,传感器也持续工作。这对于电池供电的户外监测节点来说是致命的,可能半天就没电了,完全不符合物联网设备的实际需求。 3. 通信协议设计随意

By Ne0inhk