MySQL中的别名用于为特定查询的表或表中的列提供临时名称,它用作表示表或列名称的昵称。
当表或列名不是实时的用户友好时,这将非常有用。它使列的名称更具可读性。 MySQL别名只能存在于查询中。
以下是MySQL中使用的别名的基本语法:
对于列
SELECT col_name AS alias_name FROM table_name;
用于表
SELECT col_name1, col_name2,... FROM table_name AS alias_name;
下表详细说明了参数:
参数 | 说明 |
---|---|
col_name | 这是要创建别名的列名。 |
table_name | 这是要创建别名的表名。 |
alias_name | 这是要为列或表分配的临时名称。 |
AS | 这是可选的。如果未指定,则对查询执行没有影响。程序员选择他们在列名的别名期间使用它,而不在表名中使用别名。 |
如果您想给别名加上空格,则必须将其用引号引起来。通常最好在列名(而不是表名)中使用别名作为空格。以下语法对其进行了更清晰的说明:
SELECT col_name AS 'alias_name' FROM table_name;
现在,无涯教程将了解别名在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 );
创建表后,需要插入一条记录。假设此表包含以下数据:
如果要使用'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的Student Name和 Subject。
mysql> SELECT stud_name AS 'Student Name', subject AS 'Subject', marks FROM Student_info HAVING marks > 70 ORDER BY stud_name;
成功执行后,无涯教程可以看到结果集仅包含标记大于70的那些记录。
它允许用不同的名称指定表名称。通常,表别名用于多个表,并使用 JOIN 操作将它们连接起来。
假设的数据库有一个名为" Students"的表,其中包含以下数据:
该语句将使用表别名返回记录:
mysql> SELECT Student_details.stud_name, Student_details.phone, Student_details.marks FROM Students AS Student_details;
它将给出以下输出:
让无涯教程看另一个示例,以了解使用JOIN操作的表别名。假设数据库还有一个名为" Student_detail "的表,其中包含以下数据:
在这两个表中,可以看到它们包含相同的一列" stud_code"。如果不使用表别名而使用它,则会出现一个错误,该错误表示:一个子句中的列" stud_code"不明确。
因此,如果要避免此类错误,请使用表别名概念。该语句更清楚地说明了这一点:
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;
成功执行以上语句后,无涯教程将获得以下输出:
如果您不想在查询中使用别名概念,则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;
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)