热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL谓词选择性解析及函数应用实例分析

本文总结并深入探讨了MySQL中谓词选择性的解析方法及其在函数应用中的实例分析。首先,详细介绍了算术函数,特别是NUMERIC数据类型,该类型在多数数据库管理系统中广泛应用,用于精确表示数值数据,包括指定总体位数和小数位数。此外,文章还结合实际案例,分析了如何利用这些函数优化查询性能,提高数据处理效率。

前文已有涉及,这里作为总结重新整理一下。

一、函数

1、算术函数

NUMERIC 是大多数 DBMS 都支持的一种数据类型,通过 NUMBERIC ( 全体位数, 小数位数 ) 的形式来指定数值的大小。-- +-*/

--余数

SELECT n, p, MOD(n, p) AS mod_col FROM SampleMath;

--绝对值

SELECT m, ABS(m) AS abs_col FROM SampleMath;

--四舍五入

SELECT m, n, ROUND(m, n) AS round_col FROM SampleMath;

2、字符串函数--字符串拼接

SELECT str1, str2, str3, CONCAT(str1, str2, str3) AS str_concat FROM SampleStr

--字符串长度

SELECT str1, LENGTH(str1) AS len_str FROM SampleStr;

--大小写转换

SELECT str1, UPPER/LOWER(str1) AS low_str FROM SampleStr WHERE str1 IN ('ABC', 'aBC', 'abc')

--字符串替换str1中的str2换为str3

SELECT str1, str2, str3, REPLACE(str1, str2, str3) AS rep_str FROM SampleStr;

--字符串截取 FROM截取的起始位置FOR截取的字符数

SELECT str1, SUBSTRING(str1 FROM 3 FOR 2) AS sub_str FROM SampleStr;

3、日期函数--当前日期

SELECT CURRENT_DATE;

--当前时间

SELECT CURRENT_TIME;

--当前时间戳

SELECT CURRENT_TIMESTAMP;

--截取日期元素

SELECT CURRENT_TIMESTAMP,

EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS year,

EXTRACT(MONTH FROM CURRENT_TIMESTAMP) AS month,

EXTRACT(DAY FROM CURRENT_TIMESTAMP) AS day,

EXTRACT(HOUR FROM CURRENT_TIMESTAMP) AS hour,

EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) AS minute,

EXTRACT(SECOND FROM CURRENT_TIMESTAMP) AS second;

4、转换函数--类型转换

SELECT CAST('0001' AS SIGNED INTEGER) AS int_col;

SELECT CAST('2009-12-14' AS DATE) AS date_col;

--将 NULL 转换为其他值

--返回可变参数中左侧开始第 1 个不是 NULL 的值

SELECT COALESCE(NULL, 1) AS col_1,

COALESCE(NULL, 'test', NULL) AS col_2,

COALESCE(NULL, NULL, '2009-11-01') AS col_3;

5、聚合函数

COUNT、SUM、AVG、MAX、MIN

更多函数与运算符

二、谓词

谓词的作用就是“判断是否存在满足某种条件的记录”。如果存在这样的记录就返回真(TRUE),如果不存在就返回假(FALSE)。--部分一致查询

LIKE

--范围查询

BETWEEN

--判断是否为NULL

IS NULL、IS NOT NULL

--OR 的简便用法

IN

--谓词的主语是“记录”...没懂!

EXISTS

三、CASE 表达式--格式

CASE WHEN THEN

WHEN THEN

WHEN THEN

.

.

.

ELSE

END-- 使用搜索CASE表达式的情况

SELECT product_name,

CASE WHEN product_type = '衣服'

THEN 'A :' | |product_type

WHEN product_type = '办公用品'

THEN 'B :' | |product_type

WHEN product_type = '厨房用具'

THEN 'C :' | |product_type

ELSE NULL

END AS abc_product_type

FROM Product;

-- 使用简单CASE表达式的情况

SELECT product_name,

CASE product_type

WHEN '衣服' THEN 'A :' || product_type

WHEN '办公用品' THEN 'B :' || product_type

WHEN '厨房用具' THEN 'C :' || product_type

ELSE NULL

END AS abc_product_type

FROM Product;--使用IF代替CASE表达式

SELECT product_name,

IF( IF( IF(product_type = '衣服',

CONCAT('A :', product_type), NULL)

IS NULL AND product_type = '办公用品',

CONCAT('B :', product_type),

IF(product_type = '衣服',

CONCAT('A :', product_type), NULL))

IS NULL AND product_type = '厨房用具',

CONCAT('C :', product_type),

IF( IF(product_type = '衣服',

CONCAT('A :', product_type), NULL)

IS NULL AND product_type = '办公用品',

CONCAT('B :', product_type),

IF(product_type = '衣服',

CONCAT('A :', product_type),

NULL))) AS abc_product_type

FROM Product;



推荐阅读
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 使用Pandas高效读取SQL脚本中的数据
    本文详细介绍了如何利用Pandas直接读取和解析SQL脚本,提供了一种高效的数据处理方法。该方法适用于各种数据库导出的SQL脚本,并且能够显著提升数据导入的速度和效率。 ... [详细]
  • MySQL DateTime 类型数据处理及.0 尾数去除方法
    本文介绍如何在 MySQL 中处理 DateTime 类型的数据,并解决获取数据时出现的.0尾数问题。同时,探讨了不同场景下的解决方案,确保数据格式的一致性和准确性。 ... [详细]
  • 本文详细介绍了如何使用 MySQL 查询特定时间段的数据,包括今天、本周、上周、本月和上个月的数据。适合对 MySQL 查询感兴趣的读者。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细介绍了Hive中用于日期和字符串相互转换的多种函数,包括从时间戳到日期格式的转换、日期到时间戳的转换,以及如何处理不同格式的日期字符串。通过这些函数,用户可以轻松实现日期和字符串之间的灵活转换,满足数据处理中的各种需求。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • java文本编辑器,java文本编辑器设计思路
    java文本编辑器,java文本编辑器设计思路 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文由瀚高PG实验室撰写,详细介绍了如何在PostgreSQL中创建、管理和删除模式。文章涵盖了创建模式的基本命令、public模式的特性、权限设置以及通过角色对象简化操作的方法。 ... [详细]
  • openGauss每日一练:第6天 - 模式的创建、修改与删除
    本篇笔记记录了openGauss数据库中关于模式(Schema)的创建、修改和删除操作。通过这些操作,用户可以更好地管理和控制数据库对象。实验环境为openGauss 2.0.0,并使用由墨天轮提供的线上环境。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
author-avatar
广东暖暖_小乖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有