恭喜您发现宝藏啦!!MYSQL第四章节常用函数说明(字符串函数,数值函数,日期函数,流程函数)代码,例子详解,这一篇就够了

c++知识点合集已经完成欢迎前往主页查看,点点赞点点关注不迷路哦

点我进入c++第一章知识点合集

 MYSQL第一章节DDL数据定义语言的操作----点我进入

MYSQL第二章节DDL-数据库操作语言 DQL-数据查询语言----点我进入

MYSQL-第三章节DCL-管理用户,控制权限----点我进入

目录

函数

字符串函数

例子

结果

数值函数

例子1

例子2

日期函数

例子

流程函数 

例子1

例子2


函数

字符串函数

函数功能
CONCAT(S1,S2,.Sn)宇符串拼接,将S1,S2,…Sn拼接成一个字符串
将字符串str全部转为小写
LOWER(str)将字符串str全部转为小写
UPPER(str)将字符串str全部转为大写
LPAD(str,n,pad)左填充,用字符串lpad对str的左边进行填充,达到n个字符串长度
RPAD(str,n,pad)右填充,用字符串rpad对str的右边进行填充,达到n个字符串长度
TRIM(str)去掉字符串头部和尾部的空格
SUBSTRING(str,start,len)返回从字符串str从start位置起的len个长度的字符串

SELECT 函数(参数);
例子
SELECT concat('hello','mysql');
SELECT LOWER('HELLO');
SELECT UPPER('hello');
SELECT lpad('01',5,'-');
SELECT RPAD('02',5,'-');
SELECT TRIM(' hello mysql ');
SELECT SUBSTRING('hello mysql',1,5);
结果

数值函数

数值函数
函数功能
CEIL(x)向上取整
FLOOR(x)向下取整
MOD(x,y)返回x/y的模
RAND()返回0~1内的随机数
ROUND(x,y)求参数x的四舍五入的值,保留y位小数
例子1
select CEIL(1.1);
select floor(1.9);
select mod(1,4);
select rand();
select round(2.34,2);
例子2

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

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

日期函数

日期函数
函数功能
CURDATE()返回当前日期
CURTIME()返回当前时间
NOW()返回当前日期和时间
YEAR(date)获取指定date的年份
MONTH(date)获取指定date的月份
DAY(date)获取指定date的日期
DATE_ADD(date, INTERVAL expr type)返回一个日期/时间值加上一个时间间隔expr后的时间值
DATEDIFF(date1,date2)返回起始时间date1 和 结束时间date2之间的天数

例子

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

select name ,datediff(curdate(),entrydate) as enterdays from exaple ORDER BY enterdays desc; 

流程函数 

流程函数
函数功能
IF(value, t, f)如果value 为true,则返回t,否则返回f
IFNULL(value1, value2)如果value1不为空,返回value1,否则返回value2
CASE WHEN [val1] THEN [res1] .. ELSE[default] END如果val1为true,返回re1,…否则返回defaut默认值
CASE [expr ] WHEN [val1] THEN [res1] ... ELSE [ default ] END如果expr的值等于val1,返回res1,…否则返回defaut默认值

例子1
--查询emp表的员工姓名和工作地址(北京/上海--一线城市,其他--二线城市)--
select name,
(case adress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end) as '工作地址' from emp;
例子2

统计班级各个学员的成绩,展示的规则如下:
>=85,展示优秀
>=60,展示及格
否则,展示不及格

数据准备

create table score(
    id int comment 'ID',
    name varchar(20) comment '姓名',
    math int comment '数学',
    english int comment '英语',
    chinese int comment '语文'
) comment '学员成绩表';
insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95 ), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);

答案

select name,
(case when math>=85 then '优秀' when math>60 then '及格' else '不及格' end) '数学',
(case when english>=85 then '优秀' when english>60 then '及格' else '不及格' end) '英语',
(case when chinese>=85 then '优秀' when chinese>60 then '及格' else '不及格' end) '语文' from score;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在C语言中,如果函数通过字符串指针传入参数并修改其值,这个修改会影响到下一次对同一个函数的调用。如果你想避免这种影响,可以采取以下方法: 1. 使用字符数组:而不是字符串指针,将字符串作为字符数组传递给函数。这样函数内部对字符数组的修改不会影响到原始字符串。 ```c #include <stdio.h> #include <string.h> void modifyString(char str[]) { strcpy(str, "Modified"); } int main() { char str[] = "Hello"; modifyString(str); printf("%s\n", str); // 输出 "Hello" return 0; } ``` 在这个例子中,我们将字符串作为字符数组传递给`modifyString`函数函数内部使用`strcpy`函数将新的字符串值复制到字符数组中,但这不会影响原始字符串。 2. 使用指针和动态内存分配:如果你必须使用字符串指针,并且不希望修改原始字符串,可以在函数内部动态分配新的内存,并将原始字符串复制到新的内存中进行操作。 ```c #include <stdio.h> #include <stdlib.h> #include <string.h> void modifyString(char **str) { char *temp = (char *)malloc((strlen(*str) + 1) * sizeof(char)); strcpy(temp, *str); // 对 temp 进行操作 free(temp); } int main() { char *str = "Hello"; modifyString(&str); printf("%s\n", str); // 输出 "Hello" return 0; } ``` 在这个例子中,我们将字符串指针的地址传递给`modifyString`函数函数内部首先动态分配了足够的内存来存储原始字符串,然后使用`strcpy`函数将原始字符串复制到新的内存中。在对新的内存进行操作后,需要使用`free`函数释放内存。 通过以上方法,你可以避免函数通过字符串指针传递参数对下一次传值产生影响。你可以根据具体情况选择适合的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

久 泽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值