第5章关系数据库标准语言SQL

上传人:豆浆 文档编号:6236036 上传时间:2017-08-08 格式:PPT 页数:43 大小:180.50KB
返回 下载 相关 举报
第5章关系数据库标准语言SQL_第1页
第1页 / 共43页
第5章关系数据库标准语言SQL_第2页
第2页 / 共43页
第5章关系数据库标准语言SQL_第3页
第3页 / 共43页
第5章关系数据库标准语言SQL_第4页
第4页 / 共43页
第5章关系数据库标准语言SQL_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《第5章关系数据库标准语言SQL》由会员分享,可在线阅读,更多相关《第5章关系数据库标准语言SQL(43页珍藏版)》请在金锄头文库上搜索。

1、第5章,关系数据库标准语言SQL,SQL全称是结构化查询语言(Structured Query Language),它是国际标准数据库语言,如今无论是Visual Foxpro、Access这样的微机上常用的小型数据库管理系统,还是Oracle、Sybase、Informix、SQL Server这样的大型数据库管理系统,都支持SQL语言。SQL命令可以替代多条Visual FoxPro命令。,5.1 SQL语言概述,结构化查询语言SQL是一种介于关系代数与关系演算之间的语言。它的主要特点如下: 1. 一体化语言2. 高度非过程化语言3语言简洁,易学易用4统一的语法结构5视图数据结构6Visu

2、al FoxPro中的SQL,5.2 SQL的数据查询功能,数据查询是对数据库中的数据按指定条件和顺序进行检索输出。5.2.1 SELECT语句格式Select语句的基本格式为:select from where ,5.2.2 投影查询 投影查询是指从表中查询全部列或部分列。1.查询全部字段【例5-1】查询职工信息表中全部信息。SELECT * FROM 职工信息表等价于下面的查询语句:SELECT 职工号,姓名,性别,年龄,婚否,职称,部门编号,出生日期 FROM 职工信息表说明:星号“*”表示表中所有字段,2.查询部分字段【例5-2】查询职工信息表中职工号,姓名和年龄。SELECT 职工号

3、,姓名,年龄 FROM 职工信息表3.取消重复记录在SELECT语句中,可以使用DISTINCT来取消查询结果中重复的记录。【例5-3】查询职工表中所有的部门编号。SELECT DISTINCT 部门编号 FROM 职工信息表,4.查询经过计算的表达式【例5-4】查询职工工资表中的职工号,基本工资,岗位工资,院龄工资,职务工资,税金和实发工资。SELECT 职工号,基本工资,岗位工资,院龄工资,职务津贴,税金,;(基本工资+岗位工资+院龄工资+职务津贴-税金) AS 实发工资 FROM 职工工资表说明:AS用于修改查询结果中指定列的列名。AS也可以省略。,5.2.3 条件查询,SELECT-S

4、QL语句的查询方式很丰富,使用WHERE子句可以查询满足某些条件的记录。在WHERE子句中可以用关系运算符、逻辑运算符及特殊运算符构成较复杂的条件表达式。1.单条件查询【例5-5】查询职工信息表中已婚职工的信息。SELECT * FROM 职工信息表 WHERE 婚否,【例5-6】查询职工表中年龄大于等于30岁的职工的姓名,年龄和职称。SELECT 姓名,年龄,职称 FROM 职工信息表 WHERE 年龄=302.多重条件查询【例5-7】查询职工信息表中出生日期小于1970年副教授的姓名、年龄、职称和出生日期。SELECT 姓名,年龄,职称,出生日期 FROM 职工信息表 WHERE 职称=”

5、副教授”AND; YEAR(出生日期)2000【例5-15】统计职工信息表中有几个部门。SELECT COUNT(DISTINCT 部门编号) AS;部门数 FROM 职工信息表【例5-16】统计职工部门表中职工人数的最大人数、最小人数、平均数和总人数。SELECT MAX(职工人数)AS 最大人数,; MIN(职工人数) AS 最小人数,; AVG(职工人数) AS 平均人数,SUM(职工人数) ; AS 总人数 FROM 职工部门表,2. 分组查询SQL可以利用GROUP BY子句按某个字段或多个字段进行分组,每组在某个字段或多个字段组合上的值要相同。【例5-17】分组求职工信息表中男女职

6、工的平均年龄。SELECT 性别, AVG(年龄) FROM ; 职工信息表GROUP BY 性别【例5-18】查询职工信息表中至少有4个职工的部门。SELECT 部门编号,COUNT(*) AS 人数FROM 职工信;息表 GROUP BY 部门编号HAVING COUNT(*)=4说明: HAVING子句限定分组条件。,5.2.5排序查询,在SQL语言中,ORDER BY子句用于对查询结果按一个或多个查询列进行排序。其中包括升序(ASC)和降序(DESC),缺省值为升序。1. 单列排序【例5-19】查询职工信息表中年龄40岁以上按出生日期字段降序排列的全部职工信息。SELECT * FRO

7、M 职工信息表; WHERE 年龄=40 ORDER BY 出生日期 DESC,2. 多列排序查询结果中按多个查询列排序。【例5-20】查询职工信息表中,部门编号为“103”的职工信息,结果按性别的升序、年龄的降序排列。SELECT * FROM 职工信息表 WHERE; 部门编号=”103”ORDER BY 性别,年龄 DESC,3. 前面部分记录查询在查询语句中,TOP PERCENT子句查询满足条件的前面部分记录,其中的表达式必为数值表达式。【例5-21】查询职工信息表中,年龄最大的三人信息。SELECT * TOP 3 FROM 职工信息表 ; ORDER BY 年龄 DESC 【例5

8、-22】查询职工信息表中,年龄最小的20%的员工信息。SELECT * TOP 20 PERCENT FROM 职工信息表 ; ORDER BY 年龄,5.2.6 连接查询一个数据库中的多个表之间一般都存在某种内在联系,它们共同提供有用的信息。前面的查询都是针对一个表进行的。若一个查询同时涉及两个以上的表,则称之为连接查询。内连接查询命令的语法格式如下:SELECT FROM , WHERE 连接条件 AND 查询条件说明:连接条件为:表1.公共字段=表2.公共字段,2. 自连接查询自身连接查询指连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接的查询。在连接查询中,为了区分字段

9、名,常用表名作为字段名的前缀,有时显得很麻烦。因此,SQL语言中允许表名定义别名。命令的语法格式如下:. 【例5-25】查询职工信息表中,年龄比曾玲珑年长的职工姓名和年龄。 SELECT a.姓名,a.年龄 FROM 职工信息表 a, ; 职工信息表 b; WHERE a.年龄b.年龄 AND b.姓名=”曾玲珑”,5.2.7超连接查询,SQL中FROM子句后的连接称为超连接,超连接有四种形式。命令的语法格式如下:SELECT.FROM INNER | LEFTOUTER|RIGHTOUTER|FULLOUTER; JOIN ! AS Local_AliasON其中:OUTER关键字可被省略,

10、包含OUTER强调这是一个外连接(outer join)。,1内部连接使用INNER JOIN形式的连接称为内部连接,INNER JOIN等价于JOIN。INNER JOIN与普通连接相同:只有满足条件的记录才出现在查询结果中。 【例5-26】将职工信息表和职工部门表按内部形式连接,包含职工号、姓名、部门名称字段。SELECT A.职工号,姓名,部门名称 FROM ; 职工信息表 A INNER JOIN 职工部门表 B; ON A.部门编号 =B.部门编号,2左连接LEFTOUTER JOIN 称为左连接,在查询结果中包含JOIN 左侧表中的所有记录,以及JOIN 右侧表中匹配的记录。3右连

11、接RIGHTOUTER JOIN 称为右连接,在查询结果中包含JOIN 右侧表中的所有记录,以及JOIN 左侧表中匹配的记录。4完全连接FULLOUTER JOIN 称为完全连接,在查询结果中包含JOIN 两侧表中的所有匹配记录和不匹配的记录。,5.2.8 嵌套查询,带有比较运算符的子查询 在嵌套查询中,当子查询的结果是一个单值(只有一个记录或一个字段值 ),可以用、=、=、等比较运算符来生成父查询的查询条件。【例5-30】查询出职工信息表中信息学科部所有职工的姓名。SELECT 姓名FROM 职工信息表 WHERE; 部门编号=(SELECT 部门编号; FROM 职工部门表 WHERE 部

12、门名称; =”信息学科部”),2. 带有IN谓词的子查询在嵌套查询中,子查询的结果一般是一个集合,因此在外层查询中,可以用IN谓词来作为查询条件。【例5-31】查询基本工资大于2000的职工姓名和职称。SELECT 姓名,职称 FROM 职工信息表 ; WHERE 职工号 IN ; (SELECT 职工号 FROM 职工工资表; WHERE 基本工资2000),3. 带有ANY或ALL谓词的子查询在嵌套查询中,子查询的返回值不止一个,则必须在WHERE子句中指明应怎样使用这些返回值。通常使用谓词ANY和ALL。IN 也可等同使用。【例5-32】查询职工的年龄大于部门编号=“101”的任何一个职工年龄的职工的姓名。SELECT 姓名 FROM 职工信息表; WHERE 年龄ANY; (SELECT 年龄 FROM 职工信息表; WHERE 部门编号=”101”),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号