A quoi sert comme dans 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.
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 BY
,GROUP BY
和HAVING
子句中的列别名来引用该列。
以下查询使用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 BY
和HAVING
子句中使用列别名。
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 JOIN
,LEFT JOIN
,self join
子句和子查询的语句中使用表别名。
下面来看看客户(customers
)和订单(orders
)表,它们的ER图如下所示 -
两个表都具有相同的列名称: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
表的表别名。customers
和orders
表中的列通过表别名(c
和o
SELECT customers.customerName, COUNT(orders.orderNumber) total FROM customers INNER JOIN orders ON customers.customerNumber = orders.customerNumber GROUP BY customerName ORDER BY total DESCLe 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 -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 -🎜🎜 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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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

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

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

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

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

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.

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

TheinOperatorInmysqlCheckSifavAlueMatcheSanyInaspeCifiedList, simplifier les éléments detins;
