- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
结构化查询语言(SQL)
SQL概述
SQL的内容在笔试和上机考试中均占到大约30%的比例,此外它还是查询和视图的基础,因此是学习的重点也是难点。
SQL是结构化查询语言Structure Query Language的缩写。
SQL包含了查询功能、数据定义、数据操纵和数据控制功能,在VFP中没有提供数据控制功能。
SQL主要特点
SQL是一种一体化语言。
SQL是一种高度非过程化的语言。
SQL语言非常简洁。
SQL语言可直接以命令方式交互使用,也可嵌入到程序设计语言中以程序方式使用。
查询功能
SELECT命令的特点:
可以自动打开数据库、表文件加以查询,而不需要事先用OPEN DATABASE或USE命令打开。
可以直接选取数据表中的数据,而不需要事先用SET RELATION命令建立关联。
当需要的索引文件不存在时,会自动建立暂存索引文件,以支持快速搜索技术(Rushmore)来查询。
其查询结果可输出到文件、表、屏幕或报表上,还可以转换成统计图表。
命令格式:SELECT —— FROM —— WHERE
可与 LIST FIELDS—— FOR —— 对照学习。
关系操作:投影,选择,联接。
说明:功能强大,语法灵活;要处理的数据表无须事先打开,通过FROM子句指明并打开。
SELECT 短语:说明要查询的数据;对应的关系操作为投影,类似于FIELDS子句。
FROM 短语:说明要查询的数据来自哪个或哪些表,可对单个表或多个表进行查询;
WHERE 短语:说明查询条件;对应的关系操作为选择,类似于FOR子句。如是多表查询还可能过该子句指明联接条件,进行联接。
GROUP BY 短语:用于对查询结果进行分组,可利用它进行分组汇总;类似于TOTAL命令。
HAVING 短语:跟随GROUP BY 使用,它用来限定分组必须满足的条件;
ORDER BY 短语:用于对查询的结果进行排序;类似于SORT命令。
示例数据库:
学生管理,包括三个表:学生,课程,选课(通过该表反映“学生”与“课程”之间“多对多”的联系。
问题:请同学们分别指出三个表的主关键字。
简单查询
简单查询基于单个表。
例:
1.查询学生信息
SELE * FROM 学生 “*”号代表所有列。
类似于:
USE 学生
LIST
2.查询男生学生的学号、姓名及生日 SELE 学号,姓名,生日 FROM 学生 WHERE 性别=”男”
类似于
USE 学生
LIST学号,姓名,生日 FOR性别=”男”
3.查询学分大于5的课程的信息
SELE * FROM 课程 WHERE 学分5
类似于
USE 学生
LIST FOR 学分5
4、查询学分不在6到9之间的
Sele * from 课程 where 学分 not between 6 and 9
简单联接查询
联接是关系的基本操作之一,联接查询基于多个关系的查询。
例:查询男生学生的选课信息,包括姓名,学号及成绩。
分析:本例的查询结果包括两个表“学生”与“选课”的属性,适用于联接查询。
SELE 姓名,选课.学号,成绩;
FROM 学生,选课;
WHERE 学生.学号=选课.学号 AND 性别=”男”
说明:如果命令太长一行写不下可在行末加分号“:”表续行
选课.学号: 因为两个表中均有“学号”字段,所以必须指明所属表。
学生.学号=选课.学号:连接条件。
还可使用如下SQL语句:
SELE 姓名,选课.学号,成绩;
FROM 学生 JOIN 选课 ON 学生.学号=选课.学号;
WHERE 性别=”男”
说明:
JOIN ……ON :建立表与表之间的联接。
自连接:sele S.雇员姓名,领导,E.雇员姓名 from 雇员 S,雇员 E where S.雇员号=E.经理
嵌套查询
嵌套查询是另一类基于多个关系的查询,此类查询所要求的结果出自一个关系,但相关的条件却涉及多个关系。
1、例:查询女生学生选课信息,包括学号,课程号,成绩。
SELE *;
FROM 选课;
WHERE 学号 IN (SELE 学号 FROM 学生 WHERE 性别=”女”)
说明:
IN:相当于集合运算符∈。
还可使用如下SQL语句:简单联接查询
SELE 选课.学号,课程号,成绩;
FROM 选课 JOIN 学生 ON 选课.学号=学生.学号;
WHERE 性别=”女”
2、查询有“硬盘”订购需求的订购单明细记录:这个例子要求查询订购单明细表中的记录,而查询条件是产品标的名称,
Sele * from 订购单明细 where 产品号 IN;
(sele 产品号 from 产品 where 名称=“硬盘”)
3、
文档评论(0)