【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

人工智能|大模型—— 框架 ——一文详解MCP(从原理到实践)

人工智能|大模型—— 框架 ——一文详解MCP(从原理到实践)

最近 MCP 这个关键词逐渐活跃在我所浏览的一些文章及评论区中。突然发现我对它仅有粗糙的理解,我决定深入学习并记录一下。在阅读这篇文章前,我也简单地浏览了现有介绍 MCP 的文章。我发现大部分文章停留在“翻译” https://modelcontextprotocol.io/ 网站中的内容,或者花时间在绝大部分用户不关心的技术细节上(还有一些纯 AI 文)。因此,我将从使用者的角度出发,分享实用内容,并以一个示例展示 MCP 的开发过程与实际应用作为结尾。本篇旨在回答以下三个问题: * 什么是 MCP? * 为什么需要 MCP? * 作为用户,我们如何使用/开发 MCP? 一、什么是MCP MCP起源于2024年11月25日Anthropic发布的文章:Introducing the Model Context Protocol。MCP(Model Context Protocol,模型上下文协议)定义了应用程序和 AI 模型之间交换上下文信息的方式。

By Ne0inhk
【从0开始学习Java | 第23篇】动态代理

【从0开始学习Java | 第23篇】动态代理

文章目录 * Java动态代理概述 * 一、动态代理的核心概念 * 形象解释 * 二、两种主流动态代理实现 * 1. JDK动态代理(基于接口) * 原理 * 示例代码 * 优缺点 * 2. CGLIB动态代理(基于子类) * 原理 * 示例代码(需引入CGLIB依赖) * 优缺点 * 三、JDK与CGLIB动态代理对比 * 四、实际应用场景 * 五、总结 Java动态代理概述 在Java开发中,代理模式设计模式之一,而动态代理作为代理模式的进阶形式,在框架开发(如Spring AOP)、日志记录、权限控制等场景中发挥着关键作用。本文将从核心概念出发,拆解两种主流动态代理的实现逻辑,并分析其适用场景。 一、动态代理的核心概念 动态代理指在程序运行时,通过反射机制动态生成代理类,而非在编译期预先定义。其核心价值在于:无需为每个目标类手动编写代理类,即可统一为多个目标类添加横切逻辑(如日志、事务、异常处理),降低代码耦合度。

By Ne0inhk
深度解析 MySQL 与 MCP 集成:从环境构建到 AI 驱动的数据交互全流程

深度解析 MySQL 与 MCP 集成:从环境构建到 AI 驱动的数据交互全流程

前言 在当前大语言模型(LLM)应用开发的浪潮中,MCP(Model Context Protocol)协议正在成为连接 AI 模型与本地数据设施的关键桥梁。本文将以 MySQL 数据库为例,详细拆解如何通过 MCP 协议让 AI 模型直接操作关系型数据库,涵盖从服务器发现、数据库架构设计、数据初始化、MCP 配置文件编写到复杂自然语言查询与写入的全过程。 第一部分:MCP 服务器的发现与配置获取 在进行任何数据交互之前,首要任务是确立连接协议与服务源。通过蓝耘 MCP 广场,开发者可以快速检索并获取所需的 MCP 服务器配置。 在搜索栏输入 mysql 关键字,系统会立即检索出相关的 MCP 服务器资源。如下图所示,搜索结果中清晰展示了 MySQL 对应的 MCP 服务卡片。 点击选中该 MCP 服务器后,

By Ne0inhk
推荐5款好用的 VS Code 插件:注释优雅、可视化数据结构、最强 AI 辅助编码!

推荐5款好用的 VS Code 插件:注释优雅、可视化数据结构、最强 AI 辅助编码!

AI编程已火了快两年了,各种编程插件层出不穷,已经彻底改变了成员编程代码的方式。 AI编程助手中,公认最强的是基于GPT4的Github Copilot插件,但是仅官方订阅大概需要每个月70元左右,且网络方面也是需要考虑的方面,这么综合算下来成本还是不小的,而且Github Copilot还具备一定的使用门槛。 因此,给大家推荐分享5个目前比较流行VS Code AI助手且免费使用。 1. 通义灵码 通义灵码是一款阿里巴巴推出的基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/OpenAPI 的使用场景调优,助力开发者高效、流畅的编码。 通义灵码官网: https://tongyi.aliyun.com/lingma/ 通义灵码底层基础模型已升级至Qwen,熟练掌握200多种编程语言,兼容Visual Studio Code、Visual Studio、JetBrains IDEs等主流编程工具。此外,通义灵码还支持上传企业私域知识库,实现私

By Ne0inhk