mysql 算子 谓词_MySQL之函数与谓词的实例详解

本文详细介绍了MySQL中的函数和谓词,包括算术函数(如MOD、ABS、ROUND)、字符串函数(如CONCAT、LENGTH、UPPER/LOWER、REPLACE、SUBSTRING)、日期函数(如CURRENT_DATE、CURRENT_TIME、CURRENT_TIMESTAMP、EXTRACT)、转换函数(如CAST、COALESCE)和聚合函数(COUNT、SUM、AVG、MAX、MIN)。同时,讲解了谓词的使用,如LIKE、BETWEEN、IS NULL、IN、EXISTS,以及CASE表达式的应用,展示了如何根据产品类型进行分类标记。
摘要由CSDN通过智能技术生成

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

一、函数

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值