Visual FoxPro 6.0 数据库技术与应用 第2版 教学课件 ppt 刘德山 邹健_ 第四章

上传人:E**** 文档编号:89399394 上传时间:2019-05-24 格式:PPT 页数:24 大小:84.50KB
返回 下载 相关 举报
Visual FoxPro 6.0 数据库技术与应用 第2版  教学课件 ppt 刘德山 邹健_ 第四章_第1页
第1页 / 共24页
Visual FoxPro 6.0 数据库技术与应用 第2版  教学课件 ppt 刘德山 邹健_ 第四章_第2页
第2页 / 共24页
Visual FoxPro 6.0 数据库技术与应用 第2版  教学课件 ppt 刘德山 邹健_ 第四章_第3页
第3页 / 共24页
Visual FoxPro 6.0 数据库技术与应用 第2版  教学课件 ppt 刘德山 邹健_ 第四章_第4页
第4页 / 共24页
Visual FoxPro 6.0 数据库技术与应用 第2版  教学课件 ppt 刘德山 邹健_ 第四章_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《Visual FoxPro 6.0 数据库技术与应用 第2版 教学课件 ppt 刘德山 邹健_ 第四章》由会员分享,可在线阅读,更多相关《Visual FoxPro 6.0 数据库技术与应用 第2版 教学课件 ppt 刘德山 邹健_ 第四章(24页珍藏版)》请在金锄头文库上搜索。

1、第四章 SQL的应用 SQL是结构化查询语言Structured Query Language的缩写,它既可用于大型数据库系统,也可以用于小型数据库系统,是目前关系型数据库的通用语言。SQL包括数据定义、数据操纵和数据控制等功能,Visual FoxPro支持SQL。,4.1 SQL概述 4.2 SQL的查询功能 4.3 SQL数据操纵 4.4 SQL数据定义,4.1 SQL概述 1SQL的发展 SQL是1974年由Boyce和Chamverin提出的。1981年,IBM发布了它的第一个基于SQL的商业产品 SQL/DS。在 20世纪80年代早期,大量的开发商纷纷发布了各自的基于 SQL的关系

2、型数据库管理系统,基于这种情况,美国国家标准化协会(ANSI)和国际标准化组织(ISO)于1986年共同提出了一些SQL的标准。这些标准包括1986年10月由ANSI公布的SQL86标准、1989年通过的SQL89标准和1992年通过的SQL92标准。目前,各主流数据库采用的标准是SQL92。,2SQL的特点 (1)SQL是一种一体化的语言。 (2)SQL是一个非过程化语言。 (3)SQL既是自含式语言,又是嵌入式语言。 3SQL的功能 SQL功能强大,可以完成数据定义、数据查询、数据操纵和数据控制功能,但其核心功能只用9个动词,如表4-1所示。,4.2 SQL的查询功能 命令格式为 SELE

3、CT ALL|DISTINCT | FROM JOIN ON WHERE GROUP BY HAVING ORDER BY ASC|DESC 各选项功能如下。 SELECT短语说明要查询的字段或函数表达式。 FROM短语说明查询的数据来源,即查询的数据来自于哪些表。 WHERE短语说明查询条件。 GROUP BY短语用于对查询结果按分组字段名进行分组。 HAVING短语必须跟随GROUP BY使用,它用来限定分组必须满足的条件。 ORDER BY 短语用于对查询的结果进行排序。,4.2.1 简单查询 SQL查询的基本形式是SELECT-FROM-WHERE,可以完成对表的投影或筛选操作,本小节

4、是基于单表的简单查询。 例4-1 检索student表中的所有专业值。 例4-2 检索course表中的全部信息。 例4-3 检索助学金高于600元的学生的学号和姓名信息。 例4-4 检索性别为“男”,并且出生日期在1990年1月1日以后或 专业是“会计”的学生信息。,4.2.2 联接查询 联接是关系的基本操作之一,联接查询是一种基于多个表的查询,这些表之间需要有联接条件。 例4-5 检索出选修“VFP程序设计”的学生的学号、课程号、成绩和学分。 SELECT 学号,course.课程号,成绩,学分 FROM score,course; WHERE course.课程号=score.课程号 A

5、ND 课程名=“VFP程序设计“ 例4-6 检索出选修“VFP程序设计”课程的学生的学号、姓名、课程号、成绩和学分。,4.2.3 嵌套查询 在SQL中,可以将一个查询嵌入在另一个查询的WHERE子句中,这类查询称为嵌套查询,一般将内层的查询称为子查询,将外层的查询称为父查询。嵌套的SELECT查询使得SQL可以实现各种复杂的查询。子查询必须用括号括起来。 嵌套查询的执行过程是先求解子查询,用于建立父查询的条件。子查询的结果必须是一个确定的内容,如果结果为一个值,一般用谓词“=”,如果结果为一个集合,使用的谓词是IN或EXIST等。 例4-7 检索有成绩高于90分的课程号和课程名。 SELECT

6、 课程号,课程名 FROM course WHERE 课程号 IN; (SELECT 课程号 FROM score WHERE 成绩90),4.2.3 嵌套查询 例4-8 检索和”李宏伟“相同专业的所有学生的姓名、性别和出生日期。 例4-9 检索所有课程的考试成绩都在80分之上的学生的学号、姓名和专业。,4.2.4 分组查询 SQL中使用GROUP BY 子句对查询结果进行分组,HAVING子句限定分组满足的条件。在分组查询中,可以使用WHERE子句先进行数据筛选。 例4-10 检索出score表中各门课的平均成绩。 SELECT 课程号,AVG(成绩) AS 平均成绩 FROM score

7、GROUP BY 课程号 例4-11 求选课人数多于5名同学的各门课程的平均成绩。,4.2.5 SQL查询中的其他子句 SQL查询除了使用SELECT-FROM-WHERE基本形式外,还提供了排序子句ORDER BY、SQL函数、LIKE运算符等,这些子句丰富了SQL的功能。 1排序子句 SQL中排序的子句是ORDER BY,命令格式为: ORDER BY ASC|DESC 其中选项ASC表示升序,选项DESC表示降序,默认的按升序排序。 例4-12 按出生日期升序检索student表全部信息。 例4-13 从course表和score表中检索出课程名、学号和成绩信息,按课程名升序、成绩降序显

8、示。,4.2.5 SQL查询中的其他子句 2显示部分查询结果 在数据检索中,有时只要求显示满足条件的前几个记录,这时需要使用TOP子句,TOP子句的格式为: TOP n PERCENT 当无PERCENT短语时,n为正整数;当使用PERCENT时,n是0.0199.99的实数。需要注意的是,TOP短语需要和ORDER BY 子句同时使用才有效。 例4-14 从student表中检索助学金最低的3位同学的信息。 例4-15 显示助学金最高的30%学生的信息。,3SQL中的函数 SQL为提高数据检索能力,提供了用于检索的算术函数,即计数函数COUNT()、求和函数SUM()、平均值函数AVG()、

9、最大值函数MAX()和最小值函数MIN()。 例4-16 检索出score表中所有成绩的平均分。 例4-17 统计出score表中的记录个数。 例4-18 检索student表中的助学金的总和。 例4-19 检索score表中”C02“课程的最高分。,4BETWEENAND子句 查询界于某范围内的信息,该子句包括边界条件。 例4-20 从student表中检索助学金在500-1000元范围内的学生的姓名、专业和助学金。 5LIKE运算符 LIKE是字符串匹配运算符,和通配符“%”、“_”连用。通配符“%”表示0或多个字符,通配符“_”(下画线)表示一个字符。 例4-21 检索姓张的同学的信息。

10、 6不等于运算符 在SQL中,“不等于”用“!=”表示。 例4-22 检索不是计算机专业的学生信息。,4.2.6 利用空值查询 SQL支持空值,可以利用空值进行查询。查询空值时要使用IS NULL,短语“=NULL”是无效的,因为空值不是一个确定的值,不能用“=”这样的运算符进行比较。 例4-23 查询有课程未参加考试的学生姓名和未参加考试的课程(未参加考试即课程的成绩为空值)。 SELECT 姓名,课程号 FROM student,score; WHERE student.学号=score.学号 AND 成绩 IS NULL 运行结果如图4-13所示。,4.2.7 使用量词和谓词的查询 SQ

11、L中支持基于量词和谓词的查询,量词包括ANY、SOME、ALL,其中ANY和SOME是同义词,在进行比较运算时只要子查询中有一行能使结果为真,则结果就为真;而ALL则要求子查询中的所有行都使结果为真时,结果才为真。 EXISTS是谓词,EXISTS和NOT EXISTS用来检查在子查询中是否有结果返回,即存在或不存在满足条件的元组。 例4-24 检索有成绩高于90的学生信息。 例4-25 检索有成绩高于学号为”10012“同学的最高成绩的学 生的学号。,4.2.8 集合的并运算 SQL支持集合的并(UNION)运算,即可以将两个SELECT语句的查询结果通过并运算合并成一个查询结果。为了进行并

12、运算,要求这样的两个查询结果具有相同的字段个数,并且对应字段的值要出自同一个值域,即具有相同的数据类型和取值范围。 例4-26 检索出专业为“计算机”和“数学”的学生信息。 SELECT * FROM student WHERE 专业=“计算机“ UNION; SELECT * FROM student WHERE 专业=“数学“ 由于并运算的两个查询来自于同一个表,这个语句等价于: SELECT * FROM student WHERE 专业=“计算机“ OR 专业=“数学“,4.2.9 查询去向 SQL的查询结果可以存放到表、临时表、文本文件或数组中。 例4-27 将course表中学分为

13、3的数据检索到表course1.dbf中。 SELECT * FROM 课程 WHERE 学分=3 INTO TABLE course1 例4-28 将course中学分为3的数据检索到临时表tmp.dbf中。 SELECT * FROM course WHERE 学分=3 INTO CURSOR tmp 例4-29 将course中信息存储到文本文件course.txt中。 SELECT * FROM course TO FILE course 例4-30 检索score中“C02”课程的最高分,将其存放到数组arr中。 SELECT MAX(成绩) FROM score WHERE 课程号

14、= “C02“ INTO ARRAY arr,4.3 SQL数据操纵 4.3.1 插入记录 插入记录命令的格式是: INSERT INTO VALUES() 例4-31 向course表中插入记录(”C04”,”C语言”,4)。 例4-32 向student表中插入记录(”40001”,”ROSE”,1998-8-8,” 英语”,1000)。 4.3.2 更新记录 更新记录命令的格式是: UPDATE SET = ,=WHERE 例4-33 student表中计算机专业学生的助学金增加10%。,4.3 SQL数据操纵 4.3.3 删除记录 删除记录命令的格式是: DELETE FROM WHE

15、RE 例4-34 删除student表中出生日期在1990年以后的学生记录。,4.4 SQL数据定义 4.4.1 创建数据库 在SQL中,创建数据库的命令是CREATE DATABASE,命令格式为 CREATE DATABASE Visual FoxPro中创建数据库的命令也是CREATE DATABASE。 4.4.2 创建表 在SQL中,创建表的命令是CREATE TABLE,命令格式为 CREATE TABLE|DBF FREE (,)NULL|NOT NULL CHECK ERROR DEFAULT PRIMARY KEY|UNIQUE , ),4.4 SQL数据定义 4.4.1 创

16、建数据库 4.4.2 创建表 例4-35 用SQL命令建立“图书管理”数据库,在数据库中建立表book(图书编号 C(4),图书名称 C(14),数量 N(2),购置日期 D,日租金 N(4,1),内容简介 M),并为图书编号设置主索引,购置日期不允许为空值。 例4-36 在“图书管理”数据库中建立rent表(客户编号 C(4),图书编号 C(4),租借日期 D,押金N(5,1),还书日期D),为客户编号设置候选索引,为押金字段设置有效性规则:押金大于50并且押金小于100, 错误时的提示信息为“押金界于50至100之间”,并设置默认值为80。,4.4.3 删除表 删除表的SQL命令是: DROP TABLE 4.4.4 修改表 修改表结构的命令是ALTER TABLE,该命令有以下3种格式。 格式1: ALTER TABLE ADD|ALTER COLU

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

当前位置:首页 > 高等教育 > 大学课件

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