Table des matières
Spécifiez des alias pour les champs
为表指定别名
Maison base de données tutoriel mysql A quoi sert comme dans MySQL

A quoi sert comme dans MySQL

Jan 06, 2022 pm 04:02 PM
as mysql

Dans MySQL, le mot-clé "as" est utilisé pour spécifier des alias pour les tables de données et les champs. Syntaxe : 1. "SELECT nom du champ AS alias FROM table de données ;", vous pouvez spécifier des alias pour les champs ; FROM Data table AS alias;", vous pouvez spécifier un alias pour la table.

A quoi sert comme dans MySQL

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.

Pour faciliter les requêtes, MySQL fournit le mot-clé AS pour spécifier les alias des tables et des champs. Cette section explique principalement comment spécifier un alias pour les tables et les champs.

Lors de l'utilisation d'une requête MySQL, lorsque le nom de la table est très long ou lors de l'exécution de requêtes spéciales, pour des raisons de commodité d'utilisation ou lorsque la même table doit être utilisée plusieurs fois, vous pouvez spécifier un alias pour la table et utiliser cet alias pour remplacer le nom d'origine de la table.

Spécifiez des alias pour les champs

Parfois, les noms de colonnes sont des expressions qui rendent le résultat de la requête difficile à comprendre. Pour donner à une colonne un nom descriptif, utilisez un alias de colonne.

L'instruction suivante illustre comment utiliser les alias de colonne :

SELECT 
 字段名 AS 别名
FROM 数据表;

Pour ajouter un alias à un champ, vous pouvez utiliser le mot-clé AS suivi de l'alias. Si l'alias contient des espaces, il doit être cité comme suit : AS关键词后跟别名。 如果别名包含空格,则必须引用以下内容:

SELECT 
 字段名 AS `别名`
FROM 数据表;

因为AS关键字是可选的,可以在语句中省略它。 请注意,还可以在表达式上使用别名。

我们来看看示例数据库中的employees表,其表结构如下所示 -

mysql> desc employees;
+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| employeeNumber | int(11)      | NO   | PRI | NULL    |       |
| lastName       | varchar(50)  | NO   |     | NULL    |       |
| firstName      | varchar(50)  | NO   |     | NULL    |       |
| extension      | varchar(10)  | NO   |     | NULL    |       |
| email          | varchar(100) | NO   |     | NULL    |       |
| officeCode     | varchar(10)  | NO   | MUL | NULL    |       |
| reportsTo      | int(11)      | YES  | MUL | NULL    |       |
| jobTitle       | varchar(50)  | NO   |     | NULL    |       |
+----------------+--------------+------+-----+---------+-------+
8 rows in set

以下查询选择员工的名字和姓氏,并将其组合起来生成全名。 CONCAT_WS函数用于连接名字和姓氏。

SELECT 
    CONCAT_WS(', ', lastName, firstname)
FROM
    employees;

执行上面代码,得到以下结果 -

mysql> SELECT 
    CONCAT_WS(', ', lastName, firstname)
FROM
    employees;
+--------------------------------------+
| CONCAT_WS(', ', lastName, firstname) |
+--------------------------------------+
| Murphy, Diane                        |
| Patterson, Mary                      |
| Firrelli, Jeff                       |
| Patterson, William                   |
| Bondur, Gerard                       |
| Bow, Anthony                         |
| Jennings, Leslie                     |
| Thompson, Leslie                     |
| Firrelli, Julie                      |
| Patterson, Steve                     |
| Tseng, Foon Yue                      |
| Vanauf, George                       |
| Bondur, Loui                         |
| Hernandez, Gerard                    |
| Castillo, Pamela                     |
| Bott, Larry                          |
| Jones, Barry                         |
| Fixter, Andy                         |
| Marsh, Peter                         |
| King, Tom                            |
| Nishi, Mami                          |
| Kato, Yoshimi                        |
| Gerard, Martin                       |
+--------------------------------------+
23 rows in set

在上面示例中,列标题很难阅读理解。可以为输出的标题分配一个有意义的列别名,以使其更可读,如以下查询:

SELECT
 CONCAT_WS(', ', lastName, firstname) AS `Full name`
FROM
 employees;

执行上面代码,得到以下结果 -

mysql> SELECT
 CONCAT_WS(', ', lastName, firstname) AS `Full name`
FROM
 employees;
+--------------------+
| Full name          |
+--------------------+
| Murphy, Diane      |
| Patterson, Mary    |
| Firrelli, Jeff     |
... ...
| King, Tom          |
| Nishi, Mami        |
| Kato, Yoshimi      |
| Gerard, Martin     |
+--------------------+
23 rows in set

在MySQL中,可以使用ORDER BYGROUP BYHAVING子句中的列别名来引用该列。

以下查询使用ORDER BY子句中的列别名按字母顺序排列员工的全名:

SELECT
 CONCAT_WS(' ', lastName, firstname) `Full name`
FROM
 employees
ORDER BY
 `Full name`;

执行上面代码,得到以下结果 -

mysql> SELECT
 CONCAT_WS(' ', lastName, firstname) `Full name`
FROM
 employees
ORDER BY
 `Full name`;
+-------------------+
| Full name         |
+-------------------+
| Bondur Gerard     |
| Bondur Loui       |
| Bott Larry        |
| Bow Anthony       |
| Castillo Pamela   |
| Firrelli Jeff     |
| Firrelli Julie    |
| Fixter Andy       |
| Gerard Martin     |
| Hernandez Gerard  |
| Jennings Leslie   |
| Jones Barry       |
| Kato Yoshimi      |
| King Tom          |
| Marsh Peter       |
| Murphy Diane      |
| Nishi Mami        |
| Patterson Mary    |
| Patterson Steve   |
| Patterson William |
| Thompson Leslie   |
| Tseng Foon Yue    |
| Vanauf George     |
+-------------------+
23 rows in set

以下语句查询总金额大于60000的订单。它在GROUP BYHAVING子句中使用列别名。

SELECT
 orderNumber `Order no.`,
 SUM(priceEach * quantityOrdered) total
FROM
 orderdetails
GROUP BY
 `Order no.`
HAVING
 total > 60000;

执行上面查询语句,得到以下结果 -

mysql> SELECT
 orderNumber `Order no.`,
 SUM(priceEach * quantityOrdered) total
FROM
 orderdetails
GROUP BY
 `Order no.`
HAVING
 total > 60000;
+-----------+----------+
| Order no. | total    |
+-----------+----------+
|     10165 | 67392.85 |
|     10287 | 61402.00 |
|     10310 | 61234.67 |
+-----------+----------+
3 rows in set

请注意,不能在WHERE子句中使用列别名。原因是当MySQL评估求值WHERE子句时,SELECT子句中指定的列的值可能尚未确定。

为表指定别名

可以使用别名为表添加不同的名称。使用AS关键字在表名称分配别名,如下查询语句语法:

SELECT 字段名 FROM 数据表 AS 别名;

该表的别名称为表别名。像列别名一样,AS关键字是可选的,所以完全可以省略它。

一般在包含INNER JOINLEFT JOINself join子句和子查询的语句中使用表别名。

下面来看看客户(customers)和订单(orders)表,它们的ER图如下所示 -

A quoi sert comme dans MySQL

两个表都具有相同的列名称:customerNumber。如果不使用表别名来指定是哪个表中的customerNumber列,则执行查询时将收到类似以下错误消息:

Error Code: 1052. Column 'customerNumber' in on clause is ambiguous

为避免此错误,应该使用表别名来限定customerNumber列:

SELECT
 customerName,
 COUNT(o.orderNumber) total
FROM
 customers c
INNER JOIN orders o ON c.customerNumber = o.customerNumber
GROUP BY
 customerName
HAVING total >=5
ORDER BY
 total DESC;

执行上面查询语句,得到以下结果 -

mysql> SELECT
 customerName,
 COUNT(o.orderNumber) total
FROM
 customers c
INNER JOIN orders o ON c.customerNumber = o.customerNumber
GROUP BY
 customerName
HAVING total >=5
ORDER BY
 total DESC;
+------------------------------+-------+
| customerName                 | total |
+------------------------------+-------+
| Euro+ Shopping Channel       |    26 |
| Mini Gifts Distributors Ltd. |    17 |
| Reims Collectables           |     5 |
| Down Under Souveniers, Inc   |     5 |
| Danish Wholesale Imports     |     5 |
| Australian Collectors, Co.   |     5 |
| Dragon Souveniers, Ltd.      |     5 |
+------------------------------+-------+
7 rows in set

上面的查询从客户(customers)和订单(orders)表中选择客户名称和订单数量。 它使用c作为customers表的表别名,o作为orders表的表别名。customersorders表中的列通过表别名(co

SELECT
 customers.customerName,
 COUNT(orders.orderNumber) total
FROM
 customers
INNER JOIN orders ON customers.customerNumber = orders.customerNumber
GROUP BY
 customerName
ORDER BY
 total DESC
Le mot-clé AS étant facultatif, il peut être omis de la déclaration. Notez que vous pouvez également utiliser des alias sur les expressions.

Jetons un coup d'œil à la table employés dans l'exemple de base de données. Sa structure de table est la suivante -

rrreeeLa requête suivante sélectionne le prénom et le nom des employés et les combine pour générer le nom complet. nom. La fonction CONCAT_WS permet de concaténer les noms et prénoms. rrreee

Exécutez le code ci-dessus et obtenez les résultats suivants -🎜rrreee🎜Dans l'exemple ci-dessus, les en-têtes de colonnes sont difficiles à lire et à comprendre. Le titre de sortie peut se voir attribuer un alias de colonne significatif pour le rendre plus lisible, comme la requête suivante : 🎜rrreee🎜Exécutez le code ci-dessus et obtenez les résultats suivants - 🎜rrreee🎜Dans MySQL, vous pouvez utiliser ORDER BY, <code>GROUP BY et HAVING pour référencer la colonne. 🎜🎜La requête suivante trie les noms complets des employés par ordre alphabétique en utilisant l'alias de colonne dans la clause ORDER BY : 🎜rrreee🎜Exécutez le code ci-dessus et obtenez les résultats suivants -🎜rrreee🎜L'instruction suivante demande que le montant total est supérieur à la commande code>60000. Il utilise des alias de colonnes dans les clauses GROUP BY et HAVING. 🎜rrreee🎜Exécutez l'instruction de requête ci-dessus et obtenez les résultats suivants -🎜rrreee🎜🎜Veuillez noter que les alias de colonne ne peuvent pas être utilisés dans la clause WHERE. La raison en est que lorsque MySQL évalue la clause WHERE, la valeur de la colonne spécifiée dans la clause SELECT peut ne pas encore être déterminée. 🎜🎜🎜Spécifiez des alias pour les tables🎜🎜Vous pouvez utiliser des alias pour ajouter différents noms aux tables. Utilisez le mot-clé AS pour attribuer un alias au nom de la table, comme indiqué dans la syntaxe d'instruction de requête suivante : 🎜rrreee🎜Le nom d'alias de la table est l'alias de la table. Comme les alias de colonnes, le mot-clé AS est facultatif, il peut donc être complètement omis. 🎜🎜Les alias de table sont généralement utilisés dans les instructions contenant des clauses INNER JOIN, LEFT JOIN, self join et des sous-requêtes. 🎜🎜Jetons un coup d'œil aux tableaux des clients (customers) et des commandes (orders) Leurs diagrammes ER sont les suivants -🎜🎜A quoi sert comme dans MySQL🎜🎜Les deux tables ont les mêmes noms de colonnes : numéro client. Si vous n'utilisez pas d'alias de table pour spécifier dans quelle table se trouve la colonne customerNumber, vous recevrez un message d'erreur similaire au suivant lors de l'exécution de la requête : 🎜rrreee🎜Pour éviter cette erreur, vous devez utilisez un alias de table pour qualifier la colonne customerNumber : 🎜rrreee🎜Exécutez l'instruction de requête ci-dessus et obtenez les résultats suivants : 🎜rrreee🎜La requête ci-dessus démarre à partir des clients (clients) et commandes (orders) Sélectionnez le nom du client et la quantité commandée dans le tableau. Il utilise c comme alias de table pour la table clients et o comme alias de table pour la table commandes. Les colonnes des tables clients et commandes sont référencées via des alias de table (c et o). 🎜🎜Si vous n'utilisez pas d'alias dans la requête ci-dessus, vous devez utiliser le nom de la table pour faire référence à ses colonnes, ce qui rendra la requête longue et moins lisible, comme suit -🎜rrreee🎜【Recommandation associée : 🎜Tutoriel vidéo MySQL🎜 】🎜

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!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment ajouter une clé primaire à une table existante dans MySQL? Comment ajouter une clé primaire à une table existante dans MySQL? Aug 12, 2025 am 04:11 AM

Pour ajouter une clé primaire à une table existante, utilisez l'instruction altertable avec la clause AddPrimaryKey. 1. Assurez-vous que la colonne cible n'a pas de valeur nulle, pas de duplication et est définie comme notnull; 2. La syntaxe de clé primaire à colonne unique est le nom de table altertable addPrimaryKey (nom de colonne); 3. La syntaxe de la clé primaire de combinaison multi-colonnes est le nom de table altertable addPrimaryKey (colonne 1, colonne 2); 4. Si la colonne permet Null, vous devez d'abord exécuter Modify pour définir Notnull; 5. Chaque tableau ne peut avoir qu'une seule clé primaire et l'ancienne clé primaire doit être supprimée avant d'ajouter; 6. Si vous avez besoin de l'augmenter vous-même, vous pouvez utiliser Modify pour définir Auto_Increment. Assurer les données avant le fonctionnement

Comment sauvegarder une base de données dans MySQL Comment sauvegarder une base de données dans MySQL Aug 11, 2025 am 10:40 AM

L'utilisation de MySQLDump est le moyen le plus courant et le plus efficace de sauvegarder les bases de données MySQL. Il peut générer des scripts SQL contenant la structure et les données de la table. 1. La syntaxe de base est: mysqldump-u [nom d'utilisateur] -p [nom de base de données]> backup_file.sql. Après l'exécution, entrez le mot de passe pour générer un fichier de sauvegarde. 2. Sauvegardez plusieurs bases de données avec - Databases Databases: MySQLDump-Uroot-P --Databasesdb1db2> multiple_dbs_backup.sql. 3. Sauvegarder toutes les bases de données avec - toutes les données: MySqlDump-Uroot-P

Expliquez les stratégies d'indexation de la base de données (par exemple, B-Tree, Text complet) pour une application PHP soutenue par MySQL. Expliquez les stratégies d'indexation de la base de données (par exemple, B-Tree, Text complet) pour une application PHP soutenue par MySQL. Aug 13, 2025 pm 02:57 PM

B-TreeIndexesAreBestFormostPhpapplications, AstheySupportequality andRangequeries, Tri, andareIdEalforColumnSuseInwhere, Join, OrorderByClauses; 2.Full-TextIndexessHouldFornaturAralLanguageorBooleanSearSonTextFieldslikeArlesorProductDescriptiiReScriptidScriptidiansearchesEnTextFieldslikeArlesorProductDescripti

Comment changer le séparateur Group_Concat dans MySQL Comment changer le séparateur Group_Concat dans MySQL Aug 22, 2025 am 10:58 AM

Vous pouvez personnaliser le séparateur en utilisant le mot-clé séparateur dans la fonction group_concat (); 1. Utilisez le séparateur pour spécifier un séparateur personnalisé, comme le séparateur '; «Le séparateur peut être changé pour un semi-colon et plus d'espace; 2. Les exemples courants incluent l'utilisation du caractère de tuyau '|', de l'espace '', du caractère de rupture de ligne '\ n' ou de la chaîne personnalisée '->' comme séparateur; 3. Notez que le séparateur doit être une chaîne littérale ou expression, et la longueur du résultat est limitée par la variable Group_Concat_Max_Len, qui peut être ajustée par setSessionGroup_Concat_Max_Len = 10000; 4. Le séparateur est facultatif

Quelle est la différence entre Union et Union dans MySQL? Quelle est la différence entre Union et Union dans MySQL? Aug 14, 2025 pm 05:25 PM

UnionRemoveS aduplicate WhiceUnionAllkeepSallRowscludedingDuplications; 1. UnionPerformsDeduplication gysortingand comparingrows, retournantonylyuqueRereSults, qui fait que la doseur de solutionnaliques;

Comment verrouiller les tables dans MySQL Comment verrouiller les tables dans MySQL Aug 15, 2025 am 04:04 AM

La table peut être verrouillée manuellement à l'aide de Locktables. Le verrouillage de lecture permet à plusieurs sessions de lire mais ne peut pas être écrite. Le verrouillage d'écriture fournit des autorisations de lecture et d'écriture exclusives pour la session en cours et d'autres sessions ne peuvent pas lire et écrire. 2. Le verrou est uniquement pour la connexion actuelle. L'exécution de StartTransaction et d'autres commandes libéreront implicitement le verrou. Après le verrouillage, il ne peut accéder qu'à la table verrouillée; 3. N'utilisez-le que dans des scénarios spécifiques tels que la maintenance de la table Myisam et la sauvegarde des données. INNODB devrait donner la priorité à l'utilisation de verrous de transaction et au niveau des lignes telles que Select ... ForupDate pour éviter les problèmes de performances; 4. Une fois l'opération terminée, les déverrouillage doivent être explicitement libérés, sinon un blocage des ressources peut se produire.

Comment sélectionner les données d'un tableau dans MySQL? Comment sélectionner les données d'un tableau dans MySQL? Aug 19, 2025 pm 01:47 PM

Pour sélectionner les données de la table MySQL, vous devez utiliser l'instruction SELECT, 1. Utilisez SELECTColumn1, Column2FromTable_Name pour obtenir la colonne spécifiée, ou utilisez SELECT * pour obtenir toutes les colonnes; 2. Utilisez la clause pour filtrer les lignes, telles que SELECTNAME, AgefromUsers WHERAGEAGE> 25; 3. Utilisez l'ordre pour trier les résultats, tels que OrderByageSc, représentant l'ordre descendant de l'âge; 4. Utilisez Limit pour limiter le nombre de lignes, telles que Limit5 pour renvoyer les 5 premières lignes, ou utilisez Limit10OffSet20 pour implémenter la pagination; 5. Utiliser et, ou et parenthèses pour combiner

Comment utiliser l'opérateur in MySQL? Comment utiliser l'opérateur in MySQL? Aug 12, 2025 pm 03:46 PM

TheinOperatorInmysqlCheckSifavAlueMatcheSanyInaspeCifiedList, simplifier les éléments detins;

See all articles