【开篇】SQL 语句函数篇
【1】SQL FUNCTIONS(函数)
SQL 拥有很多可用于计数和计算的内建函数。
1、函数的语法
select 函数名称(列名称) from 表名称;
2、函数的类型
在 SQL 中,基本的函数类型和种类有若干种。
函数的基本类型是:合计函数(Aggregate functions)、Scalar 函数
(1)Aggregate 函数
Aggregate 函数的操作面向一系列的值,并返回一个单一的值。
---- 注意 ----
如果在 select 语句的项目列表中的众多其它表达式中使用 select 语句,则这个 select 必须使用 group by 语句。
(2)Scalar 函数
Scalar 函数的操作面向某个单一的值,并返回基于输入值的一个单一的值。
---- 拥有如下 Orders 表 :
【2】SQL AVG() 函数
avg() 函数返回数值列的平均值,null 值不包括在计算中。
1、avg() 语法
select avg(列名称) from 表名称;
2、avg() 实例
(1)计算 "OrderPrice" 字段的平均值
SELECT AVG(OrderPrice) FROM Orders;
(2)找到 OrderPrice 值高于 OrderPrice 平均值的客户
SELECT Customer FROM Orders
WHERE OrderPrice > (SELECT AVG(OrderPrice) FROM Orders);
【3】SQL COUNT() 函数
count() 函数返回匹配指定条件的行数。
1、count() 语法
(1)count(列名称) 函数返回指定列的值的数目(null 不计入):
select count(列名称) from 表名称;
(2)count(*)函数返回表中的记录数:
select count(*) from 表名称;
(3)count(distinct 列名称) 函数返回指定列的不同值的数目:
select count(distinct 列名称) from 表名称;
2、count() 实例
(1)计算客户 "Carter" 的订单数
select count(Customer) from Orders where Customer = 'Carter';
(2)计算所有订单数
select count(*) from Orders;
(3)计算 "Orders" 表中不同客户的数目
select count(distinct Customer) from Orders;
【4】SQL FIRST() 函数
first() 函数返回指定的字段中第一个记录的值。可以使用 order by 语句对记录进行排序。
---- 注意 ----
MySQL 不包含 frist() 函数。
1、first() 语法
select first(列名称) from 表名称;
2、 first() 实例
查找 "OrderPrice" 列的第一个值
select first(OrderPrice) from Orders;
【5】SQL LAST() 函数
last() 函数返回指定的字段中最后一个记录的值。可以使用 order by 语句对记录进行排序。
---- 注意 ----
MySQL 不包含 last() 函数。
1、last() 语法
select last(列名称) from 表名称;
2、 last() 实例
查找 "OrderPrice" 列的最后一个值
select last(OrderPrice) from Orders;
【6】SQL MAX() 函数
max() 函数返回一列中的最大值。null 值不包括在计算中。
1、max() 语法
select max(列名称) from 表名称;
注释:min 和 max 也可用于文本列,以获得按字母顺序排列的最高或最低值。
2、max() 实例
查找 "OrderPrice" 列的最大值
select max(OrderPrice) from Orders;
【7】SQL MIN() 函数
min() 函数返回一列中的最小值。null 值不包括在计算中。
1、min() 语法
select min(列名称) from 表名称;
注释:min 和 max 也可用于文本列,以获得按字母顺序排列的最高或最低值。
2、min() 实例
查找 "OrderPrice" 列的最小值
select min(OrderPrice) from Orders;
【8】SQL SUM() 函数
sum() 函数返回数值列的总数(总额)。
1、sum() 语法
select sum(列名称) from 表名称;
2、sum() 实例
查找 "OrderPrice" 字段的总数
select sum(OrderPrice) from Orders;
【9】SQL GROUP BY 语句
group by 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
1、group by 语法
select 列名称,合计函数(列名称) from 表名称
where 列名称 操作符 值
group by 列名称;
2、group by 实例
(1)查找每个客户的总金额(总订单)
select Customer,sum(OrderPrice) from Orders
group by Customers;
(2)查找每个客户每日的总金额(总订单)
select Customer,sum(OrderPrice) from Orders
group by Customer,OrderDate;
【10】SQL HAVING 子句
在 SQL 中增加 having 子句原因是:where 关键字无法与合计函数一起使用
1、having 语法
select 列名称,合计函数(列名称) from 表名称
where 列名称 操作符 值
group by 列名称
having 合计函数(列名称) 操作符 值;
2、having 实例
(1)查找订单总金额少于 2000 的客户
select Customer,sum(OrderPrice) from Orders
group by Customer
having sum(OrderPrice) < 2000;
(2)查找客户 "Bush" 或 "Adams" 拥有超过 1500 的订单总金额
select Customer,sum(OrderPrice) from Orders
where Customer = 'Bush' or Customer='Adams'
group by Customer
having sum(OrderPrice) > 1500 ;
【11】SQL UCASE() 函数
ucase() 函数把字段的值转换为大写。
1、ucase() 语法
select ucase(列名称) from 表名称;
2、ucase() 实例
选取 "LastName" 和 "FirstName" 列的内容,然后把 "LastName" 列转换为大写。
select ucase(LastName) as LastName,FirstName from Persons;
【12】SQL LCASE() 函数
lcase() 函数把字段的值转换为小写。
1、lcase() 语法
select lcase(列名称) from 表名称;
2、lcase() 实例
选取 "LastName" 和 "FirstName" 列的内容,然后把 "LastName" 列转换为小写。
select lcase(LastName) as LastName,FirstName from Persons;
【13】SQL MID() 函数
mid() 函数用于从文本字段中提取字符。
1、mid() 语法
select mid(column_name,start[,length]) from table_name;
---- 参数说明 ----
2、mid() 实例
从 OrderDate 列中提取 年月(7个字符):
select mid(OrderDate,1,7) from orders;
【14】SQL LEN() 函数
len() 函数返回文本字段中值的长度。
1、len() 语法
select len(列名称) from 表名称;
2、len() 实例
希望取得 Customer 列中的值的长度:
select len(Customer) from Orders;
【15】SQL ROUND() 函数
round() 函数用于把数值字段舍入为指定的小数位数。
1、round() 语法
select round(column_name,decimals) from table_name;
---- 参数说明 ----
2、round() 实例
Products 表如下:
希望把名称和价格舍入为最接近的整数
select ProductName,round(UnitPrice,0) from Products;
【16】SQL NOW() 函数
now() 函数返回当前的日期和时间。
1、now() 语法
select now() from table_name;
2、now() 实例
显示当天的日期所对应的名称和价格
select ProductName,UnitPrice,now() from Products;
【17】SQL FORMAT() 函数
format() 函数用于对字段的显示进行格式化。
1、format() 语法
select format(column_name,format) from table_name;
---- 参数说明 ----
2、format() 实例
显示每天日期所对应的的名称和价格(价格格式化为整数)
select ProductName,format(UnitPrice,0) from Products;
注释:具有四舍五入的功能。
- End -
若有错误,请随时指正。也欢迎大家一起讨论,让我们野蛮成长!