如何将信息请求翻译为SQL SELECT语句(四)

日期: 2009-04-27 作者:John L. ViescasMichael J. Hernandez翻译:曾少宁 来源:TechTarget中国 英文

  Subjects SubjectID          PKCategoryID        FKSubjectCodeSubjectNameSubjectDescription   图4-7 Subjects表的结构   我们仍然可以将这个请求翻译成一个恰当的SELECT语句,即使提出这个请求的人想看到特定顺序的字段。但我们只需按照定义翻译语句时的特定顺序列出字段名称。下面就是当我们将这个要求翻译成SELEC……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

 

Subjects

SubjectID          PK
CategoryID        FK
SubjectCode
SubjectName
SubjectDescription

  图4-7 Subjects表的结构

  我们仍然可以将这个请求翻译成一个恰当的SELECT语句,即使提出这个请求的人想看到特定顺序的字段。但我们只需按照定义翻译语句时的特定顺序列出字段名称。下面就是当我们将这个要求翻译成SELECT语句时的过程。

Translation

Select the subject name, category ID, and subject code from the subjects table

Clean Up

Select  subject name, category ID,  subject code from subjects 

SQL

SELECT SubjectName, CategoryID, SubjectCode 
FROM Subjects 

  要求所有字段的捷径

  SELECT子句对于指定字段数目并没有限制——事实上,我们可以列出源表上的所有字段。下面的例子显示了我们用来指定Subjects表中所有字段的SELECT语句,如图4-7。 

SQL

SELECT SubjectID, CategoryID, SubjectCode,
SubjectName, SubjectDescription 
FROM Subjects

  如果要指定源表的所有字段,并且表又包含大量的字段,那么我们将需要输入很多的字段名!幸运的是,SQL Standard指定了星号作为一个捷径,这样,我们就可以考虑使用缩短的语句。图4-8语法图表显示我们可以使用星号作为SELECT子句中一系列字段的替代。

  星号快捷语法

  图4-8星号快捷语法

  当想要在FROM子句中指定源表的所有的字段时,可以将星号紧跟在SELECT子句后面。比如,下面是使用了星号的SELECT语句。

SQL

SELECT * FROM Subjects

  使用这个语句确实减少输入的字符!然而,以这种方式创建的SELECT语句也会有一个问题:星号代表了目前存在于源表中的所有字段,表字段的添加或删除会影响我们在SELECT语句的结果集。(真够奇怪的,SQL Standard宣称添加或删除字段不会影响我们的结果集。)只有当我们必须在结果集中不间断地看到相同的字段时,这才会引起问题。当我们在SELECT子句中使用了星号,如果字段已经在源表中删除了,那么我们的数据库将不会发出警告,但是当它找不到我们明确指定的字段时,它将会发出警告。虽然这对于我们的目标并不构成任何问题,但是,当我们深入探讨SQL程序时,它将是一个很重大的问题。重要的原则是:只有当我们需要“临时应急”地查询指定表的所有信息时,才使用星号。最后,查询将返回我们所需要的正确的信息并且还将更加的自我文档化。

  目前,我们所看到的例子都是根据只需要来自一个表的字段的简单请求。在第三部分,我们将学习如何运行各种更复杂的请求,这些请求是来自几个表的字段的。

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。

相关推荐