数据库-函数
函数在数据库中还是一个很好用的东西,但是它存在不可移植性,所以是否使用函数决定权在你自己手上
文本处理函数
LEFT() | 返回字符串左边的字符
RIGHT() | 返回字符串右边的字符
LEN() | 返回字符串长度
LOWER() | 将字符串转换为小写
UPPER() | 将字符串转换为大写
LTRIM() | 去掉字符串左边的空格
RTRIM() | 去掉字符串左边的空格
SUBSTR() | 提取字符串组成部分
SOUNDEX() | 返回字符串的SOUNDEX值
例如:LEFT()
函数,是取字符串的前几个字符,而这个取前几个字符是这么规定的LEFT(str,长度)
,RIGHT()
也是同理。
其中我针对SOUNDEX()
函数进行解释,这个函数它匹配所有发音类似于你输入的字段的值输出。
例如我们表格中的数据是Michelle Green,而我们搜索的数据却不是这个,但用到这个函数返回的就还是我们想要的数值。
我们将两个程序对比着来看:
SELECT cust_name, cust_contact
FROM Customers
WHERE cust_contact = 'Michael Green';
这样是没有输出的,因为表格中没有这个字段。
SELECT cust_name, cust_contact
FROM Customers
WHERE SOUNDEX(cust_contact) = SOUNDEX('Michael Green');
而它的输出就是匹配正常的输出。
kids Place | Michelle Green
其中WHERE子句将cust_contact这一列转换成了SOUNDEX值,将后面的结果的值也转换了,也就代表着将他们都转换后我们将他们在匹配,按照发音的相似所以匹配出了我们想要的值。
日期和时间处理函数
DATEPART ()
这个函数中包含两个值,一个是返回的成分,和从中返回成分的日期。当然它只返回日期的一部分。 例如:
SELECT order_num
FROM Orders
WHERE DATEPART(yy,order_date) = 2020;
这个程序返回的就是年份为2020的order_num 的字段。利用函数来查找年份的问题。
数值处理函数
ABS() | 返回一个数绝对值
COS() | 返回一个角度的余弦值
SIN() | 返回一个角度的正弦值
TAN() | 返回一个角度的正切值
EXP() | 返回一个数的指数值
PI() | 返回圆周率的PI值
SQRT() | 返回一个数的平方根
聚集函数
AVG() | 返回某列的平均值
COUNT() | 返回某一列有多少行
MAX() | 返回某一列最大值为多少
MIN() | 返回某一列最小值为多少
SUM() | 返回某一列数之和
在聚集函数中我们可以用到DISTINCT
参数和ALL
参数,但ALL
参数不需要指定,他是默认的,但DISTINCT
参数可以将工作量减少,类似于用到求平均值中,就可以完美的将其中其他一样的值缩减,仅剩不一样的值。
DISTINCT
函数可以用到count()
中但不能用在COUNT(*)
中。DISTINCT
参数只能使用于列名,不能用于计算字段或者表达式。
组合聚集函数
我们既然有了聚集函数,那就说明我们可以在输出的时候输出多个聚集函数求出来的值。 例如:
SELECT COUNT(*) AS num_items,
MIN(prod_price) AS price_min,
MAX(prod_price) AS price_max,
AVG(prod_price) AS price_avg
FROM Products;