不同类型的SQL函数
SQL,即结构化查询语言,是一种用于管理和操纵关系型数据库的编程语言。SQL最强大的功能之一是能够使用函数对数据库中的数据进行各种操作。在这篇文章中,我们将讨论不同类别的SQL函数,并提供代码例子来帮助说明它们的使用。
聚合函数
聚合函数是用来对一组数值进行计算,并返回一个单一的结果。在SQL中最常用的一些聚合函数包括
- COUNT() – 返回表格中的行数或列中非空值的数量
-
SUM()- 返回一列中所有非NULL值的总和
-
AVG() – 返回一列中所有非NULL数值的平均值
-
MIN() /- 返回一列中的最小值
-
MAX()- 返回一列中的最大值
下面是一个使用COUNT()函数查找名为 “订单 “的表中的行数的例子-
SELECT COUNT(*) FROM orders;
下面是一个使用SUM()函数查找表中所有订单的总成本的例子 –
SELECT SUM(total_cost) FROM orders;
标量函数
标量函数用于对单一数值进行计算并返回单一结果。在SQL中标量函数的一些例子包括 –
- LENGTH() – 返回一个字符串中的字符数。
-
UPPER() – 将一个字符串转换为大写字母
-
LOWER() – 将字符串转换成小写字母
-
CONCAT()- 将两个或多个字符串连接在一起
-
ROUND()- 将一个数字四舍五入到指定的小数位数。
下面是一个使用UPPER()函数以大写字母显示所有客户名称的例子–
SELECT UPPER(customer_name) FROM customers;
下面是一个使用ROUND()函数将一个订单的总成本四舍五入到小数点后两位的例子 –
SELECT ROUND(total_cost, 2) FROM orders;
日期和时间功能
SQL还提供了一些处理日期和时间值的函数。在SQL中的一些日期和时间函数的例子包括
- NOW() /- 返回当前的日期和时间
-
CURRENT_DATE() – 返回当前日期。
-
CURRENT_TIME() – 返回当前时间。
-
YEAR() – 返回一个日期的年份
-
MONTH() – 返回一个日期的月份
-
DAY() – 返回一个日期的日期
下面是一个使用NOW()函数查找当前日期和时间的例子 –
SELECT NOW();
下面是一个使用MONTH()函数查找订单日期的月份的例子 –
SELECT MONTH(order_date) FROM orders;
字符串函数
SQL还提供了许多字符串操作函数。在SQL中的一些字符串函数的例子包括
- LTRIM() – 删除字符串的前导空格
-
RTRIM() – 删除字符串的尾部空格
-
TRIM() – 删除字符串的前导和尾部的空白。
-
SUBSTRING() – 提取一个字符串的特定部分
-
REPLACE() – 用另一个字符串替换所有出现的指定字符串
条件函数
SQL还提供了一些函数,根据某些条件执行不同的操作。SQL中条件函数的一些例子包括–
- CASE – 评估一个条件列表,并为第一个满足的条件返回一个结果。
-
IF – 如果满足条件,返回一个指定的值,否则返回另一个指定的值。
-
COALESCE–返回多个表达式中第一个非空的表达式。
下面是一个使用CASE函数的例子,根据总成本为每个订单分配一个标签——。
SELECT order_id, total_cost,
CASE
WHEN total_cost > 100 THEN 'expensive'
WHEN total_cost > 50 THEN 'moderately priced'
ELSE 'inexpensive'
END as "price range"
FROM orders;
下面是一个使用IF函数来检查产品库存的例子
SELECT product_name,
IF(stock_quantity > 0, 'In Stock', 'Out of Stock') as
"Availability"
FROM products;
下面是一个使用COALESCE函数显示客户的主电话号码和副电话号码的例子——。
SELECT customer_name,
COALESCE(primary_phone, secondary_phone) as "Phone Number"
FROM customers;
逻辑功能
SQL提供了一组逻辑函数,它们返回一个布尔值,可以是真,也可以是假。
- AND – 如果两个条件都为真,则返回真。
-
OR – 如果至少有一个条件为真,则返回真。
-
NOT–否定一个布尔值
SELECT customer_name, city, account_balance
FROM customers
WHERE city = 'New York' AND account_balance > 1000;
转换功能
SQL提供了许多函数,可以用来将数据从一种类型转换为另一种类型。
- CAST() – 将一个值从一个数据类型转换为另一个数据类型
-
CONVERT() – 将一个值从一个数据类型转换为另一个数据类型(这个函数是特定于一些数据库供应商,如SQL Server)。
-
TO_DATE() – 将一个字符串转换为一个日期值
-
TO_TIME() – 将一个字符串转换成一个时间值
-
TO_TIMESTAMP() – 将一个字符串转换为一个时间戳值
下面是一个使用CAST()函数将一个浮动值转换为int的例子–
SELECT CAST(price AS INT) as "Integer Price"
FROM products;
下面是一个使用TO_DATE()函数将字符串转换为日期值的例子——。
SELECT TO_DATE(order_date, 'yyyy-mm-dd') as "Formatted Order Date"
FROM orders;
窗口函数
SQL提供了一组函数,可以用来在一组与当前行相关的行中进行计算。这些函数被称为窗口函数。在SQL中,窗口函数的一些例子包括–
- RANK() – 根据一个或多个列的值,为结果集中的每一行分配一个唯一的等级。
-
DENSE_RANK() – 根据一个或多个列的值,为结果集中的每一行分配一个唯一的排名,但当出现并列时,不会在排名序列中留下空隙。
-
ROW_NUMBER() – 根据函数的ORDER BY子句中指定的顺序,为结果集中的每一行分配一个唯一的数字。
SELECT customer_name, account_balance, RANK() OVER (ORDER BY account_balance DESC) as "Rank"
FROM customers;
下面是一个使用ROW_NUMBER()函数查找表中每个客户的行号的例子 –
SELECT customer_name, ROW_NUMBER() OVER (ORDER BY customer_id) as "Row Number"
FROM customers;
这些只是SQL为处理和操作关系型数据库中的数据而提供的许多函数中的几个例子。每一类函数都有其独特的用途,了解何时和如何使用它们,有助于使使用SQL和关系型数据库的工作更加高效和有效。
结论
SQL函数是在关系型数据库中处理和操作数据的一个令人难以置信的强大工具。在这篇文章中,我们讨论了不同类别的SQL函数,包括聚合函数、标量函数、日期和时间函数、字符串函数和条件函数,并提供了如何使用它们的例子。了解并熟练使用这些函数是使用SQL和关系型数据库的一个重要部分。