MySQL进阶一

目录

1.使用环境

2.条件判断

2.1.case when

2.2.if

3.窗口函数

3.1.排序函数

3.2.聚合函数

​​​​​​​3.3.partiton by

​​​​​​​3.4.order by

4.待续


1.使用环境

数据库:MySQL 8.0.30

客户端:Navicat 15.0.12

2.条件判断

2.1.case when

语法格式:

case when [condition] then [result1]...else [default] end

如果condition条件成立,返回result1,否则返回default,以end结束条件判断。

建表:

CREATE TABLE t_1 (id int(10) NOT NULL,name varchar(255) DEFAULT NULL,age int(5) DEFAULT NULL,score int(5) DEFAULT NULL,PRIMARY KEY (`id`)
);

> OK

> 时间: 0.008s

添加数据:

INSERT INTO t_1 VALUES
('1', '张三', '20', '68'),
('2', '李四', '19', '97'),
('3', '王五', '21', '55'),
('4', '赵六', '22', '81');

> Affected rows: 4

> 时间: 0.001s

为t_1添加一列level,表示学生的得分等级

select * ,case when t_1.score >= 80 then '优秀'when t_1.score < 80 and t_1.score >= 60 then '一般'else '不及格'end as level
from t_1;

2.2.if

语法格式:

if(condition,result1,result2)

如果condition条件为真,则返回result1否则返回result2。

为t_1添加一列,表示学生是否成年:

select *,
if(t_1.age >= 18,'成年人','未成年人') as 是否成年
from t_1;

3.窗口函数

语法格式:

窗口函数 over(partiton by 分组字段 order by 排序字段 asc|desc)

​​​​​​​3.1.排序函数

  • rank()
  • dense_rank()  
  • row_number()

​​​​​​​3.2.聚合函数

  • sum(字段) ---求和
  • count(字段) ---统计个数
  • max(字段) ---最大值
  • min(字段) ---最小值
  • avg(字段) --平均值

​​​​​​​3.3.partiton by

将表数据根据partiton by后面的字段进行分组。

partiton by和 group by分组的区别:

  • group by会改变显示结果的行数(相当于按照字段折叠,把同一组的数据折叠在一起)。
  • partiton by不会改变表显示的行数(与原表显示一样),只是把相同组的数据归纳纵向相连在一起。

​​​​​​​3.4.order by

根据指定的字段进行排序。

4.待续

进阶二再来说具体示例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/611196.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity MySql安装部署与Unity连接 下篇

一、前言 上篇讲到了如何安装与部署本地MySql&#xff1b;本篇主要讲Unity与MySql连接、创建表、删除表&#xff0c;然后就是对表中数据的增、删、改、查等操作。再讲这些之前会说一些安装MySql碰到的一些问题和Unity连接的问题。 当把本地MySql部署好之后&#xff0c;我们可能…

C++ vector内存分配及正确释放

C vector内存分配及正确释放_vector 释放-CSDN博客 内存分配 #include <iostream> #include <vector> using namespace std;int main(){ vector<int> vec(10); cout << "vec.size: "<< vec.size() <<endl; cout << &quo…

spring.rabbitmq.listener.simple.default-requeue-rejected = false 和放入死信队列的区别

目录 一、场景 二、使用 spring.rabbitmq.listener.simple.default-requeue-rejected false 2.1 特点 三、 放入死信队列 四、两种区别 一、场景 当我们使用RabbitMq的时候&#xff0c;我们如果业务中有异常&#xff0c;很有可能造成死循环&#xff0c;因为 在RabbitMQ和…

OJ刷题日记:1、双指针(1)

目录 1、283.移动零 2、1089.复写零 3、202.快乐数 1、283.移动零 题目&#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 …

mysql重启失败

服务器重启了一下&#xff0c;然后启动后发现mysql自动启动没有生效&#xff0c;于是手动通过systemctl启动mysqld&#xff0c;然后就报错:Starting MySQL...........The server quit without updating P[FAILED](/data/mysql/iz2zebvmy1qv3fao9c5riuz.pid). 根据配置my.cnf文…

Mysql内存表及使用场景(12/16)

内存表&#xff08;Memory引擎&#xff09; InnoDB引擎使用B树作为主键索引&#xff0c;数据按照索引顺序存储&#xff0c;称为索引组织表&#xff08;Index Organized Table&#xff09;。 Memory引擎的数据和索引分开存储&#xff0c;数据以数组形式存放&#xff0c;主键索…

Jmeter-跨线程传参(正则提取多个参数、jsonpath提取器)

目的&#xff1a; 当前接口请求的参数依赖于其他请求&#xff0c;且两个请求不是在同一个线程组时就会用到该方法进行跨线程组传参。 实际使用场景&#xff1a; 多个线程组的请求都依赖登录接口&#xff0c;但是登录接口仅执行一次。 实现方法&#xff1a; 以下举例的有正…

信息系统项目管理师——第22章组织通用治理

本章在第三版战略管理的基础上新增了2节内容&#xff0c;从2023年上半年的考情来看来 选择题&#xff0c;考1分左右&#xff0c;知识点比较分散&#xff0c;刷下题&#xff0c;考前突击下即可。 案例题&#xff0c;不考。 论文题&#xff0c;不考。 1组织战略 组织战略体现了…

电力综合自动化系统对电力储能技术的影响有哪些?

电力综合自动化系统对电力储能技术的影响主要体现在以下几个方面&#xff1a; 提高能源利用效率&#xff1a;电力综合自动化系统通过优化调度和能量管理&#xff0c;可以实现储能设备的有效利用&#xff0c;提高能源利用效率。在电力系统中&#xff0c;储能设备可以有效地平抑风…

Web App 入门指南:构建预测模型 App 的利器(shiny)

Web App 入门指南&#xff1a;构建预测模型 App 的利器 简介 近年来&#xff0c;随着机器学习和人工智能技术的快速发展&#xff0c;预测模型在各行各业得到了广泛应用。为了方便地部署和使用预测模型&#xff0c;将模型构建成 Web App 是一种非常好的选择。Web App 无需下载…

StylizedGS: Controllable Stylization for 3D Gaussian Splatting

StylizedGS: Controllable Stylization for 3D Gaussian Splatting StylizedGS&#xff1a;3D高斯溅射的可控样式化 Dingxi Zhang, Zhuoxun Chen, Yu-Jie Yuan, Fang-Lue Zhang, Zhenliang He, Shiguang Shan, and Lin Gao1 张定西&#xff0c;陈卓勋&#xff0c;袁玉洁&#x…

大日志精选案例七:徐州公交集团数字化转型中的日志审计优化实践

**> “城市公共交通作为民生重要基础设施&#xff0c;其安全与效率至关重要。聚铭的大日志方案&#xff0c;如同为公交系统装上了‘智慧眼’&#xff0c;提供了全方位的日志可见性&#xff0c;使我们能够全面、深入地了解公交系统的运行状况。日志中详细记录的各项操作、事件…