第六章SQL语言的应用1.ppt
《第六章SQL语言的应用1.ppt》由会员分享,可在线阅读,更多相关《第六章SQL语言的应用1.ppt(46页珍藏版)》请在三一办公上搜索。
1、Visual FoxPro,1,第六章,SQL语言的应用,Visual FoxPro,2,6.1 SQL语言概述6.2 数据查询6.3 数据定义6.4 数据操纵,Visual FoxPro,3,20世纪80年代初,美国国家标准协会(ANSI)开始着手制定SQL标准。SQL标准的出台使SQL作为标准关系数据库语言的地位得到了加强。目前流行的关系数据库管理系统,如Qracle、Sybase、SQL Server、Visual FoxPro等都采用了SQL语言标准,而且很多数据库都对SQL语句进行了再开发和扩展。,6.1 SQL语言概述,Visual FoxPro,4,SQL语言的特点:(1)SQL
2、是一种一体化的语言。尽管设计SQL的最初目的是查询,数据查询也是其最重要的功能之一,但SQL决不仅仅是一个查询工具,它集数据定义、数据查询、数据操纵和数据控制功能于一体,可以独立完成数据库的全部操作。(2)SQL语言是一种高度非过程化的语言。它没有必要一步步地告诉计算机“如何”去做,而只需要描述清楚用户要“做什么”,SQL语言就可以将要求交给系统,自动完成全部工作。(3)SQL语言非常简洁。虽然SQL语言功能很强,但它只有为数不多的9条命令:CREATE、DROP、ALTER、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE。另外SQL的语法也非常简单,它很接近
3、英语自然语言,因此容易学习和掌握。,Visual FoxPro,5,(4)SQL语言可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。现在很多数据库应用开发工具都将SQL语言直接融入到自身的语言之中,使用起来更方便,Visual FoxPro就是如此。这些使用方式为用户提供了灵活的选择余地。此外,尽管SQL的使用方式不同,但SQL语言的语法基本是一致的。SQL只是一种建议标准,各种数据库产品中所实现的SQL在语法、功能等方面均略有差异,本章讲述Visual FoxPro 中SQL的语法、功能与应用。,Visual FoxPro,6,6.1 SQL数据查询定义,查询在数据库和
4、表中查找与给定条件匹配的数据,并由此生成新的关系或输出。在所有的语言中,基本通用SQL语句,Visual FoxPro,7,查询的基本用法和子句,参照表:仓库表(仓库号 C,城市 C,面积 N)职工表(仓库号 C,职工号 C,工资 N)订购单表(职工号 C,供应商号 C,订货单号,订购日期)基本语句一:SELECT:查询动词,说明要查找的数据,它可以是字段名,表达式和常量FROM:确定数据的来源,指明表名或它的别名,可以是多个表,Visual FoxPro,8,查询的基本用法和子句,范例一:SELECT*FROM 职工SELECT 仓库号,城市 FROM 仓库表 ORDER BY 面积 DES
5、CSELECT DISTINCT 供应商号 FROM 订购单表SELECT*FROM 仓库表 WHERE 面积=380SELECT A.仓库号,B.城市,B.职工号,B.工资;FROM 仓库表 A,职工表 B;WHERE A.仓库号=B.仓库号,Visual FoxPro,9,基本语句二:WHERE:说明查询记录的条件,两个表之间的联接条件,在数据库中的永久连接默认为当然的条件。范例二:求解:查询为S3供应商提供服务的仓库所在的城市SELECT A.城市;FROM 仓库表 A,职工表 B,订购单表 C;WHERE A.仓库号=B.仓库号.AND.;B.职工号=C.职工号.and.C.供应商名=
6、“S3”问题:完成学生成绩的查询,,查询的基本用法和子句,Visual FoxPro,10,基本语句三:ORDER BY:对查询的结果排序GROUP BY 组表达式1,:对查询结果进行分和分类汇总 HAVING 条件表达式:限定分组条件范例三:成绩查询SELECT*FROM 成绩 ORDER BY 成绩 DESCSELECT 学号,SUM(成绩)AS 合计 FROM 成绩;ORDER BY 合计 DESC;GROUP BY 学号SELECT A.姓名,A.学号,SUM(B.成绩)AS 合计 FROM 学生 A,成绩 B;ORDER BY 合计 DESC;GROUP BY A.学号,查询的基本用
7、法和子句,Visual FoxPro,11,查询的基本用法和子句,基本查询语句四:INTO 目标|TO PRINTER|TO SCREEN|TO FILE_NAME确定查询的去向:打印机,屏幕,表和目标(默认的是屏幕),目标可以是:ARRAY 数组名CURSOR 临时表名DBF(或TABLE)表名范例4:SELECT MAX(单价)INTO ARRAY A FROM SBSELECT 姓名,房间号,标准价格*天数 AS 实际房费;FROM 酒店管理 INTO TABLE 结算,Visual FoxPro,12,综合分析:假设有设备表SB和大修表DX,请分析以下SQL语句的功能:基本表格:SB.
8、DBF DX.DBF范例5:SELECT SB.名称,SUM(DX.费用)AS 大修总费用 from SB,DX;WHERE SB.编号=DX.编号.AND.LEFT(SB.编号,3)”038”;GROUP BY DX.编号;INTO TABLE 大修报表;ORDER BY 2,查询的基本用法和子句,Visual FoxPro,13,简单的计算功能:COUNT SUM AVG MAX MIN范例6:sele 仓库号,count(distinct 职工号)as 职工个数;from 职工 where 工资=1220;group by 仓库号,查询的基本用法和子句,Visual FoxPro,14,
9、查询的基本用法和子句,嵌套查询:SELECT*FROM 成绩 WHERE 学号 IN;(SELECT 学号 FROM 成绩 WHERE 成绩=60)问题四:列出成绩高于平均的全部学生的清单,Visual FoxPro,15,例 列出全部学生名单。例 列出所有学生姓名,去掉重名。,SELECT*FROM 学生,SELECT DISTINCT 姓名 AS 学生名单 FROM 学生,Visual FoxPro,16,例 将所有的学生入学成绩四舍五入,只显示学号、姓名和入学成绩。例 求出所有学生的入学成绩平均分。,SELECT 学号,姓名,ROUND(入学成绩,0)AS 入学成绩 FROM 学生,SE
10、LECT AVG(入学成绩)AS 入学成绩平均分 FROM 学生,Visual FoxPro,17,例 求出湖南学生入学成绩平均分。例 列出非湖南籍的学生名单。,SELECT 籍贯,AVG(入学成绩)AS 入学成绩平均分 FROM 学生 WHERE 籍贯=湖南,SELECT 学号,姓名,籍贯 FROM 学生 WHERE 籍贯湖南以上命令的功能等同于:SELECT 学号,姓名,籍贯 FROM 学生 WHERE 籍贯!=湖南或SELECT 学号,姓名,籍贯 FROM 学生 WHERE NOT(籍贯=湖南),Visual FoxPro,18,例 列出江苏籍和贵州籍的学生名单。,SELECT 学号,姓
11、名,籍贯 FROM 学生 WHERE 籍贯 IN(江苏,贵州)以上命令的功能等同于:SELECT 学号,姓名,籍贯 FROM 学生 WHERE 籍贯=江苏 OR 籍贯=贵州,Visual FoxPro,19,例 列出入学成绩在560分到650分之间的学生名单。例 列出所有的姓赵的学生名单。,SELECT 学号,姓名,入学成绩 FROM 学生 WHERE 入学成绩 BETWEEN 560 AND 650在以上命令的功能等同于:SELECT 学号,姓名,专业 FROM 学生 WHERE 入学成绩=560 AND 入学成绩=650,SELECT 学号,姓名 FROM 学生 WHERE 姓名 LIKE
12、 赵%以上命令的功能等同于:SELECT 学号,姓名,专业 FROM 学生 WHERE 姓名=赵,Visual FoxPro,20,例 列出所有成绩为空值的学生学号和课程号。,SELECT 学号,课程号 FROM 选课 WHERE 成绩 IS NULL 在以上命令中,使用了运算符IS NULL,该运算符是测试字段值是否为空值,在查询时用“字段名 IS NOTNULL”的形式,而不能写成“字段名=NULL”或“字段名!=NULL”。,Visual FoxPro,21,例 列出选修“数据库原理”的所有学生的学号。,SELECT 学号 FROM 选课 WHERE 课程号=;(SELECT 课程号 F
13、ROM 课程 WHERE 课程名=数据库原理)上述SQL语句执行的是两个过程,首先在课程表中找出“数据库原理”的课程号(比如“01001”),然后再在选课表中找出课程号等于“01101”的记录,列出这些记录的学号。,Visual FoxPro,22,例 列出选修“01101”课的学生,这些学生的成绩比选修“01102”课的最高成绩还要高的学生的学号和成绩。,SELECT 学号,成绩FROM 选课 WHERE 课程号=01102 AND成绩ALL(SELECT 成绩 FROM 选课 WHERE 课程号=01102)该查询的含义是:先找出选修“01102”课的所有学生的成绩(比如说结果为87和72
14、),然后再在选修“01102”课的学生中选出其成绩中高于选修“01102”课的所有成绩(即高于87分)的那些学生。,Visual FoxPro,23,例 列出选修“数据库原理”或“软件工程”的所有学生的学号。,SELECT 学号 FROM 选课 WHERE 课程号 IN;(SELECT 课程号 FROM 课程 WHERE 课程名=数据库原理OR 课程名=软件工程)IN是属于的意思。,Visual FoxPro,24,例 输出所有学生的成绩单,要求给出学号、姓名、课程号、课程名和成绩。,SELECT a.学号,a.姓名,b.课程号,c.课程名,b.成绩;FROM 学生 a,选课 b,课程 c;W
15、HERE a.学号=b.学号 AND b.课程号=c.课程号,Visual FoxPro,25,例 列出男生的选课情况,要求列出学号、姓名、课程号、课程名、授课教师和学分数。,SELECT a.学号,a.姓名 AS 学生姓名,b.课程号,c.课程名,e.姓名 AS 教师姓名,c.学分 FROM 学生 a,选课 b,课程 c,授课 d,教师 e;WHERE a.学号=b.学号 AND b.课程号=c.课程号 AND;c.课程号=d.课程号 AND d.教师号=e.教师号 AND a.性别=“男”,Visual FoxPro,26,例 列出选修“01102”课的学生中,期末成绩大于学号为“2001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 SQL 语言 应用

链接地址:https://www.31ppt.com/p-5667379.html