MySQL(三)--函数与谓词
2018-06-17 23:53:12来源:未知 阅读 ()
前文已有涉及,这里作为总结重新整理一下。
一、函数
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;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- MySQL replace函数怎么替换字符串语句 2020-03-09
- PHP访问MySQL查询超时怎么办 2020-03-09
- mysql登录时闪退 2020-02-27
- MySQL出现1067错误号 2020-02-27
- mysql7.x如何单独安装mysql 2020-02-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash