0

0

MySQL之函数与谓词的实例详解

零下一度

零下一度

发布时间:2017-06-28 10:29:41

|

1440人浏览过

|

来源于php中文网

原创

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

一、函数

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

更多函数与运算符

动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版
动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版

动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包

下载

二、谓词

谓词的作用就是“判断是否存在满足某种条件的记录”。如果存在这样的记录就返回真(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;

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

57

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

57

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

237

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

393

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

17

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

103

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

73

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

81

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

70

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 810人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号