记住,当开始学习如何使用SQL时,我们大多数情况下都是与字段和表打交道。图4-4的语法图在SELECT子句中使用column_name和在FROM子句中使用table_name来反映这个情况。在下一章中,我们将学习如何在这些子句中使用其它项来创建更复杂的SELECT语句。 可能你已经注意到了,我们在上面的例子中所使用的要求是相对简单的。
重新定义它作为翻译语句并同时确定出在语句中显示的字段名称是很容易的。但是,如果请求并不是这样简单且容易翻译的话,同时确定出SELECT子句所需要的字段又很困难时,该怎么处理?最简单的做法就是重新定义请求并让它更具体些。比如,我们可以将这样一个请求:“Show……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
记住,当开始学习如何使用SQL时,我们大多数情况下都是与字段和表打交道。图4-4的语法图在SELECT子句中使用column_name和在FROM子句中使用table_name来反映这个情况。在下一章中,我们将学习如何在这些子句中使用其它项来创建更复杂的SELECT语句。
可能你已经注意到了,我们在上面的例子中所使用的要求是相对简单的。重新定义它作为翻译语句并同时确定出在语句中显示的字段名称是很容易的。但是,如果请求并不是这样简单且容易翻译的话,同时确定出SELECT子句所需要的字段又很困难时,该怎么处理?最简单的做法就是重新定义请求并让它更具体些。比如,我们可以将这样一个请求:“Show me the information on our clients”重新改为更清楚的“List the name, city, and phone number for each of our clients”。如果重新定义要求不能解决问题,那么我们仍然有两个选择。第一,我们可以先确定在SELECT语句的FROM子句中指定的表是否包含任何有助于使请求更清晰的字段名称,这样我们就可以用它来更容易地定义翻译语句。第二,我们可以更仔细地检查请求并确定一个词或者短语是否包含任何字段名称的暗示(implies )。我们是否可以使用一种或者两种选择是取决于请求本身。只要记住,当感到定义一个翻译语句很困难时,一定要还有着其它行之有效的技巧可利用。让我们来看看各个技巧的例子以及如何在一些典型的场景中应用它。
关于第一个技巧,让我们来尝试翻译下面这个请求。
"I need the names and addresses of all our employees."
表面上看来这是一个直接的请求。但是,如果再次看一下这个请求,我们会发现一个小的问题:虽然我们可以确定翻译语句所需要的表(Employees),但是在请求中没有任何有助于我们为SELECT子句定义所需要的特定字段。虽然词"names" 和"addresses"在要求中出现了,但是它们是通用的语汇。我们可以通过检查请求中所对应的表并确认它是否包含任何可以替代这些项的字段来解决这个问题。如果有,那么就可以在翻译语句中使用该字段名称。(为了有助于我们更清楚地看到语句,我们可以选择在翻译语句中使用一般形式的字段名称。然而,我们将需要使用SQL句法中的实际字段名称。)在这种情况下,在图4-5中查找Employees表的可以用来代替词“names”和“addresses”的字段名称。
Employees |
EmployeeID PK |
图4-5 Employees表的结构
为了充分满足“names”和“addresses”的查询需要,我们将实际需要使用这个表中的6个字段。EmpFirstName和EmpLastName将同时替代请求中的“names”,而EmpStreetAddress、EmpCity、 EmpState和 EmpZipCode将替代“addresses”。现在,对请求应用整个翻译过程,也就是重复之前的步骤。(我们将在翻译语句使用通用形式的字段名称,而在SQL语句中使用实际字段名称。)
"I need the names and addresses of all our employees."
Translation | Select first name, last name, street address, city, state, and ZIP |
Clean Up | Select first name, last name, street address, city, state, ZIP Code from employees |
SQL | SELECT EmpFirstName, EmpLastName, EmpStreetAddress, |
注意:这个例子也清楚地演示了如何在SELECT子句中使用多个字段。我们将在后面详细讨论这个技术。
下一个例子阐述的是第二个技巧,它涉及到查找请求中暗含的字段。假设我们正在尝试完成下面这个请求的翻译。
"What kind of classes do we currently offer?"
翻译
TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。
相关推荐
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
绘制数据关系图的利器:SQL Server 图像数据库工具
SQL Server 2017新增了图形数据库功能,你可以使用图结构来表示不同数据元素之间的关系。
-
如何在Azure部署时选择合适的SQL Server?
想要在Azure上运行SQL Server,企业一般会面临两种选择:在Azure虚拟机上安装SQL Server或使用Azure SQL Database。
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。