SQL列的别名简介

228 阅读4分钟

SQL Column Alias

SQL列别名简介

SQL列别名是可以分配给SQL查询语句中的任何对象的替代名称,包括表和列的名称,这有助于用一个替代的小词来访问和引用这些对象,这就是别名,使其易于指定。在使用别名时,我们必须注意我们用来指定别名的名称。别名的名称应该是有意义的,并且与被分配到的对象相关。别名的使用范围只限于它所使用的查询语句。

语法和用法。

name_of_column AS name_of_alias

其中name_of_column是我们必须为其指定替代名称的表列,name_of_alias是替代名称或临时名称,在查询语句中可以进一步引用被指定的列的表。我们可以对列和表都使用别名。

列的别名

别名是可以通过指定不同的列和列的组合来为从查询语句中检索到的值指定的替代名称。别名也可以被分配给表名。使用别名的好处是,当列名较大时,可以指定较短的名称,当查询中使用不同的连接的多个表有相同名称的列时,表的别名可以帮助确定哪个表的列应该被检索或应用的条件,当执行聚合函数和其他列值的组合操作时,检索的值可以被指定一个名称,而不是执行的整个表达式,这使得结果记录的读取有意义,更容易进行分析。

让我们使用以下查询语句创建一个名为educba_learning的表。

代码。

CREATE TABLE educba_learning (
topic_id INT NOT NULL ,
subject VARCHAR(100) DEFAULT NULL,
sessions INT DEFAULT '0',
expert_name VARCHAR(100) DEFAULT NULL,
charges DECIMAL(7,2) DEFAULT '0.00')

让我们在educba_learning表中插入一些记录。

代码。

INSERT INTO educba_learning (topic_id, subject, sessions, expert_name, charges) VALUES
(1, 'SQL', '750', 'Payal Udhani', 75000),
(2, 'MySQL', '700', 'Siddharth Udhani', 35000),
(3, 'PostgreSQL', '600', 'Sonam Udhani', 45000),
(4, 'Hadoop', '980', 'Heena Udhani', 65000);

输出。

SQL Column Alias 1

让我们首先通过简单的使用以下查询语句来检索表的所有记录,检索表的所有列和行。

代码。

SELECT * FROM educba_learning;

输出。

retrieve all the records

现在,假设我们要检索的记录必须包含主体的名称和每节课的费用。这可以通过简单地将收费列除以会话列来计算。

代码。

SELECT subject, charges/sessions FROM educba_learning;

输出。

results must contain the name of the subject and the charges per session

如果我们不使用收费/会话,而是用其他名称来检索这一列,例如 "每节课的收费",并将主题称为 "主题",那么可以使用以下别名。

代码。

SELECT SUBJECT AS "Subject", charges/sessions AS "Charges Per Session" FROM educba_learning;

输出。

SQL Column Alias 4

让我们再考虑一个例子,引用一个名为educba_experts的表,其内容在下面的查询语句的输出中显示。

代码。

SELECT * FROM educba_experts;

执行上述查询语句的输出结果如下,包含表educba_experts的结构和内容。

输出结果。

SQL Column Alias 5

我们可以看到,列expert_name和join_date_time的名字太大,在查询中使用它们时,我们可以为这些列指定别名,并通过这些别名来引用它们。再考虑一个名为educba_articles的表,该表有存储在educba_experts表中的专家撰写的主题。在educba_articles表中对专家的引用是由一个名为expert_id的列完成的,该列存储了educba_experts表的id值,以引用哪位专家撰写的文章。educationba_articles表的结构和内容如以下查询语句的输出所示。

代码。

SELECT * FROM `educba_articles`;

执行上述查询语句的输出是一个包含表educba_articles的结构和内容的如下。

输出。

containing the structure and contents of the table educba_ articles

现在,我们想检索文章的名字和专家的名字以及专家的加入日期和时间,还有文章被分配的日期和文章的状态。要做到这一点,我们必须对表educba_articles和educba_experts进行连接,因为专家的详细信息,如姓名和加入日期-时间都存储在该表中。我们的查询语句将如下所示,在其中我们将使用列的别名来重命名它们,同时检索它们的值。

代码。

SELECT
educba_articles. ` name` AS "Article Name",
educba_articles. `assigned_date` AS "Date Of Assignment",
educba_experts. expert_name AS "Name Of Expert",
educba_experts. joining_date_time AS "Joining of Expert",
educba_articles. ` status` AS "Status"
FROM
educba_articles
JOIN educba_experts
ON educba_articles.expert_id = educba_experts.id ;

执行上述查询语句的输出结果如下,包含两个表的内容和我们选择检索的列,以及由于使用别名而修改的列的标题。

输出。

SQL Column Alias 7

结论 - SQL列别名

别名使对列的引用更容易,因为它们提供了一种设施,在查询语句的范围内,以一个临时的替代名称来引用这些对象。当列的名称太大或者不那么有意义时,别名证明是有帮助的。