文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-08-16 22:41

关注

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

在这里插入图片描述

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

⭐字符串函数

在这里插入图片描述

🎈字符串拼接函数

select 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(rand()*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','男');

⭐总结

在这里插入图片描述

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

来源地址:https://blog.csdn.net/m0_72853403/article/details/131222460

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯