热门标签 | 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;



推荐阅读
  • 本文详细介绍了PostgreSQL与MySQL在SQL语法上的主要区别,包括如何使用COALESCE替代IFNULL、金额格式化的方法、别名处理以及日期处理等关键点。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 本文详细探讨了BCTF竞赛中窃密木马题目的解题策略,重点分析了该题目在漏洞挖掘与利用方面的技巧。 ... [详细]
  • Level:  Medium题目描述:Givenanon-emptystringsandadictionarywordDictcontainingalistofnon-emptyw ... [详细]
  • mysql数据库json类型数据,sql server json数据类型
    mysql数据库json类型数据,sql server json数据类型 ... [详细]
  • http:blog.csdn.netzeo112140articledetails7675195使用TCPdump工具,抓TCP数据包。将数据包上传到PC,通过Wireshark查 ... [详细]
  • 数据类型和操作数据表2.1MySQL类型之整型2.2MySQL数据类型之浮点型2.3日期时间型DATE1支持时间:1000年1月1日~9999年12月31日DATETIME ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • 如何使用 `org.eclipse.rdf4j.query.impl.MapBindingSet.getValue()` 方法及其代码示例详解 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
  • 在使用 `useSelector` 选择器时,发现分派操作后状态未能实时更新。这可能是由于 React 组件的渲染机制或 Redux 的状态管理问题导致的。建议检查 `useSelector` 的依赖项和 `dispatch` 的调用时机,确保状态变化能够正确触发组件重新渲染。此外,可以考虑使用 `useEffect` 钩子来监听状态变化,以确保及时更新。 ... [详细]
  • 本文介绍了一种在ZC公司的员工评估系统中,如何根据动态设置的评分指标,在后台查询时动态生成并显示数据表的方法。该方法确保了评分指标与被评人员信息的有效整合。 ... [详细]
  • SQL Server 存储过程实践任务(第二部分)
    本文档详细介绍了三个SQL Server存储过程的创建与使用方法,包括统计特定类型客房的入住人数、根据房间号查询客房详情以及删除特定类型的客房记录。 ... [详细]
  • 2022年7月20日:关键数据与市场动态分析
    2022年7月20日,本文对当日的关键数据和市场动态进行了深入分析。主要内容包括:1. 关键数据的解读与趋势分析;2. 市场动态的变化及其对投资策略的影响;3. 相关经济指标的评估。通过这些分析,帮助读者更好地理解当前市场环境,为决策提供参考。 ... [详细]
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社区 版权所有