Maison > base de données > tutoriel mysql > le corps du texte

Découvrez comment MySQL implémente With AS

PHPz
Libérer: 2023-04-17 17:00:37
original
1056 Les gens l'ont consulté

MySQL est un système de gestion de base de données relationnelle open source populaire qui prend en charge de nombreuses fonctions et fonctionnalités telles que les sous-requêtes et les expressions de table communes. Parmi elles, Common Table Expressions (CTE) est une fonctionnalité relativement nouvelle qui permet la création d'un ensemble de résultats nommés non persistants dans une requête, similaire à l'utilisation de l'instruction WITH AS dans d'autres bases de données relationnelles. Cet article explorera comment MySQL implémente With AS.

  1. Qu'est-ce que With AS ?

L'instruction With AS est un moyen de créer une expression de table générale, ce qui est très courant dans d'autres systèmes de gestion de bases de données relationnelles. En règle générale, une instruction WITH AS se compose d'un ensemble de clauses séparées par des virgules qui répertorient les noms de colonnes et les valeurs de colonnes (similaires à une instruction SELECT) et d'une requête principale. Dans la requête principale, le jeu de résultats de l’expression de table générale peut être référencé en tant que table à interroger.

Par exemple, voici un exemple utilisant l'instruction WITH AS :

WITH salary AS (
  SELECT employee_id, salary FROM employees
)
SELECT employee_id FROM salary WHERE salary > 50000;
Copier après la connexion

Dans cet exemple, nous définissons d'abord un générique nommé salary en utilisant la clause WITH Expression de table qui contient une colonne employee_id et salary de la table employees. Nous avons ensuite référencé la table salary dans la requête principale et renvoyé tous les identifiants d'employés dont le salaire est supérieur à 50 000. WITH 子句定义了一个名为 salary 的通用表表达式,它包含一个来自 employees 表的 employee_idsalary 列。之后,我们在主查询中引用了 salary 表,并返回了所有薪资高于 50000 的员工 ID。

  1. MySQL 如何实现 With AS?

MySQL 的实现相对其他关系型数据库管理系统有所不同,它不支持 WITH AS 语句。但是,MySQL 提供了一种类似的功能,称为子查询,可以达到类似 WITH AS 的效果。

例如,我们可以使用以下查询来模拟上述示例:

SELECT employee_id FROM (
  SELECT employee_id, salary FROM employees
) AS salary WHERE salary > 50000;
Copier après la connexion

在此查询中,我们使用子查询来替代 WITH AS 语句。子查询与通用表表达式类似,在其内部定义了一个结果集,可以在主查询中引用。与 PostgreSQL 等其他关系型数据库管理系统不同,MySQL 不需要在子查询名称前添加 WITH 子句。

值得注意的是,在 MySQL 中使用子查询时,我们需要将子查询作为一个表,使用 AS 子句将其命名。在主查询中,我们使用这个表名来引用子查询的结果集。在本例中,我们命名了子查询为 salary,并使用 salary

    Comment MySQL implémente-t-il With AS ?
    1. L'implémentation de MySQL est différente des autres systèmes de gestion de bases de données relationnelles. Elle ne prend pas en charge l'instruction WITH AS. Cependant, MySQL fournit une fonctionnalité similaire appelée sous-requête, qui peut obtenir des résultats similaires à WITH AS.

    Par exemple, nous pouvons utiliser la requête suivante pour simuler l'exemple ci-dessus :

    rrreee

    Dans cette requête, nous utilisons une sous-requête à la place de l'instruction WITH AS. Une sous-requête est similaire à une expression de table générale dans la mesure où elle définit un ensemble de résultats qui peut être référencé dans la requête principale. Contrairement à d'autres systèmes de gestion de bases de données relationnelles tels que PostgreSQL, MySQL ne nécessite pas de clause WITH avant le nom de la sous-requête.

    🎜Il convient de noter que lors de l'utilisation d'une sous-requête dans MySQL, nous devons traiter la sous-requête comme une table et la nommer à l'aide de la clause AS. Dans la requête principale, nous utilisons ce nom de table pour faire référence au jeu de résultats de la sous-requête. Dans cet exemple, nous avons nommé la sous-requête salary et utilisé salary comme nom de table pour sélectionner tous les ID d'employé dont le salaire est supérieur à 50 000. 🎜🎜🎜Conclusion🎜🎜🎜Bien que MySQL ne prenne pas en charge l'instruction With AS, nous pouvons utiliser des sous-requêtes pour obtenir des effets similaires. L’utilisation d’une approche de sous-requête est légèrement différente d’une expression de table générique, mais le même résultat peut être facilement obtenu. 🎜🎜Enfin, il convient de noter que différentes conditions et complexités peuvent nécessiter différentes méthodes de requête. Dans des situations réelles, nous devons choisir une méthode appropriée en fonction des exigences spécifiques de la requête afin de garantir les performances et l'effet de la requête. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!