读书笔记--SQL必知必会08--使用函数处理数据
2016-12-23 22:48
477 查看
8.1 函数
每个DBMS都有特定的函数。事实上,只有少数的几个函数被所有主要DBMS同时支持。实现同一功能的函数,在不同的DBMS中的名称和语法极有可能不同,也就是说SQL函数不可移植的。
可移植(portable),所编写的代码可以在多个系统上运行。
根据实际需要谨慎使用函数,并确保做好代码注释,便于以后的理解和维护。
8.2 使用函数
大多数SQL支持以下类型的函数:8.2.1 文本处理函数
例如:将文本转换为大写的UPPER()函数
MariaDB [sqlbzbh]> SELECT vend_name, UPPER(vend_name) AS vend_name_upcase FROM Vendors ORDER BY vend_name; +-----------------+------------------+ | vend_name | vend_name_upcase | +-----------------+------------------+ | Bear Emporium | BEAR EMPORIUM | | Bears R Us | BEARS R US | | Doll House Inc. | DOLL HOUSE INC. | | Fun and Games | FUN AND GAMES | | Furball Inc. | FURBALL INC. | | Jouets et ours | JOUETS ET OURS | +-----------------+------------------+ 6 rows in set (0.00 sec) MariaDB [sqlbzbh]>
例如:SOUNDEX()函数可以匹配所有类似发音的数据。
MariaDB [sqlbzbh]> SELECT cust_name, cust_contact FROM Customers; +---------------+--------------------+ | cust_name | cust_contact | +---------------+--------------------+ | Village Toys | John Smith | | Kids Place | Michelle Green | | Fun4All | Jim Jones | | Fun4All | Denise L. Stephens | | The Toy Store | Kim Howard | +---------------+--------------------+ 5 rows in set (0.00 sec) MariaDB [sqlbzbh]> MariaDB [sqlbzbh]> SELECT cust_name, cust_contact FROM Customers WHERE cust_contact = 'Michael Green'; Empty set (0.00 sec) MariaDB [sqlbzbh]> MariaDB [sqlbzbh]> SELECT cust_name, cust_contact FROM Customers WHERE SOUNDEX(cust_contact) = SOUNDEX('Michael Green'); +------------+----------------+ | cust_name | cust_contact | +------------+----------------+ | Kids Place | Michelle Green | +------------+----------------+ 1 row in set (0.00 sec) MariaDB [sqlbzbh]>
** 8.2.2 日期和时间处理函数**
日期和时间处理函数虽然非常重要,但在各个DBMS中很不一致,可移植性最差。
大多数DBMS具有比较日期、日期运算、选择日期格式等函数。
在MySQL和MariaDB中,也具有各种日期处理函数,例如:YEAR()函数可以从日期中提取年份。
MariaDB [sqlbzbh]> SELECT * FROM Orders; +-----------+---------------------+------------+ | order_num | order_date | cust_id | +-----------+---------------------+------------+ | 20005 | 2012-05-01 00:00:00 | 1000000001 | | 20006 | 2012-01-12 00:00:00 | 1000000003 | | 20007 | 2012-01-30 00:00:00 | 1000000004 | | 20008 | 2012-02-03 00:00:00 | 1000000005 | | 20009 | 2012-02-08 00:00:00 | 1000000001 | +-----------+---------------------+------------+ 5 rows in set (0.00 sec) MariaDB [sqlbzbh]> MariaDB [sqlbzbh]> SELECT order_num FROM Orders WHERE YEAR(order_date) = 2012; +-----------+ | order_num | +-----------+ | 20005 | | 20006 | | 20007 | | 20008 | | 20009 | +-----------+ 5 rows in set (0.00 sec) MariaDB [sqlbzbh]>
8.2.3 数值处理函数
数值处理函数仅仅处理数值数据。
一般主要用于代数、三角或几何运算,使用不频繁。
在主要的DBMS中,数值函数最一致,可移植性最高。
常见的数值处理函数:
ABS() --- 返回一个数的绝对值 COS() --- 返回一个角度的余弦 EXP() --- 返回一个数的指数值 PI() --- 返回圆周率 SIN() --- 返回一个角度的正弦 SQRT() --- 返回一个数的平方根 TAN() --- 返回一个角度的正切
MariaDB [sqlbzbh]> SELECT ABS(-9); +---------+ | ABS(-9) | +---------+ | 9 | +---------+ 1 row in set (0.00 sec) MariaDB [sqlbzbh]> MariaDB [sqlbzbh]> SELECT PI(); +----------+ | PI() | +----------+ | 3.141593 | +----------+ 1 row in set (0.00 sec) MariaDB [sqlbzbh]>
相关文章推荐
- SQL必知必会08--使用函数处理数据
- MYSQL必知必会读书笔记第十和十一章之使用函数处理数据
- MYSQL必知必会读书笔记 第十和十一章 使用函数处理数据
- MDX Step by Step 读书笔记(六) - Building Complex Sets (复杂集合的处理) - TopCount - BottomCount - Head - Tail - Item 函数的使用
- C语言使用scanf函数获取数据后,使用getchar()无法获得字符的处理方法
- 基于curl数据采集之正则处理函数get_matches的使用
- mysql---使用函数处理数据
- mysql---使用函数处理数据
- [MYSQL -11]使用函数处理数据
- SQL中使用函数处理数据
- 基于curl数据采集之正则处理函数get_matches的使用
- SQL SERVER2000教程-第五章 处理数据 第十七节 使用CASE函数格式进行条件查询
- 在ucos系统上使用USART1串口中断函数处理串口数据
- MySQL必知必会(使用函数处理数据)
- MDX Step by Step 读书笔记(六) - Building Complex Sets (复杂集合的处理) - Generate 和 Extract 函数的使用
- mysql---使用函数处理数据
- SQL SERVER2000教程-第五章 处理数据 第十六节 使用CHARINDEX函数代替Like进行数据查询
- mysql---使用函数处理数据
- MYSQL必知必会读书笔记第十和十一章之使用函数处理数据