SELECT语句语法及示例(下)

日期: 2009-11-10 作者:Joel Murach翻译:张峰 来源:TechTarget中国 英文

SELECT语句示例   上文给我们介绍了五个SELECT语句的例子。所有这些语句均从Invoices表中返回数据。   本部分中的第一条语句返回Invoices表中的所有行与列。此语句使用一个星号(*)作为标识来指出所有的列都需要返回,而WHERE子句被忽略,因此在结果集中没有限定返回哪些行。

你可以将此语句放到SQL Developer中查看结果集。这时,垂直滚动条和水平滚动条都出来了,说明结果集包含更多的行与列,它们可以在电脑屏上同时显示。注意此语句不包含ORDER BY子句。没有ORDER BY子句,Oracle不会保证行显示的顺序。

它们可能是按照你想要的顺序排列,但也可能不是。结果是,……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

SELECT语句示例

  上文给我们介绍了五个SELECT语句的例子。所有这些语句均从Invoices表中返回数据。

  本部分中的第一条语句返回Invoices表中的所有行与列。此语句使用一个星号(*)作为标识来指出所有的列都需要返回,而WHERE子句被忽略,因此在结果集中没有限定返回哪些行。你可以将此语句放到SQL Developer中查看结果集。这时,垂直滚动条和水平滚动条都出来了,说明结果集包含更多的行与列,它们可以在电脑屏上同时显示。注意此语句不包含ORDER BY子句。没有ORDER BY子句,Oracle不会保证行显示的顺序。它们可能是按照你想要的顺序排列,但也可能不是。结果是,如果对于你来讲,此顺序有影响,你就得把ORDER BY子句包含进来。

  第二条语句返回了Invoices表中被选定的列。正如你所见,要返回的列都在SELECT子句中被列出来了。像第一条语句一样,此语句不包含WHERE子句,因此也是返回所有的行。接着,ORDER BY子句使结果集按照invoice_total列升序进行排序。在本文接下来的内容中,你将了解到如何进行降序排列。

  第三条语句也将需要返回的列列出来了。这个例子中,最后一列是由基表中的两列(credit_total and payment_total)计算得出的,且结果列中指定其列名为total_credits。另外,WHERE子句指出了只有invoice_id为17的记录才被返回。

  第四条SELECT语句包含一个WHERE子句,它的条件指定了一个值的范围。本例中,只有invoice dates为2008年3月1日到2008年3月31日之间的invoices才被返回。另外,结果集中的行由invoice date字段进行排序。

  本部分的最后一条语句介绍了WHERE子句的另一种用法。本例中,只有invoice_total大于50,000的行才被返回。因为没有满足此条件的记录,所以返回的结果集为空。

  从Invoices表中返回所有数据的SELECT语句

  SELECT *

  FROM invoices

  (返回114行)

  返回三列并按invoice_total升序返回各行的SELECT语句

  SELECT invoice_number, invoice_date, invoice_total

  FROM invoices

  ORDER BY invoice_total

  (返回114行)

  返回某一指定的invoice的两列和一个计算值的SELECT语句

  SELECT invoice_id, invoice_total,

  (credit_total + payment_total) AS total_credits

  FROM invoices

  WHERE invoice_id = 17

  返回给出时间内所有的invoices的SELECT语句

  SELECT invoice_number, invoice_date, invoice_total

  FROM invoices

  WHERE invoice_date BETWEEN '01-MAY-2008' AND '31-MAY-2008'

  ORDER BY invoice_date

  (返回70行)

  返回空结果集的SELECT语句

  SELECT invoice_number, invoice_date, invoice_total

  FROM invoices

  WHERE invoice_total > 50000

翻译

张峰
张峰

相关推荐