首页 > 其他分享 >函数篇 学习笔记

函数篇 学习笔记

时间:2024-07-23 16:53:40浏览次数:9  
标签:返回 函数 -- WHEN 笔记 学习 SQL 字符串

在使用时,需要注意函数的参数类型和返回值类型。

小tips:对于有一定基础、自学能力较强且希望快速提升技能的学习者,可以通过直接实践法或逆向学习法(直接跳入实践环节,通过分析和理解具体的项目源码来学习新知识,而不是从理论或基础知识开始逐步构建)来提高自己的学习效率。


目录

字符串函数

常用的字符串函数:

数值函数

常用的数值函数:

日期函数

常用的日期函数:

例子:查询所有员工的入职天数,并根据入职天数倒序排序。

流程函数

常用的SQL流程函数:

CASE语句:用于根据条件返回不同的值。

例子

IF语句:

IFNULL语句:

 例子:

其他函数学习方法及渠道:


字符串函数

在MySQL中,字符串函数是一组用于处理字符串值的函数。

常用的字符串函数:

CONCAT(str1, str2, …) --返回字符串的拼接结果。

LPAD(str, len, padstr) --在字符串str的左侧填充字符padstr,直到长度为len。

RPAD(str, len, padstr) --在字符串str的右侧填充字符padstr,直到长度为len。

SUBSTRING(str, start, len) --提取字符串str从位置start开始的长度为len的子字符串。字符串的第一个字符的位置是1。如果start是负数,则子字符串的起始位置是从字符串的末尾开始计算的。

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) --去掉字符串两边的空格或指定的字符。

LOWER(str) --将字符串转换为小写。

UPPER(str) --将字符串转换为大写。

数值函数

在MySQL中,数值函数是一组用于处理数值数据的函数。

常用的数值函数:

CEIL(x) --返回大于或等于x的最小整数值。

FLOOR(x) --返回小于或等于x的最大整数值。

RAND() --返回一个在0到1之间的随机浮点数。

ROUND(x) --将x四舍五入到最接近的整数。

ROUND(x, d) --将x四舍五入到d指定的小数位数。

日期函数

在MySQL中,日期函数用于处理日期值。

常用的日期函数:

NOW() --返回当前日期和时间。

CURDATE()  --返回当前日期。

CURTIME() --返回当前时间。

YEAR(expr) --返回年份。

MONTH(expr) --返回月份。

DAY(expr) --返回日期。

DATEDIFF(expr1, expr2) --返回两个日期之间的天数差。

DATE_ADD(date, INTERVAL expr type) 
--返回一个日期值加上一个时间间隔expr后的时间值。

--date: 这是起始日期,可以是 DATE、DATETIME 或 TIMESTAMP 类型。

--INTERVAL expr type: 这是您想要添加到 date 的间隔。expr 是一个表达式,表示时间间隔的数量,type 表示时间间隔的单位。

例子:查询所有员工的入职天数,并根据入职天数倒序排序。

SELECT name, DATEDIFF(CURDATE(), entrydate) AS 'entrydays'
FROM emp
ORDER BY entrydays DESC;

--DATEDIFF(CURDATE(), entrydate) 函数计算了当前日期与每个员工的入职日期之间的天数差。
--AS 'entrydays' 给计算出的天数差起了一个别名,这样在结果集中就可以用entrydays来引用这个值。
--ORDER BY entrydays DESC 确保了结果按照入职天数从多到少进行排序。

流程函数

在SQL中,流程函数(也称为控制流函数)用于在查询或存储过程中控制流程。这些函数允许您执行条件判断、循环和异常处理等操作。

常用的SQL流程函数:

CASE语句:用于根据条件返回不同的值。

CASE
  WHEN condition THEN value1  --条件表达式condition1为真,则返回的值value1
  WHEN condition THEN value2
  ...
  ELSE default_value --如果所有条件都不满足,则返回的默认值。
END;

例子

--如果您有一个包含订单状态的表,并且您想要为每个订单状态返回一个描述性的名称

SELECT
  order_id,
  order_status,
  CASE
    WHEN order_status = 'PENDING' THEN '等待处理'
    WHEN order_status = 'PROCESSING' THEN '处理中'
    WHEN order_status = 'SHIPPED' THEN '已发货'
    ELSE '未知状态'
  END AS status_description
FROM orders;

--CASE语句会根据order_status列的值返回相应的描述性名称。
--如果order_status列的值不在PENDING、PROCESSING或SHIPPED中,则将返回'未知状态'
--如果成绩math大于等于85,则显示优秀。
--如果成绩math大于等于60但小于85,则显示及格。
--如果成绩math小于60,则显示不及格。

SELECT
  id,
  name,
  math,
  english,
  chinese,
  CASE
    WHEN math >= 85 THEN '优秀'
    WHEN math >= 60 THEN '及格'
    ELSE '不及格'
  END AS 数学,
  CASE
    WHEN english >= 85 THEN '优秀'
    WHEN english >= 60 THEN '及格'
    ELSE '不及格'
  END AS 英语,
  CASE
    WHEN chinese >= 85 THEN '优秀'
    WHEN chinese >= 60 THEN '及格'
    ELSE '不及格'
  END AS 语文
FROM score;

IF语句:

IF(value,t,f)  --如果value为true,则返回t,否则返回f
IF condition THEN
  value1
ELSE
  value2
END IF;

IFNULL语句:

IFNULL(expr1, expr2)
--如果expr1为NULL,则IFNULL()函数将返回expr2的值

 例子:

--查询emp表的员工姓名和工作地址〈北京/上海---->一线城市,其他---->二线城市)
SELECT
  name,
  (CASE
    WHEN workaddress = '北京' THEN '一线城市'
    WHEN workaddress = '上海' THEN '一线城市'
    ELSE '二线城市'
  END) AS '工作地址'
FROM emp;

其他函数学习方法及渠道:

  1. 官方文档

    • 访问MySQL的官方文档,查看SQL函数的完整列表和详细说明。MySQL的文档通常包含丰富的例子和用法指南。
  2. 在线教程和课程

    • 查找在线教育平台上的SQL课程,这些课程可能涵盖SQL函数的更多高级主题。
    • 观看YouTube上的SQL教程视频,这些视频通常由经验丰富的讲师制作,提供了实用的学习材料。
  3. 书籍

    • 阅读有关SQL和数据库管理的书籍,这些书籍通常会涵盖SQL函数的广泛主题。
    • 查找MySQL专用的书籍,它们可能包含专门关于MySQL函数和特性的内容。
  4. 实践

    • 在MySQL环境中实践使用不同函数。
    • 创建测试表和数据,尝试编写复杂的查询,使用不同的函数来执行特定的任务。
  5. 社区和论坛

    • 加入MySQL相关的社区和论坛。
    • 提问和回答问题,与其他开发者交流,学习他们的经验和技巧。
  6. 实际项目应用

    • 在实际项目中应用SQL函数,解决实际问题。
    • 通过项目实践来加深对函数的理解和掌握。
  7. 定期复习

    • 定期复习所学知识,巩固记忆。
    • 随着学习的深入,不断回顾和练习,以保持对函数的熟悉。

也可以通过某些工具提问,表明自己的需求应该使用什么函数能提高运行效率,通过他的回答和结合自己所学来实现代码需求。

标签:返回,函数,--,WHEN,笔记,学习,SQL,字符串
From: https://blog.csdn.net/lonelyxxyo/article/details/140626071

相关文章

  • 模板中的url_for函数
    模版中的url_for跟我们后台视图函数中的url_for使用起来基本是一模一样的。也是传递视图函数的名字,也可以传递参数。使用的时候,需要在url_for左右两边加上一个{{url_for('func')}} 1、动态超链接html页面使用如:<ahref="{{url_for('login',p1='abc',p2='ddd',name='mo......
  • 面试学习记录-2024/7/23
    1、项目中如何开展接口测试的1、首先对需求进行分析,和对应的需求/方案人员拿到相关需求文档2、了解需求后,找对应人员要接口文档3、对接口文档进行解析,重点关注接口的请求和响应的相关参数4、根据需求文档和接口测试文档设计测试用例5、利用接口自动化工具Postman/Jemeter写......
  • KD-Tree 学习笔记
    学习资料:1.B站-一只叫小花的猫2.语雀-双愚:kdtree3.B站视频:学习kdtree的前置知识:KNN算法KD树简介与背景  k-d树,是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索。关于kd树的背景,它主要是一种解决特征点匹配问题的算法,kd树就是一种高维空间索引结构......
  • 2024网络安全学习路线,最全保姆级教程,学完直接拿捏!
    关键词: 网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线首先咱们聊聊,学习网络安全方向通常会有哪些问题前排提示:文末有CSDN独家网络安全资料包!1、打基础时间太长学基础花费很长时间,光语言都有几门,有些人会倒在学习linux系统及命令的路上,更多的人会倒在学......
  • 2024网络安全学习路线,最全保姆级教程,学完直接拿捏!
    关键词: 网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线首先咱们聊聊,学习网络安全方向通常会有哪些问题前排提示:文末有CSDN独家网络安全资料包!1、打基础时间太长学基础花费很长时间,光语言都有几门,有些人会倒在学习linux系统及命令的路上,更多的人会倒在学......
  • 2024网络安全学习路线,最全保姆级教程,学完直接拿捏!
    关键词: 网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线首先咱们聊聊,学习网络安全方向通常会有哪些问题前排提示:文末有CSDN独家网络安全资料包!1、打基础时间太长学基础花费很长时间,光语言都有几门,有些人会倒在学习linux系统及命令的路上,更多的人会倒在学......
  • 2024网络安全学习路线,最全保姆级教程,学完直接拿捏!
    关键词: 网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线首先咱们聊聊,学习网络安全方向通常会有哪些问题前排提示:文末有CSDN独家网络安全资料包!1、打基础时间太长学基础花费很长时间,光语言都有几门,有些人会倒在学习linux系统及命令的路上,更多的人会倒在学......
  • STM32学习(4)--OLED调试工具
    OLED调试工具4.1OLED调试工具1.调试方式2.OLED简介3.硬件电路4.OLED驱动函数4.2OLED显示屏4.1OLED调试工具1.调试方式串口调试:通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息显示屏调试:直接将显示屏连接到单片机,将调试信息打印在显示屏上Keil......
  • Living-Dream 系列笔记 第62期
    树的直径:定义:树上两个距离最远的点形成的简单路径(不重复走一条边/点)性质:不唯一。树的直径的端点一定是度数为\(1\)的点。证明:显然。树的直径若有多条,则必交汇于一点,即中心。证明:首先每条直径只能交于端点(因为是一棵树,一个节点不能有两个父节点),然后此交点必定......
  • 学习React(添加交互)
    添加交互        界面上的控件会根据用户的输入而更新。例如,点击按钮切换轮播图的展示。在React中,随时间变化的数据被称为状态(state)。你可以向任何组件添加状态,并按需进行更新。在本章节中,你将学习如何编写处理交互的组件,更新它们的状态,并根据时间变化显示不同的效......