SQL进阶知识(一)——Aliases 别名

简介: SQL数据库开发

30.jpg


通过使用 SQL,可以为表名称或列名称指定别名(Alias)。

SQL 别名(Aliases)

SQL 别名用于为表或表中的列提供临时名称。

SQL 别名通常用于使列名更具可读性。

SQL 一个别名只存在于查询期间。

列的 SQL Alias 语法

SELECT column_name AS alias_name

FROM table_name;

表的 SQL Alias 语法

SELECT column_name(s)  

FROM table_name AS alias_name;

演示数据库

以下是"Customers" 表中的数据:

50.jpg

下面是选自 "Orders" 表的数据:

51.jpg

列的 Alias 实例

以下SQL语句创建两个别名,一个用于ID列,另一个用于姓名列:

实例

SELECT ID as CustomerID,

姓名 AS Customer
FROM Customers;

以下SQL语句创建两个别名,一个用于姓名列,一个用于城市列。注:如果别名包含空格,则需要双引号或方括号:

实例

SELECT 姓名 AS Customer,

城市 AS [City Name]
FROM Customers;

以下SQL语句创建一个名为“地址”的别名,它包含四列(姓名,地址,邮编,城市 and 省份):

SELECT 姓名,
地址 + ', ' +
邮编 + ' ' +
城市 + ', ' +
省份 AS 地址
FROM Customers;

注意:要使上面的SQL语句在MySQL中工作,请使用以下命令:

SELECT 姓名,
CONCAT(地址,', ',
邮编,', ',
城市,', ',
省份) AS Address
FROM Customers;


在下列情况下使用别名是有用的:

  • 查询涉及多个表

  • 用于查询函数
  • 需要把两个或更多的列放在一起
  • 列名长或可读性差

表别名的基本语法如下:

SELECT column1, column2....
FROM table_name AS alias_name
WHERE [condition];

列别名的基本语法如下:

SELECT column_name AS alias_name
FROM table_name WHERE [condition];

示例:

考虑下面两个数据表,(a)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 | MP        |  4500.00 |

|  7 | Muffy    |  24 | Indore    | 10000.00 |

+----+----------+-----+-----------+----------+

(b)另一个是 ORDERS 表,如下所示:

+-----+---------------------+-------------+--------+

|OID  | DATE                | CUSTOMER_ID | AMOUNT |

+-----+---------------------+-------------+--------+

| 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 |

+-----+---------------------+-------------+--------+

下面是表别名的用法:

SQL> 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 |   3000 |

|  3 | kaushik  |  23 |   1500 |

|  2 | Khilan   |  25 |   1560 |

|  4 | Chaitali |  25 |   2060 |

+----+----------+-----+--------+

下面是列别名的用法:

SQL> SELECT  ID AS CUSTOMER_ID,
NAME AS CUSTOMER_NAME      
FROM CUSTOMERS      
WHERE SALARY IS NOT NULL;

其运行结果如下所示:

+-------------+---------------+

| CUSTOMER_ID | CUSTOMER_NAME |

+-------------+---------------+

|           1 | Ramesh        |

|           2 | Khilan        |

|           3 | kaushik       |

|           4 | Chaitali      |

|           5 | Hardik        |

|           6 | Komal         |

|           7 | Muffy         |

+-------------+---------------+

相关文章
|
4月前
|
SQL 关系型数据库 MySQL
【MySQL进阶之路丨第十四篇】一文带你精通MySQL重复数据及SQL注入
【MySQL进阶之路丨第十四篇】一文带你精通MySQL重复数据及SQL注入
79 0
|
11月前
|
SQL Java 数据库连接
MyBatis进阶:掌握MyBatis动态SQL与模糊查询、结果映射
MyBatis进阶:掌握MyBatis动态SQL与模糊查询、结果映射
336 0
|
3月前
|
SQL PHP
thinkphp之进阶sql语法,持续更新
thinkphp之进阶sql语法,持续更新
23 0
|
2月前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
【7月更文挑战第26天】在 Web 开发中, SQL 注入与 XSS 攻击常令人担忧, 但掌握正确防御策略可化解风险. 对抗 SQL 注入的核心是避免直接拼接用户输入至 SQL 语句. 使用 Python 的参数化查询 (如 sqlite3 库) 和 ORM 框架 (如 Django, SQLAlchemy) 可有效防范. 防范 XSS 攻击需严格过滤及转义用户输入. 利用 Django 模板引擎自动转义功能, 或手动转义及设置内容安全策略 (CSP) 来增强防护. 掌握这些技巧, 让你在 Python Web 开发中更加安心. 安全是个持续学习的过程, 不断提升才能有效保护应用.
42 1
|
3月前
|
SQL 存储 关系型数据库
MySQL数据库进阶第二篇(索引,SQL性能分析,使用规则)
MySQL数据库进阶第二篇(索引,SQL性能分析,使用规则)
|
3月前
|
SQL 存储 安全
SQL入门与进阶:数据库查询与管理的实用指南
一、引言 在数字化时代,数据库已经成为各行各业存储、管理和分析数据的关键基础设施
|
3月前
|
SQL XML Java
Mybatis进阶——动态SQL(1)
Mybatis进阶——动态SQL(1)
32 3
|
4月前
|
SQL 关系型数据库 MySQL
【MySQL进阶之路 | 基础篇】SQL概述
【MySQL进阶之路 | 基础篇】SQL概述
|
3月前
|
SQL 安全 数据库
SQL实践指南:从基础到进阶的数据库查询与管理
一、引言 在数据驱动的时代,数据库已成为各行各业不可或缺的一部分
|
4月前
|
SQL 存储 关系型数据库
MySQL进阶-增删查改(全网最详细sql教学)-3
MySQL进阶-增删查改(全网最详细sql教学)
37 0