【从删库到跑路】详细讲解MySQL的函数和约束作用

🎊专栏【MySQL】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【如愿】
大一同学小吉,欢迎并且感谢大家指出我的问题🥰

文章目录

  • 🍔函数
    • ⭐字符串函数
      • 🎈字符串拼接函数
      • 🎈把字符串全部变为小写
      • 🎈把字符串全部变为大写
      • 🎈字符串左填充
      • 🎈字符串右填充
      • 🎈去掉字符串头部和尾部的空格
      • 🎈字符串截取
        • 🏀应用
    • ⭐数值函数
      • 🎈向上取整
      • 🎈向下取整
      • 🎈返回x/y的模
      • 🎈求随机数
      • 🎈四舍五入,并且保留n位小数
        • 🏀应用
    • ⭐日期函数
      • 🎈返回当前日期
      • 🎈返回当前时间
      • 🎈返回当前日期+时间
      • 🎈获取指定date的年份
      • 🎈获取指定date的月
      • 🎈获取指定date的天
      • 🎈返回一个时间,是date向后推迟number个DAY(或MONTH,YEAR)
      • 🎈两个指定时间中相差的天数
        • 🏀应用
    • ⭐流程控制函数
      • 🎈进行判断
      • 🎈如果第一个值为null,那么返回第二个值,否则返回第一个值
      • 🎈case语句
  • 🍔约束
      • 🎈主键约束
      • 🎈唯一约束
      • 🎈外键约束
        • 🏀添加外键
        • 🏀删除外键
      • 🎈检测约束
      • 🎈非空约束
        • 🏀样例
    • ⭐总结

在这里插入图片描述

🍔函数

是指一段可以直接被另一段程序调用的程序或代码

⭐字符串函数

在这里插入图片描述

🎈字符串拼接函数

concat('s1','s2');

在这里插入图片描述

🎈把字符串全部变为小写

select lower('str');

在这里插入图片描述

🎈把字符串全部变为大写

select upper('str');

在这里插入图片描述

🎈字符串左填充

select lpad('str',length,'-');-- 在str左边用-进行填充,达到长度为n

在这里插入图片描述

🎈字符串右填充

select rpad('str',length,'-');-- 在str右边用-进行填充,达到长度为n

在这里插入图片描述

🎈去掉字符串头部和尾部的空格

select trim('str');

在这里插入图片描述

🎈字符串截取

select substring('str',截取起始位置,截取长度);

在这里插入图片描述

🏀应用

由于业务需求变化,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0
(比如1好员工的工号应该是00001)

update emp set worknumber = lpad(worknumber,5,'0');--            更新的字段(工号)

⭐数值函数

在这里插入图片描述

🎈向上取整

select ceil(number);

在这里插入图片描述

🎈向下取整

select floor(number);

在这里插入图片描述

🎈返回x/y的模

select mod(num1,num2);

在这里插入图片描述

🎈求随机数

是0~1之间的随机数

select rand();

在这里插入图片描述

🎈四舍五入,并且保留n位小数

对number进行四舍五入,并且保留length位小数

select round(number,length);

在这里插入图片描述

🏀应用

通过数据库的函数,生成一个六位数的随机验证码

select lpad(round()*1000000,0),6,'0');

⭐日期函数

在这里插入图片描述

🎈返回当前日期

select curdate();

在这里插入图片描述

🎈返回当前时间

select curtime();

在这里插入图片描述

🎈返回当前日期+时间

select now();

在这里插入图片描述

🎈获取指定date的年份

select YEAR(date);

在这里插入图片描述

🎈获取指定date的月

select MONTH(date);

在这里插入图片描述

🎈获取指定date的天

select DAY(date);

在这里插入图片描述

🎈返回一个时间,是date向后推迟number个DAY(或MONTH,YEAR)

select date_add(now(),INTERVAL 70 MONTH);

在这里插入图片描述

🎈两个指定时间中相差的天数

select datediff('2021-12-01','2022-12-01');

在这里插入图片描述

🏀应用

查询所有员工的入职天数,并根据入职天数倒序排序

select name datediff(curdate(),entrydate) as 'entrydays' from emp order by entrydays desc;

解释:entrydays是函数的别名,这样子就不用写一串函数了,order by 后面的是排序方式

⭐流程控制函数

在这里插入图片描述

🎈进行判断

如果条件表达式的结果是true,那么返回OK,否则返回Error

select if(条件表达式,'OK','Error');

在这里插入图片描述

🎈如果第一个值为null,那么返回第二个值,否则返回第一个值

select ifnull('OK','Default');

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

🎈case语句

select name,( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end )from emp;

🍔约束

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据
目的:保证数据库中数据的正确,有效性和完整性
分类:
在这里插入图片描述

🎈主键约束

主键约束(Primary Key Constraint):主键约束用于定义一个唯一标识来标识表中的每一行。它要求主键列的值唯一且非空。主键可以由一个或多个列组成。

"column"是指表中的一个字段,"datatype"是数据类型

CREATE TABLE table_name (column1 datatype,column2 datatype,...primary key (column1, column2, ...)
);

🎈唯一约束

唯一约束(Unique Constraint):唯一约束用于确保表中的某个列或一组列的值是唯一的。唯一约束允许空值(NULL),但对于非空值,要求其在列中是唯一的。

"column"是指表中的一个字段,"datatype"是数据类型

CREATE TABLE table_name (column1 datatype,column2 datatype,...unique (column1, column2, ...)
);

🎈外键约束

外键约束(Foreign Key Constraint):外键约束用于建立表与表之间的关联关系。用来让两张表之间建立连接,从而保证数据的一致性和完整性

在这里插入图片描述

"column"是指表中的一个字段,"datatype"是数据类型

🏀添加外键

情况1:表结构没有创建好(直接在表里面进行添加)


CREATE TABLE table_name2 (column1 datatype primary key,column2 datatype,...foreign key (column2) references table_name1(column1)
);

情况2:表结构创建好了

alter table 表名 add constraint 外键名称 foreign key (外键字段名) references 主表(主表列名) ;

🏀删除外键

alter table 表名 drop foreign key 外键名称;

🎈检测约束

检查约束(Check Constraint):检查约束用于限制列中的值必须满足指定的条件。可以使用逻辑运算符、比较运算符和函数等来定义检查约束条件。

"column"是指表中的一个字段,"datatype"是数据类型

CREATE TABLE table_name (column1 datatype,column2 datatype check (condition),...
);

🎈非空约束

非空约束(Not Null Constraint):非空约束用于确保表中的某个列不接受空值(NULL)。

"column"是指表中的一个字段,"datatype"是数据类型

CREATE TABLE table_name (column1 datatype not null,column2 datatype,...
);

🏀样例

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

插入数据

insert into user(name,age,status,gender) values ('Tom1','19','1','男'),('Tom2','25','0','男');

⭐总结

在这里插入图片描述

🥰如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正🥰

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

途乐证券|人工智能概念再度下挫 海天瑞声、寒武纪等跌超10%

人工智能概念26日盘中大幅回调&#xff0c;截至发稿&#xff0c;当虹科技跌近18%&#xff0c;美亚柏科、昆仑万维跌约13%&#xff0c;博睿数据、光云科技、海天瑞声、寒武纪等跌超10%&#xff0c;焦点科技跌停&#xff0c;云从科技、朗玛信息、三六零等跌超9%。 香港途乐证券有…

如何在编程中中实现负载均衡和容错处理

什么是容错 容错是指系统&#xff08;计算机、网络、云集群等&#xff09;在其一个或多个组件发生故障时继续运行而不会中断的能力。 创建容错系统的目的是防止由单点故障引起的中断&#xff0c;确保任务关键型应用程序或系统的高可用性和业务连续性。 容错系统使用备份组件…

走进人工智能|深度学习 算法的创世纪

前言&#xff1a; 深度学习通过训练深层神经网络模型&#xff0c;可以自动学习和提取数据的特征&#xff0c;包括更准确的图像识别、自然语言处理、医学诊断等方面的应用。 文章目录 序言背景算法的创世纪技术支持应用领域程序员如何学总结 序言 深度学习是一种机器学习方法&a…

【2023年江西省研究生数学建模竞赛】题目一 蒸汽发生器倒U型管内液体流动 建模方案及参考文献

代码与结果如下&#xff1a;完整文档见文末 完整思路”请点击这里“到原文章获取 题目&#xff1a; PACTEL压水堆整体测试设备在2009年建造&#xff0c;用于带有垂直倒U型管蒸汽发生器的压水堆热液压相关的安全性研究,参见图1。 PACTEL压水堆设施包括一个反应堆压力容器模型…

2.ThreadLocalRandom

Random类及其局限性 一般情况下&#xff0c;我们都会使用java.util.Random来生成随机数&#xff08;Math.random()也是使用Random实例生成随机数&#xff09;。 示例 public static void main(String[] args) {Random random new Random();for (int i 0; i < 10; i) {S…

LED显示屏结构

LED显示屏通常由以下几个主要组成部分构成&#xff1a; LED模块&#xff1a;LED模块是构成LED显示屏的基本单元。它包含多个LED点阵&#xff0c;每个点阵包含红色、绿色和蓝色LED灯珠&#xff0c;通过不同的亮度和颜色组合来呈现图像和视频。LED模块的尺寸和像素密度可以根据需…

训练自己的ChatGPT 语言模型(一).md

0x00 Background 为什么研究这个&#xff1f; ChatGPT在国内外都受到了广泛关注&#xff0c;很多高校、研究机构和企业都计划推出类似的模型。然而&#xff0c;ChatGPT并没有开源&#xff0c;且复现难度非常大&#xff0c;即使到现在&#xff0c;没有任何单位或企业能够完全复…

利用低代码平台实现协同办公,助力企业提升效益

概要&#xff1a;本文介绍了协同办公的作用&#xff0c;以及利用低代码平台实现协同办公的优势。同时也分享了天翎为华晨汽车打造的低代码协同工具&#xff0c;帮助企业提高管理效率&#xff0c;改善运营模式&#xff0c;提升产品质量及生产精益化。展示了咨询库、原料质量录入…

实习工作之定时任务

需求&#xff1a;在当天晚上12点定时将过期数据的状态置为冻结状态 版本一代码实现[相当于是一个死代码&#xff0c;因为不能自动调度] public void updateStatus() throws CommonException, ParseException {String date_str "2023-07-01 00:00:00";Date expireT…

阿里云盘如何实现 大文件 秒上传?

文章目录 Intro极速上传的原因隐私保护 Intro 今天把几个软件上传到阿里云盘进行分享&#xff0c;文件大小将近1GB&#xff0c;按理说上传需要个2~3分钟吧。 之前上传一个压缩包看到上传速度大概是4~5MB/s。 但是我刚到别的软件看了一圈&#xff0c;回来发现文件居然已经上传…

华为云专家出品《从零到一•Python图像处理入门》电子书

《华为云云享.书库》系列电子书来啦&#xff01; 本系列电子书旨在帮助开发者成长&#xff0c;汇聚华为云内外部专家技术精华制作而成。 本书《从零到一•Python图像处理》是该系列电子书第3部。 我们在华为开发者即将到来之际&#xff0c;开放电子书免费下载。 点击下方链接…

AI时代,职场人如何转“危”为“机”

AIGC技术的蓬勃发展正在深刻影响着各行各业&#xff0c;关于AI是否会取代人类工作也引发了职场人的担忧。6月29日&#xff0c;奇富科技邀请祺邻HR发起人孙祺做客直播间&#xff0c;分享职场人在AI技术变革中如何应对挑战与机遇。孙祺认为&#xff0c;AI在当前阶段不会对工作产生…