Msql----表的约束

news2024/11/17 15:56:04


提示:以下是本篇文章正文内容,下面案例可供参考

一、表的约束

表的约束:表中一定要有约束,通过约束让插入表中的数据是符合预期的。它的本质是通过技术手段,让程序员插入正确的数据,约束的最终目标是保证表的完整性和可预期性。

(1)null 和not null:

只要设置了not null.插入的数据就不可以为空。

(2)default:

默认:如果用户没有插入数据,就使用默认的,如果用户插入了数据,就用用户的。

如果既设置not null 和 default  ,它们之间是互补关系。对于not null来说,要么用户插入合法数据,要么插入null.由于是not null,插入null报错。如果用户忽略不插入,就使用default默认的值,没有default就报错。

需要要注意的是:如果我们没有not null ,mysql会设置default 为空。反之设置了not null 就不是在了。

(3)comment

描述:

 desc t4.查询是不显示的,除非查询表的创建语句

(4) zerofill

修改表的属性,格式化显示。

 

int(10)括号这个数字代表,如果输入的数字没有占10位它就会用0来填充,前提是用zerofill来修饰了,如果没有zerofill,int(10)和int没区别。

 

当然如果你设置int(11)mysql认为你这个int类型是有符号类型。int(10)就是无符号类型的。

(5)key

主键,标识唯一同时一个表中只要一个主键。既然是唯一的,如果重复就不让你插入了 。

1.我们可以在建表之后再添加主键

2.建表的时候,添加主键

3.删除主键

(6)复合主键:primary key

在创建表的时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为主键,可以使用复合主键。注意的是,主键只有一个。

以下例子,设置了id和name构成主键,由于唯一性,再次插入就触发。

(7)自增长:auto_cretement

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

使用:1 .必须和primary key 搭配使用  2.字段是整型 3.一个表中只能有一个自增长

那么它是怎么知道每次从哪开始自增的,表会记录,通过查看表语句

 (8)唯一键:unique

唯一键和主键一样,标识唯一。不过unique可以为空,主键不为空。

一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有多个字段需要唯一性约束的问题。

(9)外键

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

语法:foreign key (字段名) references 主表(列)

1.建主表

2.建立从表

插入数据,主表和从表是互相约束的。这里的插入class_id必须是myclass中存在的或者class_id

暂时为空。又或者如果对myclass表进行删除等操作,除非stu表中已经没有和class表关联了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1858883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AVL树插入详解

1.什么是AVL树 二叉搜索树可以提高搜索的效率,但是如果数据有序或者接近有序,就会退化为单边树,查找效率相当于在顺序表中查找数据,时间复杂度会退化到O(n)。AVL树解决了这个问题,通过保证每个节点的左右子树高度之差…

BoosterX:专为游戏爱好者打造的终极 Windows 系统优化工具

《黑神话:悟空》、《艾尔登法环:黄金树幽影》、暴雪「全家桶」回归……下半年,我们将迎来一场豪华的游戏大餐! 想要畅玩游戏,除了要准备好给力的硬件设备,系统优化当然也不能落下! BoosterX 正…

C++在VS2022开发Windows窗口程序1:第一个win窗口程序

Windows操作系统是由微软公司开发和维护的一系列图形化操作系统的统称。Windows操作系统主要用于个人计算机、笔记本电脑、平板电脑、服务器等设备上。Windows起源于Microsoft-DOS模拟环境,相比于DOS的指令化模式,Windows采用图形化的模式,因…

微信小程序 引入MiniProgram Design失败

这tm MiniProgramDesign 是我用过最垃圾的框架没有之一 我按照官网的指示安装居然能安装不成功,牛! 这里说明我是用js开发的 到以上步骤没有报错什么都没有,然后在引入组件的时候报错 Component is not found in path “./miniprogram _npm/vant/weapp/button/index” (using…

SAPUI5基础知识9 - JSON Module与数据绑定

1. 背景 在前面的博客中,我们已经学习了SAPUI5中视图和控制器的使用,在本篇博客中,让我们学习下MVC架构中的M-模型了。 SAPUI5中的JSON Model是一个客户端模型,可以用于在SAPUI5应用程序中处理和操作JSON数据。SAPUI5提供了绑定…

prometheus+grafana搭建监控系统

1.prometheus服务端安装 1.1下载包 使用wget下载 (也可以直接去官网下载包Download | Prometheus) wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz1.2解压 tar xf prometheus-2.44…

Flutter ffi Failed to lookup symbol

iOS release版本,解决方式参考官方文档:在 iOS 中使用 dart:ffi 调用本地代码 如果debug版本也报这个错误,很可能是有多个.c文件,编译的时候没带上! 假设你的ffi模块名字是 c_lib 对于Android端,需要修改…

03-Shell编程之循环语句与函数

目录 3.1 for循环语句 3.1.1for语句的结构 3.1.2 for语句应用实例 3.2 使用whlie循环语句 1.打印数字1到5 3.3 使用until循环语句 3.3.1until的实例 1.打印数字1到5(使用until的逆向逻辑) 2.等待用户输入特定内容 3.4 函数 3.4.1Shell函数的基…

你还在手动操作仓库?这款 CLI 工具让你效率飙升300%!

前言 作为一名开发者,我经常会在 GitHub 和 Gitee 上 fork 各种项目。时间一长,这些仓库就会堆积如山,变成了“垃圾仓库”。每次打开代码托管平台,看到那些不再需要的仓库,我的强迫症就会发作。手动一个一个删除这些仓…

仿微信图片查看器`WPF`实现`ListBox` 鼠标滑动批量选中与反选效果

看到微信中,上传图片时的图片查看功能可以通过手指长按并滑动实现多选,于是为解析实现思路,也通过WPF 使用ListBox 实现了一版案例。 参考效果 微信效果如下,支持图片单选和鼠标长按滑动实现批量操作。 WPF模仿效果&#xff1a…

【代码仓库提交大文件,用Git LFS!】

开始前 Git LFS:请注意,你的远程仓库需要支持Git LFS。GitHub、GitLab和Bitbucket都支持Git LFS,但可能需要额外的配置或开启特定的支持选项。 介绍 Git LFS (Large File Storage) 是一个 Git 扩展,用于处理和存储大文件。通常…

【ai】tx2 nx: jetson Triton Inference Server 运行YOLOv4

【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 部署了服务端。需要对其测试【ai】tx2-nx 查看 jetpack 版本信息及对应的tritonserver【ai】tx2-nx:配置tritonserver2.17.0-jetpack4.6 环境并运行例子C++ Triton YoloV4 client 是基于 r21.05的 服务端的tensort 的…

离散数学-再次复习

1.先找到e,这里是0 2.对每个元素求它的阶 3.根据拉格朗日定理,子群的阶必须是群 G 的阶的因数。群 G 的阶为 10,它的因数有 1、2、5 和 10。这意味着子群的阶可能是 1、2、5 或者 10。 4.相同阶的就放为一组,也就是它的一个子群…

Java面试复习思路

Java面试复习思路路线一: 准备Java面试时,可以从以下几个方面着手,以确保你能够自信且全面地展示你的技能和知识: 基础与核心概念: 确保你对Java基础有深入理解,包括但不限于:面向对象编程原则…

自从用了这个 69k star 的项目,前端小姐姐再也不催我了

一般在开发前后端分离的项目时,双方会定义好前后端交互的 http 接口,根据接口文档各自进行开发。这样并行开发互不耽误,开发好后做个联调就可以提测了。 不过最近也不知道怎么回事,公司新来的前端小姐姐总是在刚开始开发的时候就…

项目中eventbus和rabbitmq配置后,不起作用

如下:配置了baseService层和SupplyDemand层得RabbitMQ和EventBus 但是在执行订阅事件时,发送得消息在base项目中没有执行,后来发现是虚拟机使用得不是一个,即上图中得EventBus下得VirtualHost,修改成一直就可以了

Java-内部类成员内部类

类的五大成员 属性 方法 构造方法 代码块 内部类 什么是内部类? 在一个类的里面,再定义一个类。 举例:在A类的内部定义B类,B类就被称为内部类 内部类表示的事物是外部类的一部分 内部类单独出现没有任何意义 内部类的访问特点 1.…

lsopsed 安装与工程创建

Xposed与lsposed异同点 Xposed支持到安卓7.1 Xposed会将激活的模块注入到每个进程,需要自已在模块内根据包名过滤 Xposed激活模块后重启系统生效 lsposed支持安卓8.1-14 1sposed激活模块后需要勾选要作用于哪些app lsposed激活模块后重启对应app生效 lsposed模块…

Redis(超详细)

Redis Redis概念: Redis是开源的,遵循BSD的,基于内存数据存储,被用于作为数据库、缓存机制、消息中间件; Redis的特点: 1.高性能key/valu内存xing数据库; 2.支持丰富的数据类型 3.支持持久化&am…

Information security in DLMS/COSEM(Green-Book)—认证机制

Information security in DLMS/COSEM 9.2.1 概述9.2.2 DLMS/COSEM安全概念9.2.2.1 概述 9.2.2.1 概述9.2.2.2 身份识别和认证9.2.2.2.1 身份识别9.2.2.2.2 认证机制9.2.2.2.2.1 概述 无安全认证(Lowest Level Security):低级别安全认证&#…