欢迎来到天天文库
浏览记录
ID:49798395
大小:334.50 KB
页数:95页
时间:2020-03-02
《VFP课件(5-关系数据库标准语言SQL).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章关系数据库标准语言SQL5.1SQL概述SQL(StructuredQueryLanguage)是结构化查询语言的缩写,是关系数据库的标准语言。首先由美国ANSI(美国国家标准协会)提出,后被ISO采纳为国际标准。现在所有的关系数据库管理系统都支持SQL。SQL包含数据查询、数据定义、数据操纵和数据控制四大功能部分。SQL语言的特点SQL是一种一体化的语言。它包括了数据定义、数据查询、数据操纵和数据控制等方面的功能,它可以完成数据库活动中的全部工作。SQL是一种高度非过程化的语言。用户不必告诉计算机怎么去做,只需
2、要告诉计算机做什么即可。SQL语言非常简洁,易学易用。SQL可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。SQL命令动词数据查询:SELECT(选择)数据定义:CREATE(创建)、DROP(放弃)、ALTER(更改)数据操纵:INSERT(插入)、UPDATE(更新)、DELETE(删除)数据控制:GRANT(同意)、REVOKE(取消)注:大多数数据库都支持SQL语言。VFP也支持。但是具有自己的特点。如:由于VFP在数据安全性方面的欠缺,不支持SQL的数据控制功能。5.2查询功能SQL的核
3、心是查询,SQL的查询命令也称SELECT命令,它提供了简单而又丰富的SELECT数据查询语句。它的基本形式由SELECT-FROM-WHERE查询块组成,可以进行多个查询的嵌套。SQLSELECT命令的语法格式详见SQLSELECT命令的语法格式.doc从SELECT命令格式来看似乎非常复杂,实际上只要理解了命令中各个短语的含义,SQLSELECT还是很容易掌握的。在VisualFoxpro中一条语句结束时按回车键,在整个语句结束前或要连续写,不能回车。SELECT查询命令的使用非常灵活,用它可以构造各种各样的查询。
4、5.2.1简单查询简单查询是基于一个表的查询,也称为单表查询。由SELECT和FROM短语构成无条件查询,或由SELECT、FROM和WHERE短语构成条件查询。例1:从学生表(xsb)中检索所有学生的学号(xh),姓名(xm)和高考分数(gkfs)值。解:SELECTxh,xm,gkfsFROMxsb例2:查询课程表(kcb)中的所有记录。SELECT*FROMkcb例3:从xsb表中检索高考分数大于630分的学生姓名SELExmFROMxsbWHEREgkfs>630例4:从xsb表中检索高考分数大于630分的学生
5、所在的专业seledistzyfromxsbwheregkfs>630例5:从xsb表中检索专业为“信息管理”或“市场营销”且高考分数大于630分的学生学号selexhfromxsbwheregkfs>630and(zy='市场营销'orzy='信息管理')5.2.2简单的连接查询连接查询是一类基于多个表的查询。一个数据库中的多个表之间一般都存在某种内在联系,它们共同提供有用的信息。如果一个查询同时涉及两个以上的表,则称为连接查询。例6找出成绩大于85分的学号(cjb表)和课程名(kcb表)。selexh,kcmfro
6、mcjb,kcbwherecj>85andkcb.kch=cjb.kch注:如果在检索命令的FROM之后有两个关系,那么这两个关系之间肯定有一种联系,否则无法构成检索表达式;在连接中如果需要查询不同表中的相同字段名时,必须用关系前缀指明字段所属的表,即<表名>.<字段名>;WHERE短语后面也用表名做前缀,但通常是在FROM短语后为表名定义别名,这样可以方便输入。5.2.3嵌套查询嵌套查询是基于多个关系的查询,这类查询所要求的结果出自一个关系,但相关的条件却涉及多个关系。VisualFoxPro只支持两层查询,即内层查
7、询块和外层查询块,不支持SQL的多层嵌套查询。例7哪些城市至少有一个仓库的职工工资为1250元?解:sele城市fromckwhere仓库号in;(sele仓库号fromzgwhere工资=1250)注:可以看出上述查询中有两个SELECT查询块,即内层查询和外层查询。在嵌套查询中,只能对外层查询结果排序,不能对内层查询结果排序。例8查询所有职工工资都多于1200元的仓库信息。解:sele*fromckwhere仓库号notin;(sele仓库号fromzgwhere工资<=1200)sele*fromckwhere仓
8、库号notin;(sele仓库号fromzgwhere工资<=1200);and仓库号in(sele仓库号fromzg)例9查询和职工E4工资相同的所有职工记录解:sele*fromzgwhere工资IN;(sele工资fromzgwhere职工号='E4')或sele*fromzgwhere工资=;(sele工资fromzgwh
此文档下载收益归作者所有