coalesce函数用法 sql_SQL基本语法

1.当视图满足以下条件时才可以对视图中的数据进行更新:

SELECT 子句中未使用 DISTINCT;

FROM 子句中只有一张表;

未使用 GROUP BY 子句;

未使用 HAVING 子句。因为视图和表需要同时进行更新,因此通过汇总得到的视图无法进行更新

2.算术函数

ABS—— 绝对值 ABS(数值)

MOD—— 求余 MOD(被除数,除数)

ROUND—— 四舍五入 ROUND(对象数值,保留小数的位数)

3.字符串函数

CONCAT—— 拼接 CONCAT(字符串1,字符串2,……)

LENGTH—— 字符串长度 LENGTH(字符串)MySQL 中,LENGTH 函数返回的是字节的长度,LENGTH (“山田”) 返回的结果是 6,因为 UTF-8 编码中一个汉字占 3 个字节。若要在 MySQL 中计算字符的长度,请使用 CHAR_LENGTH 函数,CHAR_LENGTH (“山田”) 返回的结果是 2

LOWER—— 小写转换 LOWER(字符串)

UPPER—— 大写转换 UPPER(字符串)

REPLACE—— 字符串的替换 REPLACE(对象字符串,替换前的字符串,替换后的字符串)

SUBSTRING—— 字符串的截取 SUBSTRING(对象字符串 FROM 截取的起始位置 FOR 截取的字符数)

4.日期函数

CURRENT_DATE—— 当前日期 没有参数,无需使用括号

CURRENT_TIME—— 当前时间 没有参数,无需使用括号

CURRENT_TIMESTAMP—— 当前日期和时间 获取当前时间戳

EXTRACT—— 截取日期元素 EXTRACT(日期元素 FROM 日期) eg. EXTRACT(YEAR FROM CURRENT_TIMESTAMP) 该函数的返回值并不是日期类型,而是数值类型

5.CAST—— 类型转换 CAST(转换前的值 AS 想要转换的数据类型)

COALESCE—— 将 NULL 转换为其他值 COALESCE(数据1,数据2,数据3,……) 返回参数中左侧开始第一个不是 NULL 的值

6.可以在 SUM 函数中使用 CASE 表达式

-- 对按照商品种类计算出的销售单价合计值进行行列转换

SELECT SUM(CASE WHEN product_type = '衣服'

THEN sale_price ELSE 0 END) AS sum_price_clothes,

SUM(CASE WHEN product_type = '厨房用具'

THEN sale_price ELSE 0 END) AS sum_price_kitchen,

SUM(CASE WHEN product_type = '办公用品'

THEN sale_price ELSE 0 END) AS sum_price_office

FROM Product;

7.排序方式

RANK 函数 计算排序时,如果存在相同位次的记录,则会跳过之后的位次。比如,有 3 条记录排在第 1 位时:1 位、1 位、1 位、4 位……

DENSE_RANK 函数 同样是计算排序,即使存在相同位次的记录,也不会跳过之后的位次。比如,有 3 条记录排在第 1 位时:1 位、1 位、1 位、2 位……

ROW_NUMBER 函数 赋予唯一的连续位次。比如,有 3 条记录排在第 1 位时:1 位、2 位、3 位、4 位……

8.作为窗口函数使用的聚合函数

a.在按照时间序列的顺序,计算各个时间的销售额总额等的时候,通常都会使用这种称为累计的统计方法。像这样以 “自身记录(当前记录)” 作为基准进行统计,就是将聚合函数当作窗口函数使用时的最大特征

b.计算移动平均

在窗口中可以指定更加详细的汇总范围,该备选功能中的汇总范围称为框架

--指定“最靠近的3行”作为汇总对象

SELECT product_id, product_name, sale_price,

AVG(sale_price) OVER (ORDER BY product_id

ROWS 2 PRECEDING) AS moving_avg

FROM Product;

这种统计方法称为移动平均(moving average)。ROWS 2 FOLLOWING 表示 “截止到之后 2 行 “,ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING 表示从之前 1 行开始到之后 1 行结束,即包括当前记录一共 3 行

***********重点********

9.GROUPING 运算符 ROLLUP—— 同时得出合计和小计

10.GROUPING 函数 —— 让 NULL 更加容易分辨

11.使用 GROUPING 函数和 CASE WHEN 子句在超级分组记录的键值中插入字符串

12.CUBE—— 用数据来搭积木 CUBE 语法和 ROLLUP 相同

13.GROUPING SETS—— 取得期望的积木

《SQL 基础教程》笔记 | 半块苹果的日志

《SQL基础教程》笔记​blog.maqingbo.com
d4eb08a547f994bec0cf18b6e284fa08.png
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值