English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本教程中,您将学习如何在SQL语句中为表或表列指定简短的别名。
当多个表被加入在一个单一的查询,你需要每一列的名字前面加上所属的表的名称,像employees.dept id, departments.dept id等,以避免混乱和模糊列错误情况下不同表中的列有相同的名称。但是,如果表名很长,并且多次出现在查询中,那么编写查询将成为一项困难和恼人的任务。
因此,为了节省时间并避免编写完整的表名,可以为每个表提供一个简短的别名,并在查询中使用该别名来引用其列。
为了清楚地理解这一点,让我们来看看下面employees和departments表。
+--------+--------------+------------+---------+ | emp_id | emp_name | hire_date | dept_id | +--------+--------------+------------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 4 | | 2 | Tony Montana | 2002-07-15 | 1 | | 3 | Sarah Connor | 2005-10-18 | 5 | | 4 | Rick Deckard | 2007-01-03 | 3 | | 5 | Martin Blank | 2008-06-24 | NULL | +--------+--------------+------------+---------+ | +---------+------------------+ | dept_id | dept_name | +---------+------------------+ | 1 | Administration | | 2 | Customer Service | | 3 | Finance | | 4 | Human Resources | | 5 | Sales | +---------+------------------+ | |
表: employees | 表: departments |
下面是一个查询,通过使用公共的dept id字段将雇员和部门表连接在一起,来检索雇员的id、名称和他们的部门名称。
SELECT employees.emp_id, employees.emp_name, departments.dept_name FROM employees LEFT JOIN departments ON employees.dept_id = departments.dept_id ORDER BY emp_id;
Voici la version compressée de la requête précédente utilisant un alias de table :
SELECT t1.emp_id, t1.emp_name, t2.dept_name FROM employees AS t1 LEFT JOIN departments AS t2 ON t1.dept_id = t2.dept_id ORDER BY emp_id;
Si vous exécutez l'une de ces instructions, vous obtiendrez la même sortie, comme suit :
+--------+-----------------+--------------------+ | emp_id | emp_name | dept_name | +--------+-----------------+--------------------+ | 1 | Ethan Hunt | Ressources humaines | | 2 | Tony Montana | Administration | | 3 | Sarah Connor | Ventes | | 4 | Rick Deckard | Finance | | 5 | Martin Blank | NULL | +--------+-----------------+--------------------+
Comme vous le voyez, l'utilisation des alias de table peut économiser beaucoup de temps d'écriture.
Voir " JOINS SQLPartie, pour en savoir plus sur les jointures de table.
Dans MySQL, lorsque vous utilisez des fonctions SQL pour générer une sortie personnalisée, le nom de la colonne de sortie peut être difficile à comprendre ou difficile à comprendre. Dans ce cas, vous pouvez utiliser un alias pour nommer temporairement la colonne de sortie.
Considérez l'expression suivante, où nous reformattons la date de la colonne hire_date pour générer une sortie personnalisée :
-- Le syntaxe de la base de données MySQL SELECT emp_name, DATE_FORMAT(hire_date, '%M %e, %Y') FROM employees;
Si vous exécutez l'instruction ci-dessus, vous obtiendrez la sortie suivante :
+--------------+-------------------------------------+ | emp_name | DATE_FORMAT(hire_date, '%M %e, %Y') | +--------------+-------------------------------------+ | Ethan Hunt | May 1, 2001 | | Tony Montana | July 15, 2002 | | Sarah Connor | October 18, 2005 | | Rick Deckard | January 3, 2007 | | Martin Blank | June 24, 2008 | +--------------+-------------------------------------+
Comme vous le voyez, l'étiquette de la dernière colonne de la sortie est très longue et peu élégante. Nous pouvons utiliser un alias de colonne pour résoudre ce problème, comme suit :
-- Le syntaxe de la base de données MySQL SELECT emp_name, DATE_FORMAT(hire_date, '%M %e, %Y') AS hire_date FROM employees;
如果执行上面的语句,您将获得更具可读性的输出,如下所示:
+--------------+------------------+ | emp_name | hire_date | +--------------+------------------+ | Ethan Hunt | May 1, 2001 | | Tony Montana | July 15, 2002 | | Sarah Connor | October 18, 2005 | | Rick Deckard | January 3, 2007 | | Martin Blank | June 24, 2008 | +--------------+------------------+