计算机二级VF课件第7章.ppt_第1页
计算机二级VF课件第7章.ppt_第2页
计算机二级VF课件第7章.ppt_第3页
计算机二级VF课件第7章.ppt_第4页
计算机二级VF课件第7章.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7 1SQL概述 7 2定义功能 7 4查询功能 7 3操作功能 第7章关系数据库标准语言SQL SQL是结构化查询语言StructuredQueryLanguage的缩写 可以说查询是SQL语言的重要组成部分 但不是全部 SQL还包含数据定义 数据操纵和数据控制功能等部分 SQL已经成为关系数据库的标准数据语言 所以现在所有的关系数据库管理系统都支持SQL 7 5查询及视图的建立 7 1SQL概述 最早的SQL标准是于1986年10月由美国国家标准化组织ANSI AmericanNationalStandardsInstitute 公布的 随后 国际标准化组织ISO InternationalStandardsOrganization 于1987年6月也正式采纳它为国际标淮 89年提出了SQL89标准 现行标准为1992年提出的SQL92 SQL语言具有如下主要特点 SQL是一种一体化的语言 它包括了数据定义 数据查询 数据操纵和数据控制等方面的功能 它可以完成数据库活动中的全部工作 SQL语言是一种高度非过程化的语言 它没有必要一步步地告诉计算机 如何 去做 而只需要描述清楚用户要 做什么 SQL语言就可以将要求交给系统 自动完成全部工作 SQL语言非常简洁 SQL语言可以直接以命令方式交互使用 也可以嵌入到程序设计语言中以程序方式使用 7 2定义功能 7 2 2表结构的修改 7 2 3表的删除 7 2 1表的定义 7 2 1表的定义 在VisualFoxPro中通过SQL的CREATETABLE命令建立表 命令格式是 CREATETABLE DBFTableName1 NAMELongTableName FREE FieldName1FieldType nFieldWidth nPrecision NULL NOTNULL CHECKlExpression1 ERRORcMessageText1 DEFAULTeExpression1 PRIMARYKEY UNIQUE REFERENCESTableName2 TAGTagName1 FieldName2 PRIMARYKEYeExpression2TAGTagName2 UNIQUEeExpression3TAGTagName3 FOREIGNKEYeExpression4TAGTagName4REFERENCESTableName3 TAGTagName5 CHECKlExpression2 ERRORcMessageText2 FREE 指定所创建的表不添加到数据库中 如果没有打开数据库则不需要FREE NULL 在字段中允许Null值 NOTNULL 在字段中不允许Null值 CHECKLExpression1 指定字段的有效性规则 lExpression1可以是用户自定义函数 ERRORcMessageText1 指定当字段规则产生错误时 VisualFoxPro显示的错误信息 DEFAULTeExpression1 指定字段的默认值 PRIMARYKEY 将此字段作为主索引 主索引标识名和字段名相同 UNIQUE 将此字段作为候选索引 候选索引标识名和字段名相同 REFERENCES 建立的本表与其他表在相应索引上的永久性关系 但是其他表所提供的索引只能是主控索引或候选索引 本表上的索引可以是任何类型的索引 由本表上的索引类型决定关系是一对多还是一对一关系 本表为子表 没有用PRIMARYKEY或UNIQUE 又用了REFERENCES默认在此字段上建普通索引 然后和其他表建一对多关系 例7 1用命令建立教学管理数据库 CREATEDATABASE教学管理用SQLCREATE命令建立学生表 CREATETABLE学生 学号C 8 PRIMARYKEY 姓名C 8 性别C 2 DEFAULT 男 CHECK性别 男 OR性别 女 ERROR 性别只能输入男或女 出生日期D 班级C 16 NULL 团员否L 备注M 照片G 例7 2用SQLCREATE命令建立课程表 CREATETABLE课程 课程号C 7 PRIMARYKEY 课程名C 12 学时n 3 0 学分n 4 1 课程性质c 4 例7 3用SQLCREATE命令建立教师表 CREATETABLE教师 教师号C 8 PRIMARYKEY 教师姓名C 6 课程号C 7 FOREIGNKEY课程号TAG课程号REFERENCES课程 例 用SQLCREATE命令建立成绩表 CREATETABLE成绩 学号C 8 课程号C 7 成绩N 5 2 PRIMARYKEY学号 课程号TAG学号课号 FOREIGNKEY学号TAG学号REFERENCES学生 FOREIGNKEY课程号TAG课程号REFERENCES课程 如上命令有两个FOREIGNKEY REFERENCES 短语 分别说明了成绩表与学生表 成绩表与课程表之间的联系 注意 用SQLCREATE命令新建的表自动在最低可用工作区打开 并可以通过别名引用 新表的打开方式为独占方式 如果建立自由表 当前没有打开的数据库或使用了FREE 则很多选项在命令中不能使用 如NAME CHECK DEFAULT FOREIGNKEY PRIMARYKEY和REFERENCES等 7 2 2表结构的修改 修改表结构的命令是ALTERTABLE 该命令有三种格式 格式1 ALTERTABLETableName1ADD ALTER COLUMN FieldName1FieldType nFieldWidth nPrecision NULL NOTNULL CHECKlExpression1 ERRORcMessageText1 DEFAULTeExpression1 PRIMARYKEY UNIQUE REFERENCESTableName2 TAGTagName1 例7 4为课程表增加一个开课学期字段 类型为数值型 宽度为1 ALTERTABLE课程ADD开课学期N 1 例7 5将课程表的开课学期字段更改为字符型并设置相应的规则 ALTERTABLE课程ALTER开课学期C 1 CHECK开课学期 1 OR开课学期 2 从命令格式可以看出 该格式可以修改字段的类型 宽度 有效性规则 错误信息 默认值 定义主关键字和联系等 但是不能修改字段名 不能删除字段 也不能删除已经定义的规则等 格式2 ALTERTABLETableName1ALTER COLUMN FieldName2 NULL NOTNULL SETDEFAULTeExpression2 SETCHECKlExpression2 ERRORcMessageText2 DROPDEFAULT DROPCHECK 从命令格式可以看出 该格式主要用于定义 修改和删除有效性规则和默认值定义 例7 6修改或定义开课学期字段的有效性规则 ALTERTABLE课程ALTER开课学期 SETCHECK开课学期 1 OR开课学期 2 例7 7删除开课学期字段的有效性规则 ALTERTABLE课程ALTER开课学期DROPCHECK以上两种格式都不能删除字段 也不能更改字段名 所有修改是在字段一级 第三种格式正是在这些方面对前两种格式的补充 格式3 ALTERTABLETableName1 DROP COLUMN FieldName3 SETCHECKlExpression3 ERRORcMessageText3 DROPCHECK ADDPRIMARYKEYeExpression3TAGTagName2 DROPPRIMARYKEY ADDUNIQUEeExpression4 TAGTagName3 DROPUNIQUETAGTagName4 ADDFOREIGNKEY eExpression5 TAGTagName4REFERENCESTableName2 TAGTagName5 DROPFOREIGNKEYTAGTagName6 RENAMECOLUMNFieldName4TOFieldName5 例7 8将课程表的开课学期字段名改为开课时间 ALTERTABLE课程RENAMECOLUMN开课学期TO开课时间例7 9删除课程表中的开课时间字段 ALTERTABLE课程DROPCOLUMN开课时间例7 10将教师表的教师号和课程号定义为候选索引 候选关键字 索引名是emp sup ALTERTABLE教师ADDUNIQUE教师号 课程号TAGemp sup例7 11删除教师表的候选索引emp sup ALTERTABLE教师DROPUNIQUETAGemp sup 7 2 3表的删除 删除表的SQL命令是 DROPTABLETable nameDROPTABLE直接从磁盘上删除Table name所对应的dbf文件 如果Table name是数据库中的表并且相应的数据库是当前数据库 则从数据库中删除了表 否则虽然从磁盘上删除了dbf文件 但是记录在数据库dbc文件中的信息却没有删除 此后会出现错误提示 所以要删除数据库中的表时 最好应使数据库是当前打开的数据库 在数据库中进行操作 7 3操作功能 7 3 2删除 7 3 3更新 7 3 1插入 7 3 1追加记录 VisualFoxPro支持两种SQL追加命令的格式 第一种格式是标准格式 第二种格式是VisualFoxPro的特殊格式 第一种格式 INSERTINTOdbf name fname1 fname2 VALUES eExpression1 eExpression2 第二种格式 INSERTINTOdbf nameFROMARRAYArrayName FROMMEMVAR其中 INSERTINTOdbf name说明向由dbf name指定的表中插入记录 当插入的不是完整的记录时 可以用fname1 fname2 指定字段 VALUES eExpression1 eExpression2 给出具体的记录值 例7 12 往教师表中插入记录 42000003 李新 420013 可用如下命令 INSERTINTO教师VALUES 42000003 李新 420013 对以上的情况 假设课程号尚未确定 那么只能先插入教师号和教师姓名两个字段的值 这时可用如下命令 INSERTINTO教师 教师号 教师姓名 VALUES 42000003 李新 试比较上面的语句与下一条命令在功能上的区别 INSERTINTO教师VALUES 42000003 李新 null 7 3 2删除 SQL从表中删除数据的命令格式如下 DELETEFROM DatabaseName TableName WHERECondition 这里FROM指定从哪个表中删除数据 WHERE指定被删除的记录所满足的条件 如果不使用WHERE子句 则删除该表中的全部记录 例7 13 删除教师表中课程号值是空的记录 DELETEFROM教师WHERE课程号isnull注意 在VisualFoxPro中SQLDELETE命令同样是逻辑删除记录 如果要物理删除记录需要继续使用PACK命令 7 3 3更新 SQL的数据更新命令格式如下 UPDATE DatabaseName TableNameSETColumn Name1 eExpression1 Column Name2 eExpression2 WHERECondition一般使用WHERE子句指定条件 以更新满足条件的一些记录的字段值 并且一次可以更新多个字段 如果不使用WHERE子句 则更新全部记录 例7 14 将课程表中的大学英语增加2个学分 UPDATE课程SET学分 学分 2WHERE课程名 大学英语 例7 15 给所有课程的学时增加10 UPDATE课程SET学时 学时 10 7 4SQL的数据查询功能SQL的核心是查询 SQL的查询命令也称作SELECT命令 它的基本形式由SELECT FROM WHERE查询块组成 多个查询块可以嵌套执行 VisualFoxPro的SQLSELECT命令的语法格式如下 SELECT ALL DISTINCT TOP数值表达式 PERCENT 别名1 检索项1 AS列名1 别名2 检索项2 AS列名2 FROM 数据库名1 表名1 AS 别名1 INNER LEFT OUTER RIGHT OUTER FULL OUTER JOIN 数据库名2 表名2 AS 别名2 ON连接条件 INTODBF TABLE新表名 INTOCURSOR临时表表名 TOFILE文件名 ADDITIVE TOPRINTER PROMPT TOSCREEN PLAIN WHERE连接条件1 AND连接条件2 AND OR条件表达式1 AND OR条件表达式2 GROUPBY列名1 列名2 HAVING组条件表达式 UNION ALL SELECT语句 ORDERBY排序项1 ASC DESC 排序项2 ASC DESC 7 4 1简单查询 这些查询基于单个表 可以有简单的查询条件 查询由SELECT和FROM短语构成无条件查询 或由SELECT FROM和WHERE构成条件查询 例7 16 SELECT姓名FROM学生SELECT FROM学生 其中 表示所有字段 SELECT学号FROM学生WHERE性别 男 SELECTDISTINCT学号FROM成绩说明 DISTINCT排除查询结果中所有重复的行SELECT学号FROM成绩WHERE成绩 80 AND 学号 20015875 OR学号 20025005 7 4 2简单的联接查询 联接是关系的基本操作之一 联接查询是一种基于多个关系的查询 例7 17 SELECT姓名 成绩FROM学生 成绩 WHERE成绩 80AND 学生 学号 成绩 学号 SELECT学生 学号 姓名 成绩FROM学生 成绩 WHERE学生 学号 成绩 学号SELECT姓名 成绩 课程名FROM学生 成绩 课程 WHERE学生 学号 成绩 学号AND成绩 课程号 课程 课程号 sele1use学生indexon学号tagxxsele2use成绩setrelationto学号intoabrowsefor成绩 80fieldsa 姓名 成绩 7 4 3嵌套查询 嵌套查询是基于多个关系的查询 这类查询所要求的结果出自一个关系 但相关的条件却涉及多个关系 1 返回单值的子查询例 列出选修运筹学的所有学生的学号及成绩 SELECT学号 成绩FROM成绩WHERE课程号 SELEDISTINCT课程号FROM课程WHERE课程名 运筹学 2 返回一组值的子查询 要用ANY ALL IN例 查询学生的学号和成绩 要求其修的课程号是5200010 成绩比课程号是7200050课程的最低成绩要高 SELE学号 成绩FROM成绩 WHERE课程号 5200010 AND成绩 ANY SELE成绩FROM成绩WHERE课程号 7200050 例 查询学生的学号和成绩 要求其修的课程号是5200010 成绩比课程号是7200050课程的所有成绩要高 SELE学号 成绩FROM成绩 WHERE课程号 5200010 AND成绩 ALL SELE成绩FROM成绩WHERE课程号 7200050 例 列出选了课的所有的学生名单 SELECT姓名FROM学生WHERE学号IN SELECT学号FROM成绩 例 列出成绩合格的学生情况 SELECT FROM学生WHERE学号NOTIN SELECT学号FROM成绩WHERE成绩 60 7 4 4几个特殊运算符 在进行更复杂 涉及更多关系的检索之前 先介绍一下可以在SQLSELECT中使用的几个特殊运算符 它们是BETWEEN AND 和LIKE等 BETWEEN AND 意思是在 和 之间 这里的LIKE是字符串匹配运算符 通配符 表示0个或多个字符 另外还有一个通配符 表示一个字符 在SQL中 不等于 用 表示 另外还可以用否定运算符NOT写出等价命令 例 显示成绩在60到90分之间的成绩列表 SELE FROM成绩WHERE成绩BETWEEN60AND90例 显示2002级所有学生的基本情况SELE FROM学生WHERE学号LIKE 2002 7 4 5排序 使用SQLSELECT可以将查询结果排序 排序的短语是ORDERBY 具体格式如下 ORDERBY排序项1 ASC DESC 排序项2 ASC DESC 例7 19 SELECT FROM成绩ORDERBY成绩SELECT FROM学生ORDERBY学号 性别每个 排序项 都对应查询结果中的一列 它可以是下列之一 FROM子句中表的字段 一个数值表达式 表示查询结果中列的位置 最左边列编号为1 7 4 6简单的计算查询 SQL不仅具有一般的检索能力 而且还有计算方式的检索 比如检索职工的平均工资 检索某个仓库中职工的最高工资值等 用于计算检索的函数有 COUNT 计数 SUM 求和 AVG 计算平均值 MAX 求最大值 MIN 求最小值例7 20 SELECTCOUNT DISTINCT学号 AS人数FROM成绩SELECTSUM 成绩 AS总成绩FROM成绩SELECTSUM 成绩 FROM成绩WHERE学号IN SELECT学号FROM学生WHERE班级 信息管理02 1 SELECTAVG 成绩 FROM成绩WHERE学号IN SELECT学号FROM学生WHERE班级 信息管理02 1 SELECTMAX 成绩 FROM成绩WHERE课程号 4200013 7 4 7分组 利用GROUPBY子句进行分组计算查询使用得更加广泛 GROUPBY短语的格式如下 GROUPBY列名1 列名2 HAVING组条件表达式 可以按一列或多列分组 还可以用HAVING进一步限定分组的条件 下面是几个分组计算查询的例子 例7 21 求每个学生的平均成绩SELECT学号 AVG 成绩 FROM成绩GROUPBY学号例7 22 求至少选修了两门课程的学生的平均成绩SELECT学号 COUNT AVG 成绩 FROM成绩GROUPBY学号HAVINGCOUNT 2SELECT成绩 学号 COUNT AVG 成绩 姓名FROM成绩 学生 GROUPBY成绩 学号HAVINGCOUNT 2 WHERE成绩 学号 学生 学号 7 4 8利用空值查询 SQL支持空值 当然也可以利用空值进行查询例7 23找出尚未确定课程的教师 SELECT FROM教师WHERE课程号ISNULL例7 24列出已经确定了课程的教师 SELECT FROM教师WHERE课程号ISNOTNULL 7 4 9超联接查询 在新的SQL标准中还支持两个新的关系联接运算符 它们与我们原来所了解的等值联接和自然联接不同 原来的联接是只有满足联接条件 相应的结果才会出现在结果表中 而这两个新的联接运算是 首先保证一个表中满足条件的元组都在结果表中 然后将满足联接条件的元组与另一个表的元组进行联接 不满足联接条件的则将应来自另一表的属性值置为空值 SQLSELECT语句的完整语法格式中与联接运算有关的语法格式如下 SELECT FROMTable1INNER LEFT RIGHT FULLJOINTable2ONjoinConditionWHERE 其中 INNERJOIN等价于JOIN 为普通的联接 在VisualFoxPro中称为内部联接 LEFTJOIN为左联接 RIGHTJOIN为右联接 FULLJOIN可以称为全联接 即两个表中的记录不管是否满足联接条件将都在目标表或查询结果中出现 不满足联接条件的记录对应部分为NULL ONjoinCondition指定联接条件 从以上格式可以看出 它的联接条件在ON短语中给出 而不在WHERE短语中 联接类型在FROM短语中给出 下面是使用VisualFoxPro的SQLSELECT语句格式完成各种联接查询的例子 例7 32内部联接 即只有满足联接条件的记录才出现在查询结果中 SELECT学生 学号 姓名 课程号 成绩 FROM学生JOIN成绩ON学生 学号 成绩 学号如下两种命令格式也是等价的 SELECT学生 学号 姓名 课程号 成绩 FROM学生INNERJOIN成绩ON学生 学号 成绩 学号 SELECT学生 学号 姓名 课程号 成绩 FROM学生 成绩WHERE学生 学号 成绩 学号例7 33左联接 即除满足联接条件的记录出现在查询结果中外 第一个表中不满足联接条件的记录也出现在查询结果中 SELECT学生 学号 姓名 课程号 成绩 FROM学生LEFTJOIN成绩ON学生 学号 成绩 学号例7 34右联接 即除满足联接条件的记录出现在查询结果中外 第二个表中不满足联接条件的记录也出现在查询结果中 SELECT学生 学号 姓名 课程号 成绩 FROM学生RIGHTJOIN成绩ON学生 学号 成绩 学号例7 35全联接 即除满足联接条件的记录出现在查询结果中外 两个表中不满足联接条件的记录也出现在查询结果中 SELECT学生 学号 姓名 课程号 成绩 FROM学生FULLJOIN成绩ON学生 学号 成绩 学号 7 4 10集合的并运算 SQL支持集合的并 UNION 运算 即可以将两个SELECT语句的查询结果通过并运算合并成一个查询结果 短语格式 UNION ALL SELECTCommand 例7 36 SELECT学号from成绩where课程号 7200050 UNION SELECT学号from成绩where课程号 5200010 把一个SELECT语句的最后查询结果同另一个SELECT语句最后查询结果组合起来 默认情况下 UNION检查组合的结果并排除重复的行 要组合多个UNION子句 可使用括号 ALL防止UNION删除组合结果中重复的行 UNION子句遵守下列规则 不能使用UNION来组合子查询 两个SELECT命令的查询结果中的列数必须相同 两个SELECT查询结果中的对应列必须有相同的数据类型和宽度 只有最后的SELECT中可以包含ORDERBY子句 而且必须按编号指出所输出的列 如果包含了一个ORDERBY子句 它将影响整个结果 7 4 14VisualFoxPro中SQLSELECT的几个特殊选项 1 显示部分结果例7 38只显示前几项记录 有时只需要满足条件的前几个记录 这时使用TOPnExpr PERCENT 短语非常有用 其中nExpr是数字表达式 当不使用PERCENT时 nExpr是1至32767间的整数 说明显示前几个记录 当使用PERCENT时 nExpr是0 01至99 99间的实数 说明显示结果中前百分之几的记录 需要注意的是TOP短语要与0RDERBY短语同时使用才有效 例7 39显示年龄最小的三位同学的信息 SELECT TOP3FROM学生ORDERBY出生日期DESC例7 40显示年龄最大的那30 的同学的信息 SELECT TOP30PERCENTFROM学生ORDERBY出生日期 2 将查询结果存放到数组中可以使用INTOARRAYArrayName短语将查询结果存放到数组中 ArrayName可以是任意的数组变量名 一般将存放查询结果的数组作为二维数组来使用 每行一条记录 每列对应于查询结果的一列 查询结果存放在数组中 可以非常方便地在程序中使用 如下语句将查询到的学生信息存放在数组temp中 SELECT FROM学生INTOArraytemptemp 1 1 存放的是第一条记录的学号字段值 temp 1 3 存放的是第一条记录的性别字段值等 3 将查询结果存放在临时文件中使用短语INTOCURSORCursorName可以将查询结果存放到临时数据库文件中 其中CursorName是临时文件名 该短语产生的临时文件是一个只读的dbf文件 当查询结束后该临时文件是当前文件 可以像一般的dbf文件一样使用 但仅是只读 当关闭文件时该文件将自动删除 如下语句将查询到的学生信息存放在临时dbf文件tmp中 SELECT FROM学生INTOCURSORtmp 4 将查询结果存放到永久表中使用短语INTODBF TABLETableName可以将查询结果存放到永久表中 dbf文件 比如将例7 38的查询结果存放在表highsal中可以使用如下语句 SELECT TOP3FROM学生INTOTABLEhighsalORDERBY出生日期DESC5 将查询结果存放到文本文件中使用短语TOFILEFileName ADDITIVE 可以将查询结果存放到文本文件中 其中FileName给出了文本文件名 默认扩展名是txt 如果使用ADDITIVE结果将追加在原文件的尾部 否则将覆盖原有文件 如下语句将查询结果以文本的形式存储在文本文件tmp txt中 SELECT TOP3FROM学生TOFILEtmpORDERBY出生日期DESC如果TO短语和INTO短语同时使用 则TO短语将会被忽略 6 将查询结果直接输出到打印机使用短语TOPRINTER PROMPT 可以直接将查询结果输出到打印机 如果使用了PROMPT选项 在开始打印之前会打开打印机设置对话框 7 将查询结果送到VFP主窗口使用短语TOSCREENTOFILE TOPRINTER和TOSCREEN可使用PLAIN 防止列标题出现在显示的查询结果中 小结 掌握SQLSELECT不仅对学好 用好VisualFoxPro至关重要 也是以后使用其他数据库或开发数据库应用程序的基础 7 5查询与视图 7 5 1查询 7 5 2视图 查询和视图都是为快速 方便地使用数据库中的数据提供的一种方法 查询和视图有很多类似之处 创建视图与创建查询的步骤也非常相似 7 5 1查询 7 5 1 3查询设计器的局限性 7 5 1 2建立查询 7 5 1 1查询设计器 7 5 1 4运行查询 7 5 1 1查询设计器 1 查询的概念实际上 查询就是预先定义好的一个SQLSELECT语句 在不同的需要场合可以直接或反复使用 从而提高效率 查询是从指定的表或视图中提取满足条件的记录 然后按照想得到的输出类型定向输出查询结果 诸如浏览器 报表 表 标签等 查询是以扩展名为qpr的文件保存在磁盘上的 这是一个文本文件 它的主体是SQLSELECT语句 另外还有和输出定向有关的语句 2 查询设计器用 查询设计器 设计查询的基础是SQLSELECT语句 只有真正理解了SQLSELECT才能设计好查询 建立查询的方法很多 可以用CREATEQUERY命令打开查询设计器建立查询 可以在 新建 对话框中选择 查询 并单击 新建文件 打开查询设计器建立查询 可以在项目管理器的 数据 选项卡下选择 查询 然后单击 新建 命令按钮打开查询设计器建立查询 如果读者熟悉SQLSELECT 还可以直接编辑 qpr文件建立查询 在命令窗口中使用MODIFYFILEABC qpr命令或使用记事本等文本编辑器打开相应的qpr文件 注意 当一个查询是基于多个表时 这些表之间必须是有联系的 查询设计器会自动根据联系提取联接条件 否则在打开查询设计器之前还会打开一个指定联接条件的对话框 由用户来设计联接条件 7 5 1 2建立查询 选择字段 建立联结 对记录进行筛选 设计排序 分组功能在查询设计器中可以选择 查询 菜单下的 查看SQL 或单击查询设计器工具栏中的显示SQL窗口图标按钮来查看SQLSELECT语句 注意 这些SQLSELECT语句是由查询设计器生成的 所以有明显的VisualFoxPro痕迹 例如FROM短语中的表还给出了以叹号为分隔符的数据库名前缀 如 订货管理 7 5 1 3查询查询器的局限性 事实上 查询设计器只能建立一些比较规则的查询 而复杂的查询它就无能为力了 例如 SELECTout 学号 out 课程号 out 成绩FROM成绩out WHERE成绩 SELECTMAX 成绩 FROM成绩inner1 WHEREout 学号 inner1 学号 如上的查询利用查询设计器是设计不出来的 并且这样的查询也不能利用查询设计器进行修改 如果试图利用查询设计器进行修改会出现提示信息对话框 然后也只能在编辑器中打开修改 7 5 1 4运行查询 在项目管理器中 将 数据 选项卡的查询项展开 然后选择要运行的查询 单击 运行 命令按钮执行查询 也可以以命令方式执行查询 命令格式是 DO查询文件名 必须给出查询文件的扩展名qpr 查询去向的语句如下 浏览 临时表 INTOCURSOR学生情况 表 INTOTABLE学生查询 dbf 图形 INTOCURSORSYS 2015 DO GENGRAPH WITH QUERY GENGRAPH C PROGRAMFILES MICROSOFTVISUALSTUDIO VFP98 WIZARDS WZGRAPH APP 屏幕 TOSCREEN 报表 INTOCURSORSYS 2015 REPORTFORM报表2 frx 标签 INTOCURSORSYS 2015 LABELFORM 学生情况 lbx 7 5 2视图 在VisualFoxPro中视图是一个定制的虚拟表 可以是本地的 远程的或带参数的 视图可引用一个或多个表 或者引用其他视图 视图是可更新的 它可引用远程表 在关系数据库中 视图也称作窗口 即视图是操作表的窗口 可以把它看作是从表中派生出来的虚表 视图是根据对表的查询定义的 其命令格式如下 CREATEVIEWview name column name column name ASselect statement其中select statement可以是任意的SELECT查询语句 它说明和限定了视图中的数据 当没有为视图指定字段名 column name 时 视图的字段名将与select statement中指定的字段名或表中的字段名同名 视图是根据表定义或派生出来的 所以在涉及到视图的时候 常把表称作基本表 1 从单个表派生出的视图比如 某个用户对学生表只需要 或者只能知道学号和姓名 那么可以定义视图 CREATEVIEWe wASSELECT学号 姓名FROM学生其中e w是视图的名称 视图一经定义 就可以和基本表一样进行各种查询 也可以进行一些修改操作 对于最终用户来说 有时并不需要知道操作的是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论