使用数据库别名

您所在的位置:网站首页 用navicat创建表怎么添加列 使用数据库别名

使用数据库别名

2024-07-06 19:31| 来源: 网络整理| 查看: 265

使用数据库别名 2023 年 7 月 10 日,由 Robert Gravelle 撰写

SQL 支持使用别名为表或列指定临时名称。别名不仅可以减少输入量,还可以使查询更易于阅读和理解。在今天的文章中,我们将学习如何在使用 Navicat Premium 16.2 在查询中使用别名。

SQL 别名概述

如介绍中所述,表名和列名均可使用别名。下面是每个别名的语法:

列别名语法 SELECT column_name [AS] alias_name, column_name AS 'Alias Name' -- for names with spaces FROM table_name; 表别名语法 SELECT column_name(s) FROM table_name [AS] alias_name;

关于使用别名,有两点需要考虑:

别名通常使用 AS 关键字指定,但是可以选择省略。 别名仅存在于该查询时间内。 在 JOIN 查询中的表别名

以下是针对 Sakila 示例数据库的查询,以获取有关特定电影的所有副本的信息:

SELECT * FROM film f INNER JOIN inventory i ON i.film_id = f.film_id WHERE i.store_id = 1 AND f.title = "Academy Dinosaur";

在上述查询中,由于 film 和 inventory 表都包含 film_id 列,因此名称必须是完全限定的,即在列名前加上表名。在这种情况下,就可以使用别名来缩短语句。

以下是在 Navicat 中的查询及其结果:

film_query (80K) 列别名

在列名方面,设计数据库表时通常会使用缩写来简化列名。例如:

"so_no" 代表 "sales order number"。 "qty" 代表 "quantity"。

在这种情况下,可以使用列别名来使列内容更加直观易懂。以下是一个例子:

SELECT inv_no AS invoice_no, amount, due_date AS 'Due date', cust_no 'Customer No' FROM invoices;

当然,你也可以为表达式指定列别名,如下图所示:

expression_alias (113K)

上述查询选择了产品当前的价格和涨价后的价格。

列别名的限制

由于列别名是在 SELECT 子句中指定的,因此你只能在 SELECT 子句之后评估的子句中引用列别名。因此,你不能在 WHERE 子句中使用别名,否则会引发错误:

alias_error (42K)

这是因为数据库在评估 SELECT 子句之前评估 WHERE 子句。因此,在评估 WHERE 子句时,数据库没有 NewPrice 列别名的信息。

但是,在 ORDER BY 子句中使用列别名是可以的,因为它是在 SELECT 子句之后评估的:

alias_in_order_by (113K)

数据库按以下顺序评估查询的子句:

FROM > SELECT > ORDER BY

表别名与 Navicat

在 Navicat 中,一旦定义了表别名,它将出现在自动补全列表中。

alias_in_navicat (65K)

因此,使用别名就更加省时方便!

关于使用数据库别名的结语

在今天的文章中,我们学习了如何在使用 Navicat Premium 16.2 在查询中使用别名。它是一种可使查询更加易读和易懂的简单方法,这是很重要的,因为代码不仅是用于执行,还是一种沟通机制。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3