基础SQL 函数

news/2024/10/22 5:12:11/

在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/news/1442572.html

相关文章

【Flink入门修炼】2-3 Flink Checkpoint 原理机制

如果让你来做一个有状态流式应用的故障恢复&#xff0c;你会如何来做呢&#xff1f; 单机和多机会遇到什么不同的问题&#xff1f; Flink Checkpoint 是做什么用的&#xff1f;原理是什么&#xff1f; 一、什么是 Checkpoint&#xff1f; Checkpoint 是对当前运行状态的完整记…

功能测试_分类_用例_方法

总结 测试分类 按阶段分类 是否查看源代码分类 是否运行分类 是否自动化 其他分类 软件质量模型 开发模型-瀑布模型 测试过程模型 v w 测试用例八大要素 用例编号 用例标题 …

C#设计树形程序界面的方法:创建特殊窗体

目录 1.TreeView控件 2.实例 &#xff08;1&#xff09;Resources.Designer.cs &#xff08;2&#xff09;Form1.Designer.cs &#xff08;3&#xff09;Form1.cs &#xff08;4&#xff09;生成效果 以树形来显示程序的菜单&#xff0c;可以更直观、更快捷地对窗体进行…

mysql事故复盘: 单行字节最大阈值65535字节(原创)

背景 记得还在银行做开发&#xff0c;投产上线时&#xff0c;项目发版前&#xff0c;要提DDL的sql工单&#xff0c;mysql加1个字段&#xff0c;因为这张表为下游数据入湖入仓用的&#xff0c;长度较大。在测试库加字段没问题&#xff0c;但生产库字段加不上。 先说结论 投产…

2024年新版宝塔面板如何安装WordPress网站教程

使用宝塔面板安装WordPress教程 一、准备工作 安装了宝塔面板后&#xff0c;我们就可以开始搭建自己的网站了。以安装WordPress为例&#xff0c;本文将详细介绍两种安装方式&#xff1a;手动安装和宝塔后台一键部署。请注意&#xff0c;尽管一键部署方便快捷&#xff0c;但可…

Linux中的vi与vim:编辑器的王者之争与深度探索

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、Linux的起源与发展 2、vi与vim的历史与发展 …

Skill Check: Fundamentals of Large Language Models

Skill Check: Fundamentals of Large Language Models 完结&#xff01;

leetcode 2639.查询网格图种每一列的宽度

其实这道题简单的模拟就行。 一开始作者想着用列优先的遍历进行求每一列的最大值&#xff0c;但是发现leetcode中这个所给数组是不确定的&#xff0c;所以就改用了原来的遍历方法. 这里定义了一个ans数组就是为了记录每一列里面的最大值的&#xff0c;我们首先需要把数组里面…