SQL79 别名

文章描述了如何使用SQL语句从Vendors表中检索数据,重命名vend_name为vname,vend_city为vcity,vend_address为vaddress,并按vend_name升序排序。示例提供了创建和填充Vendors表的SQL命令以及预期的查询结果。

描述

别名的常见用法是在检索出的结果中重命名表的列字段(为了符合特定的报表要求或客户需求)。有表Vendors代表供应商信息,vend_id供应商id、vend_name供应商名称、vend_address供应商地址、vend_city供应商城市。

vend_id

vend_name

vend_address

vend_city

a001

tencent cloud

address1

shenzhen

a002

huawei cloud

address2

dongguan

a003

aliyun cloud

address3

hangzhou

a003

netease cloud

address4

guangzhou

【问题】编写 SQL 语句,从 Vendors 表中检索vend_id、vend_name、vend_address 和 vend_city,将 vend_name重命名为 vname,将 vend_city 重命名为 vcity,将 vend_address重命名为 vaddress,按供应商名称对结果进行升序排序。

【示例结果】返回vend_id 供应商id、vname 供应商名称、vaddress供应商地址、vcity供应商城市。

vend_id

vname

vaddress

vcity

a003

aliyun cloud

address3

hangzhou

a002

huawei cloud

address2

dongguan

a003

netease cloud

address4

guangzhou

a001

tencent cloud

address1

shenzhen

示例1

输入:

DROP TABLE IF EXISTS `Vendors`;

CREATE TABLE IF NOT EXISTS `Vendors` (

`vend_id` VARCHAR(255) NOT NULL COMMENT '供应商id',

`vend_name` VARCHAR(255) NOT NULL COMMENT '供应商名称',

`vend_address` VARCHAR(255) NOT NULL COMMENT '供应商地址',

`vend_city` VARCHAR(255) NOT NULL COMMENT '供应商城市'

);

INSERT INTO `Vendors` VALUES ('a001','tencent cloud','address1','shenzhen'),

('a002','huawei cloud','address2','dongguan'),

('a003','aliyun cloud','address3','alibaba');

复制

输出:

vend_id|vname|vaddress|vcity

a003|aliyun cloud|address3|alibaba

a002|huawei cloud|address2|dongguan

a001|tencent cloud|address1|shenzhen

答案

select vend_id,vend_name as vname,vend_address as vaddress,vend_city as vcity 
from Vendors
order by vend_name asc  --要求根据供应商名称升序排序,使用原来字段的名称排序
### SQL别名的介绍 SQL 别名是为 SQL 语句中的指定的一个临时名称。使用别名可以简化 SQL 语句,提高代码的可读性,尤其在涉及多连接的复杂查询中,能使查询语句更加简洁明了。同时,当名很长者在自连接(一个与自身进行连接)时,别名能避免混淆,让查询逻辑更清晰。 ### SQL别名的使用方法 在 SQL 中,为指定别名有两种常见的语法: - 显式使用 `AS` 关键字:`table_name AS alias_name`。 - 隐式省略 `AS` 关键字:`table_name alias_name`。 ### 示例 以下是不同场景下使用 SQL 别名的示例: #### 单查询使用别名 假设有一个名为 `employees` 的,包含 `employee_id`、`first_name`、`last_name` 和 `salary` 等列。 ```sql -- 显式使用 AS 关键字 SELECT e.employee_id, e.first_name, e.last_name, e.salary FROM employees AS e; -- 隐式省略 AS 关键字 SELECT e.employee_id, e.first_name, e.last_name, e.salary FROM employees e; ``` 在上述示例中,将 `employees` 别名为 `e`,在 `SELECT` 子句中使用别名来引用中的列,使代码更简洁。 #### 多连接使用别名 假设有两个:`employees` 和 `departments` ,`employees` 中有 `department_id` 列,`departments` 中有 `department_id` 和 `department_name` 列。 ```sql -- 显式使用 AS 关键字 SELECT e.employee_id, e.first_name, e.last_name, d.department_name FROM employees AS e JOIN departments AS d ON e.department_id = d.department_id; -- 隐式省略 AS 关键字 SELECT e.employee_id, e.first_name, e.last_name, d.department_name FROM employees e JOIN departments d ON e.department_id = d.department_id; ``` 在这个多连接的示例中,分别为 `employees` 和 `departments` 指定了别名 `e` 和 `d`,通过别名来引用中的列,使查询语句更易读,也避免了列名冲突。 #### 自连接使用别名 假设 `employees` 中有 `employee_id`、`first_name`、`last_name` 和 `manager_id` 列,要查询每个员工及其经理的信息。 ```sql -- 显式使用 AS 关键字 SELECT e1.employee_id, e1.first_name, e1.last_name, e2.first_name AS manager_first_name, e2.last_name AS manager_last_name FROM employees AS e1 JOIN employees AS e2 ON e1.manager_id = e2.employee_id; -- 隐式省略 AS 关键字 SELECT e1.employee_id, e1.first_name, e1.last_name, e2.first_name AS manager_first_name, e2.last_name AS manager_last_name FROM employees e1 JOIN employees e2 ON e1.manager_id = e2.employee_id; ``` 在自连接中,为同一个指定不同的别名 `e1` 和 `e2`,将其视为两个不同的进行连接,从而查询员工及其经理的信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值