MySQL支持的函数
函数
SQL支持利用函数来处理数据,给数据的处理和转换提供了方便
函数没有SQL的强可移植性
多数SQL语句是可移植的,在不同实现之间差异不大。而函数可移植性不大,主要的DBMS的实现都支持其他不支持的函数,而且差异还很大
如果使用函数,应该做好代码注释,确切表明编写的SQL代码的含义。因为如果DBMS不同,编写应用程序代码会不同
使用函数
- 处理文本串
删除、填充值,转换值大小写 - 在数值数据上进行算数操作
返回绝对值,进行代数运算 - 处理日期和时间值并从这些值中提取特定成分的日期和时间
返回两个日期差,检查日期有效性 - 返回DBMS正使用的特殊信息对的系统函数
返回用户登录信息,检查版本细节
文本处理函数
举例
- TRIM() 去空格
- UPPER() 转换为大写
SELECT
vend_name,
UPPER( vend_name ) AS vend_name_upcase
FROM
vendors
ORDER BY
vend_name;
常用的文本处理函数
- LEFT() 返回串左边串的字符
- LENGTH() 返回串的长度
- LOCATE() 找出一个串的子串
- LOWER() 将串转换为小写
- LTRIM() 去串左边空格
- RIGHT() 返回串右边的字符
- RTRIM() 去串右边空格
- SOUNDEX() 返回串的SOUNDEX值
- SUBSTRING() 返回子串的字符
- UPPER() 将串转换为大写
关于SOUNDEX()
SOUNDEX是一个将任何文本串转换为其语音表示的字母数字模式的算法,能对串进行发音比较而不是字母比较。与多是DBMS一样,MySQL提供了对SOUNDEX的支持
- 举例
客户表中有一个客户联系名为Y Lee,如果录入信息时错误,实际客户为Y Lie。那么按照正确的名字搜索也不会返回数据。
使用SOUNDEX()函数进行搜索会匹配所有发音类似Y Lie的联系名
SELECT
cust_name,
cust_contact
FROM
customers
WHERE
SOUNDEX( cust_contact ) = SOUNDEX( "Y Lie" );
日期和时间处理函数
日期和时间采用相应的数据类型和特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间。
常用日期和时间处理函数
- ADDDATE()
增加一个日期(天、周等) - ADDTIME()
增加一个时间(时、分等) - CURDATE()
返回当前日期 - CURTIME()
返回当前时间 - DATE()
返回日期时间的日期部分 - DATEDIFF()
计算两个日期之差 - DATE_ADD()
高度灵活的日期运算函数 - DATE_FORMAT()
返回一个格式化的日期或时间串 - DAY()
返回一个日期的天数部分 - DAYOFWEEK()
返回对应的星期几 - HOUR()
返回小时部分 - MINUTE()
返回分钟部分 - MONTH()
返回月份部分 - NOW()
返回当前日期和时间 - SECOND()
返回秒部分 - TIME()
返回时间部分 - YEAR()
返回年份部分
注意格式
MySQL的日期格式最好指定为yyyy-mm-dd,这样的日期格式排除了多义性。
SELECT
cust_id,
order_num,
order_date
FROM
orders
WHERE
order_date = "2005-09-01";
日期部分比较
指示MySQL仅将给出的日期与列中的日期部分进行比较,而不是将给出的日期与整个列值进行比较,使用Date()函数。
SELECT
cust_id,
order_num,
order_date
FROM
orders
WHERE
DATE(order_date) = "2005-09-01";
- 如果要的是日期,使用Date(),即使相应的列值包含日期也是如此。这样如果以后该列中有日期和时间值,SQL代码也不用更改
日期范围检索
- 检索9月份下的信息
1.使用BETWEEN AND连接首尾日期,结果集包含首位日期
SELECT
cust_id,
order_num,
order_date
FROM
orders
WHERE
DATE( order_date ) BETWEEN "2005-09-01"
AND "2005-09-30";
2.使用YEAR()和MONTH()函数
由于日期不是文本内容,所以不强求加引号,当然也可以加
SELECT
cust_id,
order_num,
order_date
FROM
orders
WHERE
YEAR ( order_date )= 2005
AND MONTH ( order_date )= 9;
数值处理函数
数值处理函数仅处理数值数据。一般主要用于代数、三角或几何运算,因此使用并不频繁
常用数值处理函数
- ABS() 返回绝对值
- COS() 返回角度余弦值
- EXP() 返回数值指数值
- MOD() 返回除操作余数
- PI() 返回圆周率
- RAND() 返回一个随机数
- SIN() 返回一个角度正弦
- SQRT() 返回一个数的平方根
- TAN() 返回一个角度的正切
Comments | 0 条评论