SQL积累 SQL函数总结及综述(Aggregate & Scalar) UNION 以及 UNION ALL区别

Aggregate 函数(聚合函数)

聚合:计算从列中取得的值,返回一个单一的值,故称聚合

AVG() — 返回平均值
COUNT() — 返回行数
FIRST() — 返回第一个记录的值 (MS Access)
LAST() — 返回最后一个记录的值
MAX() — 返回最大值
MIN() — 返回最小值
SUM() — 返回总和

Scalar 函数(标准的,基本的 函数)

基本函数: 基于输入值,返回一个单一的值

UCASE() — 将某个字段转换为大写
LCASE() — 将某个字段转换为小写
MID() — 从某个文本字段提取字符,MySql 中使用
SubString(字段名,1,end) — 从某个文本字段提取字符
LEN() — 返回某个文本字段的长度
ROUND() — 对某个数值字段进行指定小数位数的四舍五入
NOW() — 返回当前的系统日期和时间
FORMAT() — 格式化某个字段的显示方式

  1. AVG()
SELECT AVG(column_name) FROM table_name;

亦可以当作一个结果来用,例如:

SELECT * FROM table1
WHERE column_name > (SELECT AVG(column_name1) FROM table_name);
  1. COUNT()
    返回匹配指定条件的行数 即 返回指定列的值的数目(NULL 不计入)
SELECT COUNT(column_name) FROM table_name;

COUNT(*) — 则返回表中的记录数:
COUNT(DISTINCT column_name) — 则返回指定列的不同值的数目

  1. FIRST(),LAST()
    分别获取第一条记录和最后一条记录
    只有 MS Access 支持 FIRST(),LAST() 函数
    Mysql中 limit 1 获取第一条,倒叙排列 然后 limit 1 为最后一条获取。

  2. MAX()
    返回指定列的最大值

SELECT MAX(column_name) FROM table_name;
  1. MIN()
    返回指定列的最小值
SELECT MIN(column_name) FROM table_name;
  1. SUM()
    返回数值列的总数
    对指定字段做累加操作
SELECT SUM(column_name) FROM table_name;

SELECT SUM(num_count) AS total_num FROM table_name;
  1. GROUP BY & HAVING
    GROUP BY 见另一篇文章 点此跳转

Having 是为了聚合函数用作条件查询

where 位于 Group By之前使用,Having 用于 Group By 之后。
聚合函数(avg、sum、max、min、count),不能作为条件放在where之后,可以放在having之后

  1. UCASE()
    把字段的值转换为大写
SELECT UCASE(column_name) FROM table_name;
  1. LCASE()
    把字段的值转换为小写
SELECT LCASE(column_name) FROM table_name;
  1. MID()
    用于从文本字段中提取字符
SELECT MID(column_name,start[,length]) FROM table_name;

start : 开始位置
length:截取长度
Oracle 中没有 MID 函数,有 substr 函数有类似功能

例如:

SELECT MID(name,1,3) AS title
FROM table_name;

结果为取前三个字符。

  1. LEN()
    返回文本字段中值的长度
SELECT LEN(column_name) FROM table_name;
  1. ROUND()
    把数值字段舍入为指定的小数位数
SELECT ROUND(column_name,decimals) FROM table_name;

示例:
decimals 不添加时默认保留到整数位

mysql> SELECT ROUND(-1.11);
        -> -1
mysql> SELECT ROUND(-1.56);
        -> -2
mysql> SELECT ROUND(1.57);
        -> 2
mysql> SELECT ROUND(1.57,1);
        -> 1.6
  1. NOW()
    返回当前系统的日期和时间
SELECT NOW() FROM table_name;SELECT name, Now() AS t_name FROM table_name;

在这里插入图片描述

  1. FORMAT()
    用于对字段的显示进行格式化
SELECT FORMAT(column_name,format) FROM table_name;

format: 格式
例如:

SELECT name, DATE_FORMAT(Now(),'%Y-%m-%d') AS t_name
FROM table_name;

在这里插入图片描述

UNION 以及 UNION ALL区别

union会自动压缩多个结果集合中的重复结果
union all会将将所有的结果全部显示出来,不管是不是重复。如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字

UNION 以及 UNION ALL 会将两个子查询的结果合并到一起

格式例如:

( (select .....UNION ALL (select......)

最终的结果可以当作一个集合来看,最终从该集合查询也可以
例如:

select * from ( (select …) UNION ALL (select…) ) where …

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值