MySQL 8 教程

MySQL - 主页 MySQL - 简介 MySQL - 功能 MySQL - 版本 MySQL - 变量 MySQL - 安装 MySQL - 管理 MySQL - PHP 语法 MySQL - Node.js 语法 MySQL - Java 语法 MySQL - Python 语法 MySQL - 连接 MySQL - Workbench

MySQL 8 数据库

MySQL - 创建数据库 MySQL - 删除数据库 MySQL - 选择数据库 MySQL - 显示数据库 MySQL - 复制数据库 MySQL - 数据库导出 MySQL - 数据库导入 MySQL - 数据库信息

MySQL 8 用户

MySQL - 创建用户 MySQL - 删除用户 MySQL - 显示用户 MySQL - 更改密码 MySQL - 授予权限 MySQL - 显示权限 MySQL - 撤销权限 MySQL - 锁定用户账户 MySQL - 解锁用户账户

MySQL 8 表

MySQL - 创建表 MySQL - 显示表 MySQL - 修改表 MySQL - 重命名表 MySQL - 克隆表 MySQL - 截断表 MySQL - 临时表 MySQL - 修复表 MySQL - 描述表 MySQL - 添加/删除列 MySQL - 显示列 MySQL - 重命名列 MySQL - 表锁定 MySQL - 删除表 MySQL - 派生表

MySQL 8 查询

MySQL - 查询 MySQL - 约束 MySQL - INSERT 插入查询 MySQL - SELECT 查询 MySQL - UPDATE 更新查询 MySQL - DELETE删除查询 MySQL - REPLACE 替换查询 MySQL - 忽略插入 MySQL - 重复键更新时插入 MySQL - 插入到另一个表语句

MySQL 8 视图

MySQL - 创建视图 MySQL - 更新视图 MySQL - 删除视图 MySQL - 重命名视图

MySQL 8 索引

MySQL - 索引 MySQL - 创建索引 MySQL - 删除索引 MySQL - 显示索引 MySQL - 唯一索引 MySQL - 聚集索引 MySQL - 非聚集索引

MySQL 运算符和子句

MySQL - Where 子句 MySQL - Limit 子句 MySQL - Distinct 子句 MySQL - Order By 子句 MySQL - Group By 子句 MySQL - Having 子句 MySQL - AND 运算符 MySQL - OR 或运算符 MySQL - LIKE 运算符 MySQL - IN 运算符 MySQL - ANY 运算符 MySQL - Exists 运算符 MySQL - NOT 运算符 MySQL - NOT EQUAL 运算符 MySQL - IS NULL 运算符 MySQL - IS NOT NULL 运算符 MySQL - Between 运算符 MySQL - UNION 运算符 MySQL - UNION 与 UNION ALL MySQL - MINUS 运算符 MySQL - INTERSECT 运算符 MySQL - INTERVAL 运算符

MySQL 连接

MySQL - 使用连接 MySQL - Inner Join 内连接 MySQL - LEFT JOIN 左连接 MySQL - RIGHT JOIN 右连接 MySQL - CROSS JOIN 交叉连接 MySQL - 全连接 MySQL - 自连接 MySQL - Delete Join 删除连接 MySQL - UPDATE JOIN 更新连接 MySQL - 联合 vs 连接

MySQL 键

MySQL - UNIQUE 唯一键 MySQL - PRIMARY KEY 主键 MySQL - FOREIGN KEY 外键 MySQL - 复合键 MySQL - 备用键

MySQL 触发器

MySQL - 触发器 MySQL - 创建触发器 MySQL - 显示触发器 MySQL - 删除触发器 MySQL - 插入前触发器 MySQL - 插入后触发器 MySQL - 更新前触发器 MySQL - 更新后触发器 MySQL - 删除前触发器 MySQL - 删除后触发器

MySQL 8 数据类型

MySQL - 数据类型 MySQL - VARCHAR MySQL - BOOLEAN MySQL - ENUM 枚举 MySQL - DECIMAL 十进制 MySQL - INT 整数 MySQL - FLOAT 浮点数 MySQL - BIT 位 MySQL - TINYINT 微小整数 MySQL - BLOB 二进制大对象 MySQL - SET 集合

MySQL 正则表达式

MySQL - 正则表达式 MySQL - RLIKE 运算符 MySQL - NOT LIKE 运算符 MySQL - NOT REGEXP 运算符 MySQL - regexp_instr() 函数 MySQL - regexp_like() 函数 MySQL - regexp_replace() 函数 MySQL - regexp_substr() 函数

MySQL 全文搜索

MySQL - 全文搜索 MySQL - 自然语言全文搜索 MySQL - 布尔全文搜索 MySQL - 查询扩展全文搜索 MySQL - ngram 全文解析器

MySQL8 函数和运算符

MySQL - 日期和时间函数 MySQL - 算术运算符 MySQL - 数字函数 MySQL - 字符串函数 MySQL - 聚合函数

MySQL 8 其他概念

MySQL - NULL 值 MySQL - 事务 MySQL - 序列 MySQL - 处理重复项 MySQL - SQL 注入 MySQL - 子查询 MySQL - 注释 MySQL - 检查约束 MySQL - 存储引擎 MySQL - 将表导出为 CSV 文件 MySQL - 将 CSV 文件导入数据库 MySQL - UUID MySQL - 通用表表达式 MySQL - 级联删除 MySQL - Upsert 操作 MySQL - 水平分区 MySQL - 垂直分区 MySQL - 游标 MySQL - 存储函数 MySQL - SIGNAL 异常处理 MySQL - RESIGNAL 异常处理 MySQL - 字符集 MySQL - 排序规则 MySQL - 通配符 MySQL - 别名 MySQL - ROLLUP 超级聚合 MySQL - 当前日期 MySQL - 字面量 MySQL - 存储过程 MySQL - EXPLAIN 语句 MySQL - JSON MySQL - 标准差 MySQL - 查找重复记录 MySQL - 删除重复记录 MySQL - 选择随机记录 MySQL - 显示进程列表 MySQL - 更改列类型 MySQL - 重置自动增量 MySQL - Coalesce() 函数

MySQL 8 实用资源

MySQL - 实用函数 MySQL - 语句参考 MySQL - 快速指南 MySQL - 实用资源 MySQL - 讨论


MySQL - 别名

MySQL 别名

MySQL 别名用于为 SQL 中的表或列分配一个临时名称,称为别名

别名使用 AS 关键字创建,用于引用特定的表或列而不更改其原始名称。当处理名称相似的表或列时,它们可以使查询更易于阅读。

为列名添加别名

为列名添加别名用于为表中的列分配不同的名称。

语法

列别名的基本语法如下 -

SELECT column_name
AS alias_name
FROM table_name;

示例

首先,我们使用以下查询创建一个名为 CUSTOMERS 的表 -

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

现在,让我们使用 INSERT INTO 语句将值插入上面创建的表中,如下所示 -

INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, 'Ahmedab​​ad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

获取的 CUSTOMERS 表如下 -

ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

示例

在下面的查询中,我们创建了两个别名,一个用于 ID 列,一个用于 AGE 列 -

SELECT ID AS CUST_ID, AGE
AS CUST_AGE
FROM CUSTOMERS;

输出

上述查询的输出如下所示 -

CUST_ID CUST_AGE
1 32
2 25
3 23
4 25
5 27
6 22
7 24

示例

如果我们希望别名包含空格,可以使用双引号,如以下查询所示 -

SELECT ID AS "CUST ID", AGE
AS "CUST AGE"
FROM CUSTOMERS;

输出

执行给定查询后,输出显示如下 -

CUST ID CUST AGE
1 32
2 25
3 23
4 25
5 27
6 22
7 24

示例

在下面的查询中,我们创建一个名为"INFORMATION"的别名,它合并了两列(AGE,ADDRESS)-

SELECT ID, CONCAT(AGE, ', ', ADDRESS)
AS INFORMATION
FROM CUSTOMERS;

输出

执行上述查询时,输出如下-

ID INFORMATION
1 32, Ahmedabad
2 25, Delhi
3 23, Kota
4 25, Mumbai
5 27, Bhopal
6 22, Hyderabad
7 24, Indore

表名别名

表名别名用于为表分配不同的名称。

语法

以下是表别名的语法 -

SELECT column1, column2....
FROM table_name AS alias_name

示例

让我们使用以下查询创建另一个名为 ORDERS 的表 -

CREATE TABLE ORDERS (
   OID INT NOT NULL,
   DATES DATETIME NOT NULL,
   CUSTOMER_ID INT NOT NULL,
   AMOUNT INT NOT NULL,
   PRIMARY KEY (OID)
 );

现在,让我们使用 INSERT INTO 语句将值插入上面创建的表中,如下所示 -

INSERT INTO ORDERS VALUES
(102, '2009-10-08 00:00:00', 3, 3000),
(100, '2009-10-08 00:00:00', 3, 1500),
(101, '2009-11-20 00:00:00', 2, 1560),
(103, '2008-05-20 00:00:00', 4, 2060);

获取的 ORDERS 表如下 -

OID DATES CUSTOMER_ID AMOUNT
100 2009-10-08 00:00:00 3 1500
101 2009-11-20 00:00:00 2 1560
102 2009-10-08 00:00:00 3 3000
103 2008-05-20 00:00:00 4 2060

在以下查询中,CUSTOMERS 表的别名为"C",ORDERS 表的别名为"O" -

SELECT C.ID, C.NAME, C.AGE, O.AMOUNT
FROM CUSTOMERS AS C, ORDERS AS O
WHERE C.ID = O.CUSTOMER_ID;

输出

这将产生以下结果 -

ID NAME AGE AMOUNT
3 Kaushik 23 1500
2 Khilan 25 1560
3 Kaushik 23 3000
4 Chaitali 25 2060

使用自连接进行别名化

MySQL 自连接用于将一个表与其自身连接起来,就像两个独立的表一样。自连接中的别名用于在 SQL 语句中临时重命名表,以避免混淆。

语法

以下是使用别名执行自连接的语法 -

SELECT 列名
FROM my_table a, my_table b
ON a.join_column = b.join_column

示例

现在,我们使用自连接将 CUSTOMERS 表与其自身连接,以根据客户的收入建立客户关系。

在这里,我们使用别名来创建列名和表名,以创建更有意义的结果表。

SELECT a.ID, b.NAME
AS EARNS_HIGHER, a.NAME
AS EARNS_LESS, a.SALARY
AS LOWER_SALARY
FROM CUSTOMERS a, CUSTOMERS b
WHERE a.SALARY < b.SALARY;

输出

上述查询的输出如下 −

ID EARNS_HIGHER EARNS_LESS LOWER_SALARY
2 Ramesh Khilan 1500.00
2 Kaushik Khilan 1500.00
6 Chaitali Komal 4500.00
3 Chaitali Kaushik 2000.00
2 Chaitali Khilan 1500.00
1 Chaitali Ramesh 2000.00
6 Hardik Komal 4500.00
4 Hardik Chaitali 6500.00
3 Hardik Kaushik 2000.00
2 Hardik Khilan 1500.00
1 Hardik Ramesh 2000.00
3 Komal Kaushik 2000.00
2 Komal Khilan 1500.00
1 Komal Ramesh 2000.00
6 Muffy Komal 4500.00
5 Muffy Hardik 8500.00
4 Muffy Chaitali 6500.00
3 Muffy Kaushik 2000.00
2 Muffy Khilan 1500.00
1 Muffy Ramesh 2000.00