从MySQL查询C探索新功能(c 从mysql 查询)
在最新的MySQL版本8.0中,引入了一些新的查询功能,这些新功能大大增加了MySQL的查询灵活性和功能。
一、COMMON TABLE EXPRESSIONS(公共表达式)
Common Table Expressions是SQL语言中一种让用户创建临时表的工具,可以在查询中使用这些临时表。在MySQL 8.0以前,此功能在MySQL中并不存在。此外,Common Table Expressions不支持在存储过程中使用。
以下是一个简单的例子展示Common Table Expressions的用法:
WITH
cte AS (SELECT employeeNumber, firstName, lastName FROM employees),
cte2 AS (SELECT officeCode, city FROM offices)
SELECT customerName, cte.firstName, cte.lastName, cte2.city
FROM cte, cte2
INNER JOIN customers ON cte.employeeNumber = customers.salesRepEmployeeNumber
WHERE cte2.officeCode = customers.officeCode;
二、WINDOW FUNCTIONS(窗口函数)
MySQL 8.0支持窗口函数,窗口函数是一种特殊的函数类型,这些函数仅在计算特定给定行范围的数据时使用。使用窗口函数可以高效地减少查询时间。
以下是一个简单的例子展示如何使用窗口函数:
SELECT lastName, firstName, salary,
SUM(salary) OVER(PARTITION BY officeCode) as officeSalaryTotal
FROM employees;
三、REGULAR EXPRESSIONS(正则表达式)
MySQL已经支持正则表达式并支持在查询中使用它。使用正则表达式可以更轻松地搜索和过滤数据。
以下是一个简单的例子展示如何使用正则表达式:
SELECT *
FROM employees
WHERE lastName REGEXP ‘^Doe’;
四、JSON函数
MySQL 8.0一直支持JSON数据类型。在MySQL 8.0版本中,支持对JSON进行特殊查询,例如,可以使用JSON_EXTRACT函数提取JSON中的特定对象和键值。
以下是一个简单的例子展示如何使用JSON_EXTRACT函数提取JSON中的特定对象和键值:
SELECT JSON_EXTRACT(json_data, ‘$.name’) AS name
FROM users;
五、新的助手表
MySQL 8.0加入了新的系统表,这些表的用途是辅助查询优化器进行查询的优化。
以下是一些新的助手表的列表:
• optimizer_trace
• optimizer_trace_info
• optimizer_trace_events
• optimiser_trace_enable
• optimiser_trace_enable_session
• optimiser_trace_max_mem_size
• optimiser_trace_offset
MySQL 8.0带来了许多强大的新功能,包括Common Table Expressions,Window Function,正则表达式和JSON函数等。这些新功能可以帮助用户更轻松地完成复杂的查询和操作。