文章目录
- 1、函数
- 2、使用函数
-
- 2.1 文本处理函数
- 2.2 日期和时间处理函数
- 2.3 数值处理函数
1、函数
函数一般是在数据上执行的,它给数据的转换和处理提供了方便。
2、使用函数
大多数SQL实现支持以下类型的函数。
1.用于处理文本串(如删除或填充值,转换值为大写或小写)的文本函数。
2.用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。
3. 用于处理日期和时间值并从这些值中提取特定成分(例如,返回两个日期之差,检查日期有效性等)的日期和时间函数。
4.返回DBMS正使用的特殊信息(如返回用户登录信息,检查版本细节)的系统函数。
2.1 文本处理函数
常用的文本处理函数有:
对上述函数的SOUNDEX需要做进一步的解释。SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。虽然SOUNDEX不是SQL概念,但MySQL(就像多数DBMS一样)都提供对SOUNDEX的支持。
2.2 日期和时间处理函数
常用的日期和时间处理函数有:
MySQL使用的日期格式必须为yyyy-mm-dd。
2.3 数值处理函数
数值处理函数一般主要用于代数、三角或几何运算,因此没有串或日期—时间处理函数的使用那么频繁。
常用的数值处理函数有:
-- Upper()将文本转换为大写
SELECt vend_name, UPPER(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;
-- 用函数soundex()对串进行发音比较
SELECt cust_name, cust_contact FROM customers WHERe SOUNDEX(cust_contact) = SOUNDEX ('Y lie');
-- 想要列中的日期部分,用date()函数
SELECt cust_id, order_num FROM orders WHERe DATE(order_date) = '2005-09-01';
-- 检索2015年9月下的所有订单
SELECt cust_id, order_num, order_date FROM orders WHERe DATE(order_date) BETWEEN '2005-09-01' AND '2005-09-30';
-- 检索2015年9月下的所有订单,方法2:一种不需要记住每个月中有多少天或不需要操心闰年2月的办法
SELECt cust_id, order_num, order_date FROM orders WHERe YEAR(order_date) = 2005 AND MONTH(order_date) = 09;