基础SQL 函数

server/2024/12/22 10:08:02/

在MySQL中内置了很多函数,我们可以通过一段程序或者代码直接调用这个函数

一、字符串函数

下面通过例子来验证这些函数

sql">-- 字符串函数-- concat函数
select concat("hello ","world");-- lower函数
select lower("HELLO");-- upper函数
select upper("heelo");-- lpad函数
select  lpad("123",5,'0');-- rpad函数
select rpad("123",5,'0');-- trim函数
select trim("   hello world  ");-- substring函数
select substring("1234556789",2,3);

实例说明:

统一一个表的员工工号,不足8位的在前面补0

先查看实例前的员工表

更新字段的值使用updat语句

数值函数

常见的数值函数有

sql">-- 数值函数-- ceil函数
select ceil(4.5);-- floor函数
select floor(5.9);-- mod函数
select mod(100,2);-- rand函数
select rand();-- round函数
select round(3.1415926,3);

实例说明

生产一个随机的六位数的验证码

日期函数

sql">-- 日期函数-- curdate函数 当前日期
select curdate();-- curtime函数 当前时间
select curtime();-- now函数 当前日期和时间
select now();-- year(date)函数 获取date的年份
select year(now());-- month(date)函数 获取date的月份
select month(now());-- day(date)函数 获取date的日期
select day(now());-- date_add(date,interval expr type)函数 返回一个日期/时间值加上时间间隔expr后的时间值
select date_add(now(),interval 30 day);  -- 30天后-- datediff(date1,datw2)返回起始时间date1和结束时间date2之间的天数
select datediff(curdate(),'1949-10-01');

现在有这样一张表

-- 查询所有员工的入职天数,并根据入职天数倒序排序
select name,datediff(curdate(), entrydate) '入职天数' from emp order by '入职天数' desc ;

流程函数

sql">-- 流程函数-- if(value,t,f)函数 如果value为true,则返回t,否则返回f
select if(2>3,2,3);-- ifnull(value1,value2) 如果value1不为空,返回value1,否则返回value2
select ifnull(null,'hello');-- case when [val1] then [res1]...else [default] ebd函数
-- 如果val1为true,返回res1,... 否则返回default默认值
select case when 2+3>6 then '正确' else '错误' end;-- CASE [expr] WHEN [val1] THEN [res1] ... ELSE [ default ] END函数
-- 如果expr的值等于val1,返回res1,... 否则返回default默认值
select case 2 WHEN  3 then '对' else '错' end;

流程函数需要结合具体案例来分析使用

接下来,进行一下案例的分析

现在有一张员工表

查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)

sql语句怎么书写

select name,case workaddress when '北京' then '一线城市'when '上海' then '一线城市' else '二线城市' endas '工作地址' from emp;

例子2

有这样一个分数表

>=85优秀,>=60及格,<60不及格

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;

总结


http://www.ppmy.cn/server/23967.html

相关文章

IOS 添加自动布局约束NSLayoutConstraint

自定义UICollectionViewCell&#xff0c;并添加自动布局约束。 #import "ViewChooseView.h"#pragma mark - Cellinterface ViewChooseViewCell : UICollectionViewCellproperty (nonatomic, strong) UILabel *showTemeLab; property (nonatomic, strong) UILabel *p…

Java ImageIo 报错 Unsupported image type

说明 在上传CMYK颜色类型的jpg图片时&#xff0c;Java的ImageIo会报错Unsupported image type 解决方法 只需要引入依赖&#xff0c;不需要修改代码&#xff0c;ImageIo会自动发现扩展 <dependency><groupId>com.twelvemonkeys.imageio</groupId><arti…

【Qt】无法创建或打开CMake项目

无法创建或打开CMake项目 没有CMake选项 原因 卸载重装了qt&#xff0c;安装时勾选了cmake&#xff0c;发现还是一样没有。。。 后面发现是插件里没有勾选上CMake。。。很无语 不是应该默认就有的吗 不懂了 解决 插件勾选重启就好了

简要说说软分叉和硬分叉。

前言 一、软分叉 二、硬分叉 三、用途 总结 前言 软分叉和硬分叉是区块链技术中的两个重要概念&#xff0c;它们通常与加密货币的网络升级有关。下面我将分别解释这两个概念&#xff0c;并提供一些例子来帮助理解。下面是方便理解软分叉和硬分叉的图 一、软分叉 软分叉是一…

如何利用 GPT 自我提高写作能力

GPT革命&#xff1a;如何用AI技术重新定义写作 介绍 在我们的数字时代&#xff0c;了解自我提高写作的必要性至关重要。 随着 GPT 的兴起&#xff0c;我们正在见证书写的变革时代。 这篇扩展文章深入探讨了 GPT 如何显着提高写作技能。 拥抱未来&#xff1a; 人工智能时代的写…

JAVASE 数组相关知识

递归 A方法调用B方法&#xff0c;我们很容易理解 递归就是:A方法调用A方法&#xff0c;即自己调用自己 利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解&#xff0c;递归策略只需少量的程序就可…

linux下建立cpp文件,然后通过cmake编译。

main.cpp #include<iostream> using namespace std;int main(){cout<<"hello world"<<endl; return 0; }相同目录下建立 CMakeLists.txt PROJECT (HELLO) SET(SRC_LIST main.cpp) ADD_EXECUTABLE(hello ${SRC_LIST})[rootlocalhost cmake01…

sklearn混淆矩阵的计算和seaborn可视化

为了计算语义分割的指标miou&#xff0c;需要生成的中间过程就是混淆矩阵。 iou intersection / union 每个类别的平均iou就是mean iou。 使用sklearn自带的confusion_matrix能很容易生成混淆矩阵&#xff0c;可以进行混淆矩阵的可视化观察哪个类别分割的不好。 from skle…