- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章节关系数据库标准语言SQL
第六章 关系数据库标准语言SQL;6.1 SQL语言的概述
SQL是结构化查询语言,它包括:
查询
数据定义
数据操纵
数据控制
SQL已经成为关系数据库的标准数据语言,掌握SQL语法可以很方便地对数据进行管理。
;;6.3 SQL的查询功能;;6.3.1 基本查询;2、去掉重复值的检索
使用DISTINCT短语:去掉重值.
例1:显示职工表中的所有工资信息,要求不显示重复值。
SELE DISTINCT 工资 FROM 职工表
例2:列出所有学生表中学生的姓名与年龄。
使用
SELE 姓名,YEAR(DATE())-YEAR(出生日期) AS 年龄 from student
注:AS(列名)用于指定输出时使用的列标 题,可以不同于字段名。;6.3.2 带条件的查询;;2、使用WHERE短语的简单联接查询
联接查询是基于多个关系的查询,查询所要求的结果出自多个关系。在语句中要指定联接的条件,即多个关系的相同属性:
表1.字段名 =表2.字段名
例3:找出工资多于1230元的职工号和他们所在的城市。
SELE 职工号,城市 FROM 职工表,仓库表;
WHERE (工资1230) AND (职工表.仓库号=仓库表.仓库号)
例4:找出工作在面积大于400的仓库的职工号以及这些职工工作所在的城市。
SELECT 职工号,城市 FROM 职工表,仓库表 WHERE ;
面积400 AND (职工表.仓库号=仓库表.仓库号)
;注意:
1、这里的“职工.仓库号=仓库.仓库号”是联接条件。
2、当FROM之后的多个关系中含有相同的属性时,这时必须用关系前缀“.”直接指明属性所属的关系。
;6.3.3、嵌套查询
嵌套查询:指在SELE-FROM-WHERE查询块内部再嵌入另 一个查询块,称为子查询。
嵌套查询的运算:先计算子查询,然后将子查询的结果传给外层查询使用。
查询所要求的结果:出自一个关系,但相关的条件却涉及多个 关系。
常用内层与外层嵌套的语句有:
IN语句、ALL语句、ANY 语句
?IN语句:IN(属于)或NOT IN(不属于)
即查询字段所需的值属于子查询中的结果。
用法:字段 IN (子查询);;;例4:哪些城市至少一个仓库的职工工资为1250元?
分析:此题为先在内查询中找出工资为1250元的仓库号,然后在以此结果到仓库表中找出对应的城市。
内层查询:
查询的结果为:职工表中的仓库号
查询的条件为:工资=1250 (WH1、WH2)
命令:SELE 仓库号 FROM 职工表 WHERE 工资=1250
外层查询:
查询的结果为:仓库表的城市
查询的条件为:仓库号属于内层查询的所给的仓库号
命令:SELE 城市 FROM 仓库表 WHERE 仓库号 IN
;;ALL语句:
功能:满足子查询结果的所有值
用法:字段 比较符 ALL(子查询)
ALL的语义为:大于子查询结果中的所有值(最高值).
例5:检索有职工的工资大于或等于WH1仓库中所有职工工资的仓库号。
分析:查询涉及的表只有职工表.
内层查询:从职工表中查询出仓库号为WH1的所有工资
查询的信息:工资,数据出于职工表.
查询的条件:仓库号为WH1
命令:SELE 工资 FROM 职工表 WHERE 仓库号=“WH1”
(1210、1250)
;外层查询:查询出高于内层查询所提供的工资的所有仓库号,
用量词ALL,且写为:工资=ALL
同时要去掉重复的仓库号.
命令:
SELE DISTINCT 仓库号 FROM 职工 WHERE 工资=ALL
此查询的完整命令:
SELE DISTINCT 仓库号 FROM f:\vfp讲义\职工表;
WHERE 工资=ALL ;
(SELE 工资 FROM f:\vfp讲义\职工 WHERE 仓库号=”WH1”)
注:这里只取工资大于或等于1250的仓库号;??ANY语句
功能:满足子查询结果的任何一个值
用法: 字段 比较符 ANY(子查询)
ANY的语义为:大于子查询结果中的某个值(最低值).
例: 检索所有职工的工资大于或等于WH1仓库中任何一名职工工资的仓库号
分析:查询涉及的表为职工表
查询的信息: 职工表中仓库号
内层查询: 从职工表中找出仓库号为WH1的职工工资
外层查询: 找出大于或等于WH1中任何一工资值的仓库号
文档评论(0)