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



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

 

  有时,像我们刚才所讨论的情况,我们可能希望对某一些而不是全部的列进行赋值。除了对要省略的列输入NULL外,还可以采用另外一种INSERT语句,如下:

  INSERT INTO EMPLOYEES(

   FIRST_NAME, LAST_NAME,

   HIRE_DATE, BRANCH_OFFICE)

  VALUE(

   'Indiana','Jones',

   '1992-02-01','Indianapolis');

  这样,我们先在表名之后列出一系列列名。未列出的列中将自动填入缺省值,如果没有设置缺省值则填入NULL。请注意我们改变了列的顺序,而值的顺序要对应新的列的顺序。如果该语句中省略了FIRST_NAME和LAST_NAME项(这两项规定不能为空),SQL*作将失败。

  让我们来看一看上述INSERT语句的语法图:

  INSERT INTO table

   [(column { ,column})]

  VALUES

   (columnvalue [{,columnvalue}]);

  和前一篇文?幸谎颐怯梅嚼ê爬幢硎究裳∠睿罄ê疟硎究梢灾馗慈我獯问南睿ú荒茉谑导实腟QL语句中使用这些特殊字符)。VALUE子句和可选的列名列表中必须使用圆括号。

  SELECT语句

  SELECT语句可以从一个或多个表中选取特定的行和列。因为查询和检索数据是数据库管理中最重要的功能,所以SELECT语句在SQL中是工作量最大的部分。实际上,仅仅是访问数据库来分析数据并生成报表的人可以对其他SQL语句一窍不通。

  SELECT语句的结果通常是生成另外一个表。在执行过程中系统根据用户的标准从数据库中选出匹配的行和列,并将结果放到临时的表中。在直接SQL(direct SQL)中,它将结果显示在终端的显示屏上,或者将结果送到打印机或文件中。也可以结合其他SQL语句来将结果放到一个已知名称的表中。

  SELECT语句功能强大。虽然表面上看来它只用来完成本文第一部分中提到的关系代数运算“选择”(或称“限制”),但实际上它也可以完成其他两种关系运算—“投影”和“连接”,SELECT语句还可以完成聚合计算并对数据进行排序。

  SELECT语句最简单的语法如下:

  SELECT columns FROM tables;

  当我们以这种形式执行一条SELECT语句时,系统返回由所选择的列以及用户选择的表中所有指定的行组成的一个结果表。这就是实现关系投影运算的一个形式。

  让我们看一下使用EMPLOYEES表的一些例子(这个表是我们以后所有SELECT语句实例都要使用的。而我们在图2和图3中给出了查询的实际结果。我们将在其他的例子中使用这些结果)。

  假设你想查看雇员工作部门的列表。那下面就是你所需要编写的SQL查询:

  SELECT BRANCH_OFFICE FROM EMPLOYEES;



  由于我们在SELECT语句中只指定了一个列,所以我们的结果表中也只有一个列。注意结果表中具有重复的行,这是因为有多个雇员在同一部门工作(记住SQL从所选的所有行中将值返回)。要消除结果中的重复行,只要在SELECT语句中加上DISTINCT子句:

  SELECT DISTINCT BRANCH_OFFICE

  FROM EMPLOYEES;

  
  现在已经消除了重复的行,但结果并不是按照顺序排列的。如果你希望以字母表顺序将结果列出又该怎么做呢?只要使用ORDER BY子句就可以按照升序或降序来排列结果:

  SELECT DISTINCT BRANCH_OFFICE

  FROM EMPLOYEES

  ORDER BY BRANCH_OFFICE ASC;

  这一查询的结果如表4所示。请注意在ORDER BY之后是如何放置列名BRANCH _OFFICE的,这就是我们想要对其进行排序的列。为什么即使是结果表中只有一个列时我们也必须指出列名呢?这是因为我们还能够按照表中其他列进行排序,即使它们并不显示出来。列名BRANCH_ OFFICE之后的关键字ASC表示按照升序排列。如果你希望以降序排列,那么可以用关键字DESC。

  同样我们应该指出ORDER BY子句只将临时表中的结果进行排序;并不影响原来的表。

  假设我们希望得到按部门排序并从工资最高的雇员到工资最低的雇员排列的列表。除了工资括号中的内容,我们还希望看到按照聘用时间从最近聘用的雇员开始列出的列表。以下是你将要用到的语句:

  SELECT BRANCH_OFFICE,FIRST_NAME,

   LAST_NAME,SALARY,HIRE_DATE

  FROM EMPLOYEES

  ORDER BY SALARY DESC,

   HIRE_DATE DESC;

  这里我们进行了多列的选择和排序。排序的优先级由语句中的列名顺序所决定。SQL将先对列出的第一个列进行排序。如果在第一个列中出现了重复的行时,这些行将被按照第二列进行排序,如果在第二列中又出现了重复的行时,这些行又将被按照第三列进行排序……如此类推。这次查询的结果如表5所示。

上一页  [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号