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;
热门文章
优秀文章