SQL函数

Posted esc_ai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL函数相关的知识,希望对你有一定的参考价值。

SQL 函数


为了数据的转换和处理方便,SQL提供了函数用来处理文本字符串、进行算术操作、处理日期和时间值、返回DBMS所使用的特殊信息。

一、文本处理函数

文本处理函数常用的大小写转换、清除空格、统计长度、返回SOUNDEX同音字符串等。
大写转换使用UPPER()函数:

mysql>  select UPPER(cust_name) FROM Customers; 
+------------------+
| UPPER(cust_name) |
+------------------+
| VILLAGE TOYS     |
| KIDS PLACE       |
| FUN4ALL          |
| FUN4ALL          |
| THE TOY STORE    |
+------------------+
5 rows in set (0.00 sec)

小写转换使用LOWER()函数:

select LOWER(cust_name) FROM Customers; 

SOUNDEX用于返回同音字符串,比如在Customers表中cust_contact列的名字为Michelle Green,如果输入错误Michael Green将会查不到结果:

mysql> SELECT cust_name,cust_contact FROM Customers  where cust_contact = ‘Michael Green‘;
Empty set (0.00 sec)

使用SOUNDEX函数后:

mysql> 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)

二、时间和日期处理函数

提取日期年份(说明:不同的DBMS对日期处理函数的支持不一样,这里使用的是mysql):

查询2010年的订单:

mysql> select * from Orders WHERE YEAR(ORDER_DATE)=2010;
+-----------+---------------------+------------+
| order_num | order_date          | cust_id    |
+-----------+---------------------+------------+
|     20010 | 2010-05-27 00:00:00 | 1000000010 |
|     20011 | 2010-09-27 00:00:00 | 1000000011 |
|     20013 | 2010-11-12 00:00:00 | 1000000013 |
|     20015 | 2010-04-15 00:00:00 | 1000000015 |
+-----------+---------------------+------------+
4 rows in set (0.01 sec)

三、数值处理函数

数值处理函数可以用户代数、三角或几何运算。

函数 说明
ABS() 返回一个数的绝对值
COS() 返回一个角度的余弦值
EXP() 返回一个数的指数值
PI() 返回圆周率
SIN() 返回一个角度的正弦值
SORT() 返回一个数的平方根
TAN() 返回一个角度的正切

四、聚集函数

聚集函数可以用来求和、求平均值、求最大最小值、统计行数、求标准差。
以Products表的pord_price列为例:

求和SUM():

mysql> select SUM(prod_price) AS SUM  FROM Products;
+-------+
| SUM   |
+-------+
| 61.41 |
+-------+
1 row in set (0.00 sec)

求平均值AVG():

mysql> select AVG(prod_price) AS AVG  FROM Products;
+----------+
| AVG      |
+----------+
| 6.823333 |
+----------+
1 row in set (0.00 sec)

求最大值MAX()

mysql> select MAX(prod_price) AS MAX_PRICE  FROM Products;
+-----------+
| MAX_PRICE |
+-----------+
|     11.99 |
+-----------+
1 row in set (0.00 sec)

求最小值MIN()

mysql> select MIN(prod_price) AS MIN_PRICE FROM Products;
+-----------+
| MIN_PRICE |
+-----------+
|      3.49 |
+-----------+
1 row in set (0.01 sec)

统计行数COUNT()

mysql> select COUNT(*) AS TOTAL FROM PRODUCTS;
+-------+
| TOTAL |
+-------+
|     9 |
+-------+
1 row in set (0.00 sec)

求标准差STD()

mysql> select STD(prod_price) AS STD FROM PRODUCTS;
+----------+
| STD      |
+----------+
| 3.036811 |
+----------+
1 row in set (0.00 sec)

组合使用聚集函数

select语句可以根据需求同时使用多个聚集函数:

mysql> select COUNT(*) AS  总个数,Max(prod_price) AS  最高价格 from Products;
+-----------+--------------+
| 总个数    | 最高价格     |
+-----------+--------------+
|         9 |        11.99 |
+-----------+--------------+
1 row in set (0.00 sec)

以上是关于SQL函数的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.8 有条件地插入 sql 片段

sql sql里面的代码片段

Microsoft SQL Server 代码片段收集

缺少 SQL SERVER 2014 代码片段

sql Oracle代码片段

sql 日期转换代码片段 - Dato,120,konvertere