首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >这些选择查询之间的差异

这些选择查询之间的差异
EN

Stack Overflow用户
提问于 2015-06-09 00:57:41
回答 5查看 74关注 0票数 0
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT cust_email  FROM  customer AS c WHERE c.cust_email="pankaj@yahoo.com"
SELECT cust_email  FROM  customer  WHERE cust_email="pankaj@yahoo.com"

我有这两个执行相同操作的sql查询,我的问题是,给客户另一个名称来选择数据有什么用呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-06-09 00:59:44

这就是所谓的别名。在你的情况下,这不是必需的。

当当前名称不方便、矛盾或未知(用于组函数)时,可以使用它来简化查询。

  1. 在联接查询中具有矛盾性的示例。我们有两张桌子:

用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Id         int (PK)
Name       nvarchar(50)

图书

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Id         int (PK)
UserId     int (FK)
Name       nvarchar(30)

现在,如果您查询两个表,这将是矛盾的,因为名称是相似的。在这里,您可以使用别名:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT u.Id as UserId, u.Name as UserName, b.Name AS BookName
FROM Users AS u
INNER JOIN Books AS b
ON u.Id = b.UserId

你会得到结果的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
| UserId | UserName | BookName |
--------------------------------
|   1    |   John   | Book123  |
|   2    |   Mark   | BookXYZ  |
etc...

如果您对同名的列进行连接,必须使用别名。否则,这将是一个错误的语法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
INNER JOIN Books ON Id = Id ???
  1. 组函数命名。 例如,在函数查询中,like.SELECT COUNT(*) as RowsCount从用户选择CONCAT(FirstName、“”、LastName、“”、MiddleName)作为FullName

您可以使用列别名来设置名称,并在SQL读取器或其他地方访问它。

  1. 在某些情况下,为了方便起见,可以使用它对列进行别名,例如: 从HasUserEverBeenOnAHelpPage中选择Id,SomeTable作为值

并获取

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
| UserId | Value |
------------------
|   1    | true  |
|   2    | false |

而不是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
| UserId | HasUserEverBeenOnAHelpPage |
---------------------------------------
|   1    | true                       |
|   2    | false                      |

这并不意味着它不能在其他情况下使用。有时,它甚至被用于代码可读性和程序员的方便性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT u.Id,
       u.FirstName,
       u.LastName,
       ua.City,
       ua.AddressLine,
       ua.PostalCode,
       us.Language,
       us.IsCookieEnabled,
       lh.LastEnterDate
FROM Users as u
INNER JOIN UserAddresses as ua
ON ua.UserId = u.Id
INNER JOIN UserSettings as us,
ON us.UserId = u.Id
INNER JOIN LoginHistory as lh
ON lh.UserId = u.Id

在这种情况下,名称不是矛盾的,这个查询可以很容易地完成没有别名。然而,与它们一起工作更方便:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT Users.Id,
       Users.FirstName,
       Users.LastName,
       UserAddresses.City,
       UserAddresses.AddressLine,
       UserAddresses.PostalCode,
       UserSettings.Language,
       UserSettings.IsCookieEnabled,
       LoginHistory.LastEnterDate
FROM Users
INNER JOIN UserAddresses
ON UserAddresses.UserId = Users.Id
INNER JOIN UserSettings
ON UserSettings .UserId = Users.Id
INNER JOIN LoginHistory
ON LoginHistory .UserId = Users.Id

点击此处阅读更多信息:

alias.asp

When to use SQL Table Alias

http://www.techonthenet.com/sql/alias.php

票数 3
EN

Stack Overflow用户

发布于 2015-06-09 00:59:35

在这种情况下,无论发生什么,它都没有任何区别。

但是,当您有一个使用多个带有联接的表的查询时,使用表名的别名可以使查询更具可读性。但是,我使用了一个命名约定,它将使表名的别名完全无用(除了多次加入同一个表时)。You can read about it here.

从性能的角度来看,它不会改变任何事情。

票数 0
EN

Stack Overflow用户

发布于 2015-06-09 01:00:12

当从单个表进行查询时,使用别名是不必要的(但习惯使用别名是很好的做法)。

当查询多个表、连接等时(特别是当同一个表被多次引用时),就需要它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from Customer c join Email e on e.cust_id = c.id

此外,在嵌套选择中使用是明智的,特别是当多个表共享相同的列名时。这是为了确保引用的是要引用的表中的列,而不是另一列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30727413

复制
相关文章
RabbitMQ与Kafka之间的差异
被概括为“开源分布式消息代理”,用Erlang编写,有助于在复杂的路由方案中有效地传递消息,可以通过服务器上启用的插件进行扩展,高可用(队列可以在集群中的机器上进行镜像)
ruochen
2021/11/25
4.1K0
进程、会话、连接之间的差异
--======================== -- 进程、会话、连接之间的差异 --========================     在使用Oracle database的时候,连接与会话是我们经常碰到的词语之一。咋一看貌似一回事,事实则不然。一个连接上可以建立零个、 一个、甚至多个会话。啊,咋这样呢?是的,没错。这也是我们经常误解的原因。     各个会话之间是单独的,独立于其他会话,即便是同一个连接的多个会话也是如此。 一、几个术语之间的定义(参照Oracle 9i &10g 编程艺术)         连接(connection):连接是从客户到Oracle 实例的一条物理路径。连接可以在网络上建立,或者通过IPC 机制建立。通常会在     客户进程与一个专用服务器或一个调度器之间建立连接。         会话(session):会话是实例中存在的一个逻辑实体。这就是你的会话状态(session state),也就是表示特定会话的一组内存     中的数据结构.提到"数据库连接"时,大多数人首先想到的就是“会话”。你要在服务器中的会话上执行SQL、提交事务和运行存储过程。 二、通过例子演示来查看之间的关系 1. 无连接,无会话,无进程的情形
Leshami
2018/08/14
2K0
PostgreSQL 和 MySQL 之间的性能差异
在管理数据库时,性能是一项非常重要而又复杂的任务。它可能会受到系统的配置、硬件甚至设计的影响。有趣的是,PostgreSQL和MySQL都配置了兼容性和稳定性,这取决于我们的数据库设计的硬件基础架构。
肉眼品世界
2022/04/19
8.4K0
PostgreSQL 和 MySQL 之间的性能差异
Snap, AppImage和 Flatpak之间差异
早些时候,想要为各种Linux发行版分发应用程序的开发人员在打包方面面临许多挑战。这是因为市场上有许多Linux发行版,并且都使用不同的包管理系统。
从大数据到人工智能
2022/01/18
7.8K0
String与StringBuffer与StringBuilder之间的差异
参考链接: Java stringbuffer和stringbuilder之间的差异
用户7886150
2021/02/26
9230
网站建设公司之间的成本差异
随着互联网和移动互联网的迅速发展,企业网站也被视为企业在互联网上不可或缺的网络门面。网站建设行业的发展越来越受到人们的认可。随着网站建设的普及,网站建设的价格也不尽相同。现在网站建设的成本从几百元到几千元,甚至几万元甚至几十万元。很多人都会怀疑为什么价差这么大。今天就这个问题给大家来分析一下网站建设成本的差异。
华专网络
2022/11/28
2K0
网站建设公司之间的成本差异
canvas 和 SVG 以及 VML 之间的差异
<canvas> 标记和 SVG 以及 VML 之间的一个重要的不同是,<canvas> 有一个基于 JavaScript 的绘图 API,而 SVG 和 VML 使用一个 XML 文档来描述绘图。
acoolgiser
2019/01/17
1.6K0
Python 3.10 和 Python 3.9 之间的差异
在过去的几十年里,Python 在编程或脚本语言领域为自己创造了一个名字。python 受到高度青睐的主要原因是其极端的用户友好性。Python 还用于处理复杂的程序或编码挑战。机器学习 (ML)、人工智能 (AI) 和数据科学等新兴领域也满足了学习这种语言的高需求。与 Java、C# 和其他语言等传统语言相比,Python 是一种强大的编程语言,迅速成为开发人员、数据科学家和 AI/ML 爱好者的最爱。
海拥
2021/12/20
3.3K0
对于 JavaScript 中循环之间的技术差异概述
在 JavaScript 中使用循环时,需要理解两个关键点:可枚举的属性和可迭代的对象。
前端小智@大迁世界
2022/06/15
1.8K0
对于 JavaScript 中循环之间的技术差异概述
可枚举对象的一个定义特征是,当通过赋值操作符向对象分配属性时,我们将内部 enumerable 标志设置为true,这是默认值。
前端小智@大迁世界
2020/09/24
1.9K0
matlab展示两个向量之间的差异
叶茂林
2023/10/07
2280
matlab展示两个向量之间的差异
浅谈C、Java与Python之间的小差异
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:浅谈C、Java与Python之间的小差异 ---- 本文目录 1.变量是什么 1.1 C认为变量应该是容器 1.2 Python认为变量应该是标签 1.3 Java认为我们不应该关心这个问题 2.循环与迭代 2.1 传统的循环 2.2 继承与发展 2.3 新的问题 3.尾声 3.1 万物皆对象 3.2 C的自增
小嗷犬
2022/11/15
8200
性能测试、负载测试、压力测试-之间的差异
性能测试是一种用于确定计算机、网络或设备速度的测试。它通过在不同的负载场景中传递不同的参数来检查系统组件的性能。
wangmcn
2022/07/26
1.8K0
性能测试、负载测试、压力测试-之间的差异
图文并茂解释Kotlin == 和 === 之间的差异
Kotlin最近风头正劲,作为一个去年就关注这门语言,并且向朋友安利这门语言的小司机终于扬眉吐气了一回,自己选择没有错。 最近在一个Kotlin群里,看到大家在讨论一个问题,是关于 == 和 === 的问题,看官方文档解释的意思大概是这样子的 两个等号== == 两个等号意思与Java中的 equals 意思一样,就比如 var a = "字符串" print(a == "字符串") 这段代码在Kotlin中打印出来值就是true 三个等号=== === 三个等号的意思,则比较的是内存地址:就比
Xiaolei123
2018/06/28
2K0
聊技术 | SQL和SQL之间细微的差异
SQL和SQL之间大差不差,但是恰好就是差得这么些小玩意,看起来简单,真的搞起来就让人头秃了~简单聊一下MySQL、PostgreSQL和SQL Server之间差得那么一点点东西。
做数据的二号姬
2023/09/06
2120
聊技术 | SQL和SQL之间细微的差异
request.getSession()几种获取情况之间的差异
HttpSession session = request.getSession();
且陶陶
2023/04/12
1K0
Python2和Python3之间的差异
python2的默认编码方式是ASCII,而python3的默认编码方式是Unicode,因此我们在python2的脚本开始处经常可以看到类似下面的一行注释
zy010101
2021/10/09
1.2K0
PowerShell系列(二):PowerShell和Python之间的差异介绍
今天给大家聊聊PowerShell和Python之间有哪些共同之处,各自有哪些优势,希望对运维的朋友了解两种语言能提供一些有用的信息。
小明互联网技术分享社区
2023/09/20
6290
PowerShell系列(二):PowerShell和Python之间的差异介绍
选择维度筛选AllSelect和All函数的差异
此时的度量计算的结果就是数学的平均成绩。如果我们想知道数学和英语的这两门课的综合平均分呢?则在切片器中选择数学和英语即可。
逍遥之
2020/03/24
1.5K0
选择维度筛选AllSelect和All函数的差异
反向代理与正向代理之间差异分析
在网络世界中,爬虫ip是我们常用工具之一。但你是否了解反向爬虫ip和正向爬虫ip之间的区别呢?本文将向你分享反向爬虫ip与正向爬虫ip的差异分析,帮助你更好地选择适合的爬虫ip方式,提升爬虫项目的实际操作价值。
华科云商小徐
2023/08/15
1910

相似问题

paypal通过商家API取消交易

110

PayPal REST API:代表商家发出请求

13

PayPal使用REST API从商家向用户汇款

11

PayPal -商家取消交易

16

codeigniter CI商家paypal

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文