Mysql的函数和约束

news2024/11/28 14:35:12

函数和约束

文章目录

  • 函数和约束
    • 函数
      • 字符串函数
      • 数值函数
      • 日期函数
      • 流程函数
    • 约束
      • 概念
      • 目的
      • 分类
      • 使用
      • 案例
      • 外键约束

函数

使用

select 函数();

字符串函数

image-20240416171640578

数值函数

image-20240416171710091

日期函数

image-20240416171742993

流程函数

image-20240416171814239

约束

概念

约束是作用于表中字段上的规则,用于限制存储在表中的数据。

目的

保证数据库中数据的正确、有效性和完整性。

分类

约束描述关键字
主键约束唯一标识表中的记录,每个表只能有一个PRIMARY KEY
唯一约束确保列中的所有值都是唯一的UNIQUE
外键约束确保一列或一组列中的值在另一个表中有对应的值,实现表间关联FOREIGN KEY
非空约束确保列中的值不为空NOT NULL
默认约束为列指定默认值DEFAULT
CHECK约束确保列中的值符合指定的条件CHECK

约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束

使用

# 添加约束
alter table 表名 add constraint 约束名 约束 (字段名);
# 修改约束
alter table 表名 modify 字段名 类型 约束;

案例

image-20240416172404338

create table user(
    id int primary key auto_increment comment '主键',
    name varchar(10) not null unique comment '姓名',
	age int check(age > 0 && age <= 120) comment '年龄',
    status char(1) default '1' comment '状态',
    gender char(1) comment '性别'
) comment '用户表';

外键约束

概念

外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性

语法

# 添加外键
create table 表名(
	字段名 数据类型,
    ....,
    [constraint] [外键名称] foreign key(外键字段名) references 主表(主表列名)
);
alter table 表名 add constraint 外键名称 foreign key(外键字段名) references 主表(主表列名);

# 删除外键
alter table 表名 drop foreign key 外键名称;

删除/更新行为

行为说明
RESTRICT如果存在相关联的子表数据,则禁止对父表数据进行删除或更新操作,直到相关联的子表数据被删除或更新。(与no action一致)
CASCADE如果父表数据被删除或更新,将自动删除或更新相关联的子表数据。
SET NULL如果父表数据被删除或更新,将相关联的子表外键列设置为 NULL。
NO ACTION (默认)类似于 RESTRICT,如果存在相关联的子表数据,则禁止对父表数据进行删除或更新操作。(与restrict一致)
SET DEFAULT如果父表数据被删除或更新,将相关联的子表外键列设置为默认值。
alter table 表名 add constraint 外键名称 foreign key (外键字段) references 主表(主表字段名) on update 行为 on delete 行为; 

|

alter table 表名 add constraint 外键名称 foreign key (外键字段) references 主表(主表字段名) on update 行为 on delete 行为; 

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

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

相关文章

Windows VS2019 JsonCpp库下载编译

下载地址 jsoncpp下载地址 编译 打开cmake-gui 设置代码地址&#xff0c;生成地址->点击configure->设置VS2019-x64 如下&#xff1a; 再点击generate 进入到build的目录打开jsoncpp.sln文件&#xff0c;进行编译即可 生成目录&#xff1a; build\lib\Release 头…

零基础自学Python,啃透这五本书就够了!

选择合适的学习资源 在自学Python的前期&#xff0c;选择一本适合初学者的Python入门书籍或在线教程&#xff0c;从基础开始学习&#xff0c;好的入门书籍或在线教程会按照逻辑顺序组织知识&#xff0c;从基础概念开始&#xff0c;逐步引导你深入学习Python编程语言。这种系统…

SQL SERVER的安装

目录 1.百度SQL SERVER找到图下的所显示的&#xff0c;点击进去 2.找到图下红色框起来的&#xff0c;点击立即下载​ 3.下载好之后点开&#xff0c;选择下载介质 4.SQLSERVER下载成功之后选择打开文件夹​ 6.双击后缀名是.iso的镜像文件 7.双击setup.exe进行安装​ 8.安…

LlamaIndex 组件 - Loading

文章目录 一、概览加载Transformations将所有内容放在一起抽象 二、文档/节点概览1、概念2、使用模式文件节点 三、定义和定制文档1、定义文档2、自定义文档2.1 元数据2.2 自定义id2.3 高级 - 元数据定制1&#xff09;自定义LLM元数据文本2&#xff09;自定义嵌入元数据文本3&a…

RD77MS2 三菱iQ-R系列2轴简单运动模块(SSCNETⅢ/H型)

RD77MS2 三菱iQ-R系列2轴简单运动模块(SSCNETⅢ/H型) RD77MS2用户手册,RD77MS2外部连接,RD77MS2规格。RD77MS2参数说明&#xff1a;2轴;SSCNETⅢ/H连接&#xff0c;位置控制、同步控制、速度.转矩控制、轨迹控制;控制单位mm、inch、degree、pulse;定位数据600数据轴。 RD77MS2图…

浅尝 express + ORM框架 prisma 的结合

一、prisma起步 安装&#xff1a; npm i prisma -g查看初始化帮助信息&#xff1a; prisma init -h查看初始化帮助信息结果&#xff1a; Set up a new Prisma projectUsage$ prisma init [options] Options-h, --help Display this help message --datasource-provider …

Databend 开源周报第 140 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 支持 EXECUTE I…

thymeleaf模板引擎的使用

thymeleaf模板引擎的使用 ​ 在早期开发的时候&#xff0c;我们完成的都是静态页面也就是html页面&#xff0c;随着时间轴的发展&#xff0c;慢慢的引入了jsp页面&#xff0c;当在后端服务查询到数据之后可以转发到jsp页面&#xff0c;可以轻松的使用jsp页面来实现数据的显示及…

JAVA_类和对象(1)

认识面向对象 Java是一门纯面向对象的语言(Object Oriented Program, OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。面向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事情。  面向过程和面相对象并不是一门语言&#xff0c;而是解决…

jetson系列开发板使用虚拟机烧录系统时,遇见无法识别开发板的情况

在双系统中的ubuntu系统烧录没问题&#xff0c;但是电脑Ubuntu系统由于版本低&#xff0c;所以没有网络&#xff0c;烧录起来还的连网线&#xff0c;所以问了开发板的工程师&#xff0c;所幸&#xff0c;解决了问题&#xff0c;很感谢工程师的指导&#xff0c;特此记录一下&…

前端跨域怎么办?

如果网上搜到的方法都不可行或者比较麻烦&#xff0c;可以尝试改变浏览器的设置&#xff08;仅为临时方案&#xff09; 1.新建一个Chrome浏览器的快捷方式 2.鼠标右键&#xff0c;进入属性&#xff0c;将以下命令复制粘贴到目标位置&#xff08;可根据Chrome实际存放位置修改…

Innodb之redo日志

Innodb引擎执行流程 redo log ​ MySQL中的redo log&#xff08;重做日志&#xff09;是实现WAL&#xff08;预写式日志&#xff09;技术的关键组件&#xff0c;用于确保事务的持久性和数据库的crash-safe能力。借用《孔乙己》中酒店掌柜使用粉板记录赊账的故事&#xff0c;…

最新AI创作系统ChatGPT网站源码AI绘画,GPTs,AI换脸支持,GPT联网提问、DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持GPT…

Oracle Discoverer Plus:下载公司的未交货销售订单

新建一个Report。 1&#xff0c;打开公司的Order management数据库 2&#xff0c;把需要的一些Field移到Report中&#xff0c;比如订单号&#xff0c;订单数量&#xff0c;fillfuled数量&#xff0c;或者Shipped数量&#xff0c;等等 3&#xff0c;其实这个笔记主要是为了记录…

leetcode hot100_day20

4/14/2024 128.最长连续序列 自己的 这是前两天做一半的题目了。这题给我的教训就是用哈希表的时候一定一定要考虑重复元素的问题&#xff01;&#xff01;&#xff01;&#xff01; 这题让我想到了最长递增子序列&#xff0c;只是名字有点像。子序列和子数组还不一样一个连续…

MongoDB分片部署(windows)

OS&#xff1a;win10 MongoDB&#xff1a;4.4.24 分片架构 从图中可以看出&#xff0c;分片集群中主要由三个部分组成&#xff0c;即分片服务器&#xff08; Shard &#xff09;、路由服务器 &#xff08; Mongos &#xff09;以及配置服务器&#xff08; Config Server &am…

Python 物联网入门指南(四)

原文&#xff1a;zh.annas-archive.org/md5/4fe4273add75ed738e70f3d05e428b06 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第九章&#xff1a;构建光学字符识别的神经网络模块 本章介绍以下主题&#xff1a; 使用光学字符识别&#xff08;OCR&#xff09;系统 使…

《Kubernetes部署篇:基于Kylin V10+ARM架构CPU使用containerd部署K8S 1.26.15集群(一主多从)》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:企业级K8s集群运维实战 1、在当前实验环境中安装K8S1.25.14版本,出现了一个问题,就是在pod中访问百度网站,大概时间有10s多,这个时间太长了,尝试了各种办法,都解决不了,后面尝试安装了了1.26.…

中国DIVI版,wordpress DIVI网站主题在国内的替代方案。

最受欢迎的WordPress主题之一是Divi。我们创建了这个全面的Divi主题评论&#xff0c;以帮助您更好地了解其优点和潜在缺点。 Divi主题是什么&#xff1f; Divi是一个流行的WordPress主题&#xff0c;提供了一个网站建设平台。它有一个可视化编辑器选项&#xff0c;为新手和专业…

市面上加密混淆软件的比较和推荐

引言 市面上有许多加密混淆软件可供开发者使用&#xff0c;但哪些软件是最好用的&#xff1f;哪些软件受到开发者的喜爱&#xff1f;本文将根据一次在CSDN上的投票结果&#xff0c;为大家介绍几款在程序员中普及度较高的加密软件。以下是投票结果&#xff0c;希望能对大家的选择…