专栏【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语句
selectname, ( 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','男');
⭐总结
如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正