您在: LoveApple -> 美丽人生 -> 学习资料 -> 电脑基础 -> 作品正文
  SQL基本语句       ★★★
掌握SQL基本语句
【字体: 】     佚名     LoveApple     2005-12-16 19:04:49     繁體



内容提要:
练掌握SQL是数据库用户的宝贵财 富。在本文中,我们将引导你掌握四条最基本的数据*作语句—SQL的核心功能—来依次介绍比较*作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了

 

  在本例中,我们通过逻辑连接符AND将两个断言连接起来。只有两个断言都满足时整个表达式才会满足。如果用户需要定义一个SELECT语句来使得当其中任何一项成立就满足条件时,可以使用OR连接符:

  SELECT * FROM EMPLOYEES

  WHERE LAST_NAME = 'Jones' OR LAST_NAME = 'Smith';

  有时定义一个断言的最好方法是通过相反的描述来说明。如果你想要查看除了Boston办事处的职员以外的其他所有职员的信息时,你可以进行如下的查询:

  SELECT * FROM EMPLOYEES

  WHERE NOT(BRANCH_OFFICE = 'Boston');

  关键字NOT后面跟着用圆括号括起来的比较表达式。其结果是对结果取否定。如果某一职员所在部门的办事处在Boston,括号内的表达式返回true,但是NOT*作符将该值取反,所以该行将不被选中。

  断言可以与其他的断言嵌套使用。为了保证它们以正确的顺序进行求值,可以用括号将它们括起来:

  SELECT * FROM EMPLOYEES

  WHERE (LAST_NAME = 'Jones'

  AND FIRST_NAME = 'Indiana')

  OR (LAST_NAME = 'Smith'

  AND FIRST_NAME = 'Bessie');

  SQL沿用数学上标准的表达式求值的约定—圆括号内的表达式将最先进行求值,其他表达式将从左到右进行求值。

  以上对逻辑连接符进行了说明,在对下面的内容进行说明之前,我们再一次对SELECT语句的语法进行更新:

  SELECT [DISTINCT]

   (column [{, column } ] )| *

  FROM table [ { , table} ]

  [ORDER BY column [ASC] | [DESC

  [{ , column [ASC] | [DESC } ] ]

  WHERE predicate [ { logical-connector predicate } ];

  NULL和三值逻辑

  在SQL中NULL是一个复杂的话题,关于NULL的详细描述更适合于在SQL的高级教程而不是现在的入门教程中进行介绍。但由于NULL需要进行特殊处理,并且你也很可能会遇到它,所以我们还是简略地进行一下说明。

  首先,在断言中进行NULL判断时需要特殊的语法。例如,如果用户需要显示所有年薪未知的职员的全部信息,用户可以使用如下SELECT语句:

  SELECT * FROM EMPLOYEES

  WHERE SALARY IS NULL;

  相反,如果用户需要所有已知年薪数据的职员的信息,你可以使用以下语句:

  SELECT * FROM EMPLOYEES

  WHERE SALARY IS NOT NULL;

  请注意我们在列名之后使用了关键字IS NULL或IS NOT NULL,而不是标准的比较形式:COLUMN = NULL、COLUMN <> NULL或是逻辑*作符NOT(NULL)。

  这种形式相当简单。但当你不明确地测试NULL(而它们确实存在)时,事情会变得很混乱。

  例如,回过头来看我们图1中的EM-PLOYEES表,可以看到Indiana Jones的工薪等级或年薪值都是未知的。这两个列都包含NULL。可以想象运行如下的查询:

  SELECT * FROM EMPLOYEES

  WHERE GRADE <= SALARY;

  此时,Indiana Jones应该出现在结果表中。因为NULL都是相等的,所以可以想象它们是能够通过GRADE小于等于SALARY的检查的。这其实是一个毫无疑义的查询,但是并没有关系。SQL允许进行这样的比较,只要两个列都是数字类型的。然而,Indiana Jones并没有出现在查询的结果中,为什么?

  正如我们早先提到过的,NULL表示未知的值(而不是象某些人所想象的那样表示一个为NULL的值)。对于SQL来说意味着这个值是未知的,而只要这个值为未知,就不能将其与其他值比较(即使其他值也是NULL)。所以SQL允许除了在true 和false之外还有第三种类型的真值,称之为“非确定”(unknown)值。

  如果比较的两边都是NULL,整个断言就被认为是非确定的。将一个非确定断言取反或使用AND或OR与其他断言进行合并之后,其结果仍是非确定的。由于结果表中只包括断言值为“真”的行,所以NULL不可能满足该检查。从而需要使用特殊的*作符IS NULL和IS NOT NULL。

上一页  [1] [2] [3] [4] [5] 下一页

发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
  • 上一篇作品:

  • 下一篇作品:
  • 相 关 文 章
    SQL Server安全规划全攻
    Windows 2000服务器配置
    专 题 栏 目
    最 新 热 门
    普通作品 我们的爱,原来只是敲错了
    普通作品 今生今世,陪着你慢慢走过
    推荐作品 失去后才懂得:没有爱情在
    推荐作品 穿过第三个红绿灯我们就牵
    推荐作品 保持家庭幸福的十个秘诀
    普通作品 真爱无言,一场让他辗转反
    推荐作品 我愿意做另一个用生命保护
    推荐作品 SCO UNIX Vi 命令
    普通作品 SCO UNIX SHELL 命令
    推荐作品 SCO UNIX 目录文件操作命令
    最 新 推 荐
    推荐作品 她已经放弃天堂 你相信有天
    推荐作品 失去后才懂得:没有爱情在
    推荐作品 穿过第三个红绿灯我们就牵
    推荐作品 保持家庭幸福的十个秘诀
    推荐作品 我愿意做另一个用生命保护
    推荐作品 SCO UNIX Vi 命令
    推荐作品 SCO UNIX 目录文件操作命令
    推荐作品 禅说爱情
    推荐作品 当爱情遭遇婚姻为何会搁浅
    推荐作品 再婚使我获得幸福
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    LoveApple Club版权与免责声明:
    一、凡本网注明“LoveApple”的所有作品,版权均属于LoveApple,未经本网授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:LoveApple”。违反上述声明者,本网将追究其相关法律责任。
    二、凡本网注明“来源:XXX(非LoveApple)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
    三、如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。要同本网联系的,请在30日内进行。
    ※联系方式:网站管理员 QQ:489567068 MSN:wangge9#msn.com  E-mail: wangge9#gmail.com(发信时请把#换成@)
    设为首页 | 加入收藏 | 友情链接 | 使用条款 | 隐私政策 | 网站地图 | 关于我们 | 帮助中心 | 搜索中心 | 联系我们 | 网站公告
    浙ICP备05080468号