MySQL Alias别名

MySQL 中的别名用于为表或表中的列提供临时名称,以用于特定查询。它用作表示表或列名的昵称。它使查询简短而整洁。

当表或列的名称不是实时用户友好时,它非常有用。它使列的名称更具可读性。MySQL 别名只能在查询期间存在。

一、MySQL Alias别名 优点

以下是 MySQL 中别名的优点:

  • 在查询中要使用多个表的情况下,这是首选。
  • 它提供了一个非常有用且灵活的功能,可以让我们快速完成复杂的任务。
  • 它使列名或表名更具可读性。
  • 在查询中使用该函数时很有用。
  • 它还可以让我们组合两个或更多列。
  • 当列名很大或不可读时,它也很有用。

二、 MySQL Alias别名 语法

以下是 MySQL 中使用的别名的基本语法:

给列起别名

SELECT col_name AS alias_name FROM table_name;  

给表起别名

SELECT col_name1, col_name2,... FROM table_name AS alias_name;  

参数说明

范围 说明
Column_Name 这是我们要创建别名的列名。
Table_Name 这是我们要创建别名的表名。
Alias_Name 这是我们将为列或表分配的临时名称。
AS 它是可选的。如果您没有指定它,则不会影响查询执行。这是程序员的选择,他们在列名的别名中使用它,而不是在表名中使用别名。

如果你想给别名加上空格,那么它必须用引号引起来。在别名列名而不是表名中提供空格通常是一个好习惯。以下语法更清楚地解释了它: 

SELECT col_name AS 'alias_name' FROM table_name; 

三、MySQL Alias别名 示例

现在,我们将了解别名在 MySQL 中是如何工作的。让我们首先使用以下查询创建一个名为“ Student_info ”的表:

CREATE TABLE Student_info(  
  stud_id int PRIMARY KEY NOT NULL,  
  stud_code varchar(15),  
  stud_name varchar(35),  
  subject varchar(25),  
  marks int  
);  

创建表后,我们需要插入一条记录。假设此表包含以下数据:

1)列别名

如果我们想使用'Roll No'作为别名从上表中获取stud_code ,请执行以下语句:

mysql> SELECT stud_code AS Roll_No FROM Student_info;  

它将返回如下输出:

同样,如果我们想使用包含空格和标记作为分数的“Roll No”来获取 stud_code,请执行以下语句:

mysql> SELECT stud_code AS 'Roll No', marks AS scores FROM Student_info; 

它将返回如下输出:

这是另一个示例,它将返回分数大于 70的学生姓名和科目。

mysql> SELECT stud_name AS 'Student Name', subject AS 'Subject', marks  
FROM Student_info    
HAVING marks > 70  
ORDER BY stud_name; 

执行成功后,我们可以看到结果集中只包含那些标记大于 70 的记录。

2)表别名

表别名允许我们用不同的名称指定表名。大多数情况下,表别名用于多个表,并使用JOIN操作连接它们。假设我们的数据库有一个名为“student”的表,其中包含以下数据:

此语句将使用表别名返回记录:

mysql> SELECT Student_details.stud_name, Student_details.phone, Student_details.marks   
FROM Students AS Student_details;  

它将给出以下输出:

让我们看另一个例子来理解使用 JOIN 操作的表别名。假设我们的数据库还有一个名为“ Student_detail ”的表,其中包含如下数据:

在这两个表中,我们可以看到它们包含相同的一列“stud_code”。如果我们在没有表别名的情况下使用它,它会给出一个错误:column 'stud_code' in one clause is ambiguous。

因此,如果我们想避免此类错误,请使用表别名概念。该SQL更清楚地解释了它:

mysql> SELECT stud_name, branch, grade, phone  
FROM Students AS S  
INNER JOIN Student_detail AS D  
ON S.stud_code=D.stud_code  
ORDER BY grade;  

成功执行上述语句后,我们将得到如下输出:

如果您不想在SQL中使用别名概念,那么 MySQL 使用表名来标识列名。此过程使语句冗长且可读性差,如下所示:

mysql> SELECT stud_name, branch, grade, phone  
FROM Students INNER JOIN Student_detail   
ON Students.stud_code=Student_detail.stud_code  
ORDER BY grade; 

 

热门文章

优秀文章