Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql8新特性

作者:刀剑傲天   发布日期:2026-07-04   浏览:46

-- MySQL 8.0 引入了窗口函数(Window Functions),这是一个非常有用的新特性。以下是一个使用窗口函数的示例代码:

SELECT 
    department, 
    employee_name, 
    salary,
    AVG(salary) OVER (PARTITION BY department) AS avg_salary,
    RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS rank_in_dept
FROM employees;

-- 解释:
-- 1. `AVG(salary) OVER (PARTITION BY department)` 计算每个部门的平均工资。
-- 2. `RANK() OVER (PARTITION BY department ORDER BY salary DESC)` 为每个部门的员工按工资从高到低排名。
-- 3. `PARTITION BY` 子句将结果集划分为多个分区(这里按部门划分),窗口函数在每个分区内独立计算。

-- 另一个新特性是引入了公共表表达式(Common Table Expressions,CTE),使查询更易读和维护。以下是一个使用 CTE 的示例代码:

WITH RECURSIVE org_hierarchy AS (
    SELECT employee_id, manager_id, employee_name, 1 AS level
    FROM employees
    WHERE manager_id IS NULL
    UNION ALL
    SELECT e.employee_id, e.manager_id, e.employee_name, oh.level + 1
    FROM employees e
    INNER JOIN org_hierarchy oh ON e.manager_id = oh.employee_id
)
SELECT * FROM org_hierarchy;

-- 解释:
-- 1. `WITH RECURSIVE` 定义了一个递归的 CTE,用于处理层次结构数据(如组织结构)。
-- 2. `UNION ALL` 将递归部分与非递归部分结合在一起。
-- 3. `level` 列记录了每个员工在组织层次中的级别。

以上代码展示了 MySQL 8.0 中两个重要的新特性:窗口函数和公共表表达式。这些特性使得复杂的查询更加简洁和高效。

上一篇:mysql 当前日期前一天

下一篇:linux下载mysql

大家都在看

mysql二级索引

mysqlavg函数保留小数

mysql显示表内容

mysql收集表统计信息

mysql经纬度距离计算

mysql 加密

mysql大小写转换函数

存储过程mysql

mysql 1265

mysql with语句

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站