MySQL深入浅出(三)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL深入浅出(三)
SELECT last_name 
 FROM employees
 WHERE last_name LIKE '_o%';

1670058918455.jpg

NULL


使用 IS (NOT) NULL 判断空值

SELECT last_name , manager_id
 FROM employees
 WHERE manager id IS NULL;

1670058937190.jpg

逻辑运算


1670058949499.jpg

AND


AND要求并的关系为真

SELECT employee_id , last_name , job_id , salary
 FROM employees
 WHERE salary >= 10000
 AND job_id LIKE '%MAN%'

1670058964232.jpg

OR


OR要求或关系为真

SELECT employee_id , last_name , job_id , salary
 FROM employees
 WHERE salary >= 10000
 OR job_id LIKE '%MAN%'

1670058980336.jpg

NOT


SELECT last_name , job_id 
 FROM employees
 WHERE job_id 
 NOT IN(
 'IT_PROG','ST_CLERK','SA_REP'
 )

1670059003617.jpg

ORDER BY子句


使用ORDER BY子句排序

(1)ASC:升序

(2)DESC:降序

ORDER BY子句在SELECT语句的结尾

SELECT last_name , job_id , department_id , hire_date
 FROM employees
 ORDER BY hire_date;

1670059024418.jpg

降序排序


SELECT last_name , job_id , department_id , hire_date
 FROM employees
 ORDER BY hire_date DESC;

1670059039996.jpg

按别名排序


SELECT employee_id , last_name , salary * 12 annsal 
 FROM employees
 ORDER BY annsal;

1670059054333.jpg

多个列排序


按照ORDER BY列表的顺序排序

SELECT last_name , department_id , salary
 FROM employees
 ORDER BY department_id , salary desc;

1670059072040.jpg

可以使用不在SELECT列表中的列排序


分组函数


分组函数作用于一组数据,并对一组数据返回一个值


组函数语法


SELECT [column,]group function(column), ...
 FROM table
 [where condition]
 [GROUP BY column]
 [ORDER BY column]


AVG和SUM函数


可以对数值型数据使用AVGSUM函数

SELECT AVG(salary),MAX(salary)
 MIN(salary),SUM(salary)
 FROM employees
 WHERE job_id LIKE '%REP%';


MIN和MAX


可以对任意数据类型的数据使用MINMAX函数

SELECT MIN(hire_date),MAX(hire_date)
 FROM employees;


COUNT函数


COUNT(*)返回表中记录欧洲那个数,适用于任意数据类型

1670059112327.jpg

COUNT返回expr不为空的记录总数

SELECT COUNT(commission_pct)
 FROM employees
 WHERE department_id = 50;

1670059129938.jpg


分组数据


GROUP BY 子句

可以使用GROUP BY子句将表中的数据分成若干组

SELECT    column , group_function(column)
 FROM      table
 [WHERE    condition]
 [GROUP  BY    group_by_expression]
 [ORDER BY      column]

WHERE一定要放在FROM后面

SELECT列表中所有未包含在组函数中的列都应该包含在GROUP BY子句中

SELECT department_id , AVG(salary)
 FROM employees
 GROUP BY department_id;

1670059152410.jpg

包含在GROUP BY子句中的列不必包含在SELECT列表中

SELECT AVG(salary)
 FROM employees
 GROUP BY department_id ;

1670059167215.jpg

在GROUP BY子句中包含多个列

SELECT department_id , dept_id , job_id ,SUM(salary)
 FROM employees
 GROUP BY department_id , job_id ;

1670059184551.jpg

注意事项

  • 不能在WHERE子句中使用组函数
  • 可以在HAVING子句中使用组函数


HAVING 子句

使用HAVING过滤分组

  • 行已经被分组
  • 使用了组函数
  • 满足HAVING子句中条件的分组将会被显示
SELECT   column , group_function
 FROM table
 [WHERE   condition]
 [GROUP BY    group_by_expression]
 [HAVING group_condition]
 [ORDER BY   column]
SELECT department_id , MAX(salary)
 FROM employees
 GROUP BY department_id
 HAVING MAX(salary) >10000 ;

1670059206513.jpg

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
JavaScript
js中数组reduce的使用原来这么简单
js中数组reduce的使用原来这么简单
|
人工智能 自然语言处理 算法
谷歌推出”自我发现“框架,极大增强GPT-4等大模型推理能力
【4月更文挑战第20天】谷歌DeepMind团队推出了SELF-DISCOVER框架,让大型语言模型能自我发现并构建推理结构,提升在复杂任务中的性能。该框架模仿人类解决问题方式,分两阶段选择和适应原子推理模块,以解决挑战。在多任务测试中,SELF-DISCOVER相比传统方法表现出色,性能提升42%,计算量减少10至40倍。它具有跨模型应用的普适性,并与人类思维方式相通。然而,它在某些任务类型上仍有优化空间,且需解决计算成本问题。论文链接:https://arxiv.org/abs/2402.03620
238 1
|
算法 Java 数据库
如何成为一名优秀的后端工程师
要成为一名优秀的后端工程师,需要具备扎实的编程基础、深入的系统原理理解和丰富的项目实践经验。本文从这三个方面介绍了如何提升自己的后端技能。
261 1
|
算法 计算机视觉 Python
OpenCV中Canny边缘检测和霍夫变换的讲解与实战应用(附Python源码)
OpenCV中Canny边缘检测和霍夫变换的讲解与实战应用(附Python源码)
884 0
|
10月前
|
运维 监控 Ubuntu
【运维】如何在Ubuntu中设置一个内存守护进程来确保内存不会溢出
通过设置内存守护进程,可以有效监控和管理系统内存使用情况,防止内存溢出带来的系统崩溃和服务中断。本文介绍了如何在Ubuntu中编写和配置内存守护脚本,并将其设置为systemd服务。通过这种方式,可以在内存使用超过设定阈值时自动采取措施,确保系统稳定运行。
384 4
|
存储 网络性能优化 块存储
OpenStack的块存储卷管理创建与配置
【8月更文挑战第27天】
591 3
|
Kubernetes Cloud Native 开发者
阿里云网络发布 alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!
**阿里云发布开源版ALB控制器v1.2.0,对齐商业版ALB Ingress Controller v2.10.0。新版本增强了功能特性,提升了用户体验,并提供了最佳实践。功能更新包括自定义标签、QUIC协议支持、转发规则和安全策略等。此外,还引入了ReadinessGate实现滚动升级时的平滑上线和Prestop钩子确保平滑下线。用户可从GitHub获取开源代码,通过Docker Hub拉取镜像,开始使用alibaba-load-balancer-controller v1.2.0。**
664 3
阿里云网络发布 alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!
|
存储 Java
|
XML Android开发 UED
Android动画之共享元素动画简单实践
本文介绍Android共享元素动画, 实现两Activity间平滑过渡特定UI元素。通过设置`transitionName`属性和使用`ActivityOptions.makeSceneTransitionAnimation`启动目标Activity实现动画效果。可自定义过渡动画提升体验。
279 0
|
视频直播 语音技术