前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《深入浅出MySQL》问答录(五)

《深入浅出MySQL》问答录(五)

作者头像
看、未来
发布2020-08-25 17:01:56
4420
发布2020-08-25 17:01:56
举报
文章被收录于专栏:CSDN搜“看,未来”

本系列出自《深入浅出MySQL》,全文以问答形式展开,是我的个人学习笔记。

问答录

先看花絮

Q:要用到ELSE吗?

A:看你咯,无所谓。


Q:如果没有ELSE而且列也不符合任何一个WHEN条件,会发生什么事?

A:在你想更新的列里面不会发生任何改变。


Q:如果我只想对部分列套用CASE表达式,应该怎么做呢?

A:可以加上WHERE,可以在END后加上WHERE子句。这样,CASE就只会套用在符合WHERE子句的列上。


CASE表达式可以搭配UPDATE以外的语句吗?

A:why not?


Q:讲到MIN,如果查询中的列有NULL,这会有上面影响吗?

A:好问题。NULL其实不会有影响,因为NULL代表此处无值,而不是此值为0.


花絮

CASE语句

看图:

现在怎么办?是像这样吗? :

这样要执行n次啊。。。

那有没有更好的办法,其实在主语言中,这不过就是个分支语句的事情嘛,奈何SQL语言我不熟啊。。。

没事,一直以来不懂,从今以后懂了:

代码语言:javascript
复制
UPDATE my_table
SET new_column =
CASE
	WHEN column1 = somevalue1
		THEN newvalue1
	WHEN column2 = somevalue2
		THEN newvalue2
	ELSE newvalue3
END;

ORDER BY排序

1、升序排序:ASC | 降序排序:DESC
2、SQL排序规则
多列排序:

越靠前的列权重越高,拥有对后面列的一票否决权。

GROUP BY 分组

代码语言:javascript
复制
SELECT first_name,SUM(sales)
FROM cookie_sales
GROUP BY first_name
ORDER BY SUM(sales) DESC
;
代码语言:javascript
复制
SELECT first_name,AVG(sales)
FROM cookie_sales
GROUP BY first_name
ORDER BY AVG(sales) DESC
;
代码语言:javascript
复制
SELECT first_name,MAX(sales)
FROM cookie_sales
GROUP BY first_name
;
代码语言:javascript
复制
SELECT first_name,MIN(sales)
FROM cookie_sales
GROUP BY first_name
;

COUNT,计数

代码语言:javascript
复制
SELECT COUNT(sale_date)
FROM cookie_sales
;

DISTINCT,取独

代码语言:javascript
复制
SELECT DISTINCT sale_date
FROM cookie_sales
ORDER BY sale_date
;
代码语言:javascript
复制
SELECT COUNT(DISTINCT sale_date)
FROM cookie_sales
;

LIMIT:限制查询数量

代码语言:javascript
复制
SELECT first_name,SUN(sales)
FROM cookie_sales
GROUP BY first_name
ORDER BY SUN(sales) DESC
LIMIT 2 OFFSET 4	--跳过两条,查询两条记录
--也可以这样写:LIMIT 4,2
;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/07/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问答录
  • 花絮
    • CASE语句
      • ORDER BY排序
        • 1、升序排序:ASC | 降序排序:DESC
        • 2、SQL排序规则
        • 多列排序:
      • GROUP BY 分组
        • COUNT,计数
          • DISTINCT,取独
            • LIMIT:限制查询数量
            相关产品与服务
            云数据库 MySQL
            腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档