SELECT *FROM AA INTO ARRAY ABC 三、将查询结果放到临时文件中:
命令格式为:INTO CURSOR CursorName(临时文件名) 例:将查询到的职工信息存放到临时文件ABC中。
SELECT * FROM SS INTO CURSOR ABC
注:INTO CURSOR短语一般用于存放一些临时结果,当使用完后这些临时文件会自动删除。
四、将查询结果存放到永久表中:
命令格式为:INTO DBF|TABLE TableName
例:将工资最高的那30%的职工信息存放到一个永久表中。
SELECT* TOP 30 PERCENT FROM SS INTO TABLE ABC ORDER BY DESC。 五、将查询结果存放到文本文件中:
命令格式为:TO FILE FileName[ADDITIVE]
注:ADDITIVE:使查询结果追加到TO FILE FileName所指定广西文件的内容后面。
例:将工资最高的那30%的职工信息存放到一文本文件AA中。
SELECT* TOP 30 PERCENT FROM SS TO FILE ABC ORDER BY DESC SELECT* FROM学生 TO FILE AA ADDITVE
数据的操作
SQL数据操作:包括数据插入、更新和删除。 一、插入记录:
1、格式1:INSERT INTO <表名>[字段名表] VALUES(<表达式1>,<表达式2>,??)
功能:在表中插入新记录:
例:在AA关系中插入元组:(E4,S3,OR02,2002/01/22,13000) INSERT INTO AA VALUES (“E4”,”S3”,”OR02”,{^2002-01-22},13000) 2、格式2:INSERT INTO<表名>FROM ARRAY<数组名> 功能:在表中插入新记录,数据来自于指定的数组名 二、修改记录:
命令格式:UPDATE <表名>SET<被修改的字段名>=<表达式>[WHERE <条件>
功能:用新的值去更新表中的记录
例:将“选课”表中“学生号”为001号的学生成绩增加10分
UPDATE 选课 SET 成绩=成绩+10 WHERE 学生号=“001”
注:一般使用WHERE子句指定条件,以更新满足条件的一些记录的字段值,并且一次可以更新多个字段;如果不使用WHERE子句,则更新全部记录,UPDATE命令只能用来更新单个表中的记录。 三、删除记录:
命令格式:DELETE FROM<表名>[WHERE<条件>] 功能:逻辑删除表中记录
例:要删除―选课‖表中成绩小于60分的记录
DELECT FROM 选课 WHERE 成绩<60 注:FROM指定从哪个表中删除数据,WHERE指定被删除的记录所满足的条件,如果不使用WHERE子句,则删除该表中的全部记录。带有删除标记的记录在PACK命令之前并不从表中做物理删除,可以用RECALL命令恢复带有删除标记的记录。
注:这三个SQL语句对表操作的命令与第三章VF中对表操作命令的区别。 四、数据定义:
表的定义:命令格式:CREATE TABLE|DBF<表名>[FREE](<字段名><类型>[(<字段宽度>)]??) 说明:
1 理解数据的说明; 2 理解创建方法; 3 撑握如下短语:
PRIMARY KEY(建立主索引);CHECK(设置规则);ERROR(设置错误信息);
DEFAULT(默认值);FREE(建立自由表;UNIQUE(建立候选索引); NULL或NOT NULL(是否允许为NULL值)等
例:用命令创建学生表。该表分别由字段学生号、姓名、性别、年龄构成,并且以学生为主索引,为年龄字段指定了有效性规则(年龄≥19)和显示的错误信息;
CREATE TABLE 学生;
(学生号N(3)PRIMARY KEY,姓名C(3),性别L(1),年龄N(2) CHECK(年龄>=19) ERROR―年龄必须满19岁‖) 五、表的删除:
命令格式为:DROP TABLE <表名> 功能:从磁盘上删除指定表文件
注:执行了DROP TABLE语句之后,所有与被删除表有关的主索引、默认值、验证规则都将丢失。当前数据库中的其他表若与被删除的表有关联,这些规则和关系也都将无效。 六、表结构的修改:
命令格式为:ALTER TABLE 有三种格式:
注:第三种命令格式是对前两面三刀种命令格式的补充,可以更改字段名,也可以删除字段还可以定义,修改和删除表级别的有效性规则。 例:为―选课‖表的字段―成绩‖更改字段名为―选课成绩‖
ALTER TABLE 选课RENAME 成绩 TO 选课成绩 例:删除―成绩‖字段
ALTER TABLE 选课 DROP COLUMN 成绩
例:将―选课‖表的学生号和选课号设置为候选索引,索引名为SS ALTER TABLE 选课ADD UNIQUE 学生号+选课号TAG SS 例:删除候选索引SS
ALTER TABLE 选课 DROP UNIQUE TAG SS 视图在后一章上。
第六章 查询与视图
一、查询:是一个预定义好的SQL SELECT语句。是以文本文件形式存储在磁盘的。
扩展名为:.QPR
二、创建查询的常用方法:
??使用命令创建:CREATE QUERY<文件名??> ??使用新对话框创建; ??使用项目管理器创建; 注:创建步骤必须撑握。 三、查询设计器项卡: 选项卡 对应SQL短语 作用 字段 SELECT 用于指定查询结果的字段或函数及表达式 联接 JOIN ON 用于指定连接条件 筛选 WHERE 用于指定满足条件的元组 排序依据 ORDER BY 用于指定排序的字段和排序方式 GROUP BY 和分组依据 用于指定分组依据和限制分组依据 HAVING 杂项 DISTINCT、TOP 用于去掉重量复值或显示前面部分元组 四、查询去向选项卡: 选项卡 功能或短语 浏览 将查询结果以表格形式显示出来,相当于BROWS命令
临时表 将查询结果生丰一个临时只读表中,相当于INTO CURSOR短语 表 半查询结果生成一个永久表(自由表),相当于INTO DBF|TABLE短语 图形 将查询结果生成一个图表文件 报表 将查询结果生成一个.frx的报表文件 标签 将查询结果生成一个.LBX的标签文件 五、查询中需注意以下两点:
1、查询设计器不能写所有的SQL查询,只能写一些简单规则SQL查询,较复杂的查询不能建立(如:内外层相互嵌套不能建立)
2、用命令DO<查询文件名>运行查询时,必须加上文件后缀名.QPR
一、视图:是一个定制的虚拟表(没有真正包含数据);分为本地视图和远程视图。视图可以引用一个或多个表,也可以引用其它视图。视图是可以更新,它可以用远程表;
1 使用视图时必须先打开该视图所在的数据库。
视图是根据表定义或派生出来的,所以在涉及到视图的时候,常把表称做基本表;
2 创建视图的方法:
3 使用SQL命令创建方法:
CREATE VIEW<视图名>[<列名>,<列名>]?)] AS<子查询>
[WITH CHECK OPTION]
例:定义一个视图SS-S,包含职工号、月工资、年工资3个字段。
CREATE VIEW SS-S AS;
SELECT 职工号,工资AS月工资,工资*12 AS年工资FROM AS 2、使用新建对话框创建 3、使用项目管理器创建;
注:在关系数据库中,视图始终不真正含有数据,它始终是原来表的一个窗口,虽然视图可以便表一样进行查询,但是插入、更新和删除操作在视图上却有一定的限制。在一般情况下,当一个视图是由单信表导出时可以进行插入和更新操作,不能进行删除操作;当视图从多个表导出时,插入、更新和删除操作都不允许进行。这种了限制是有必要的,它可以避免一些潜在问题的发生。 三、视图的分类:
1、本地视图:使用当前数据库中的Visual FoxPro表建立的视图是本地视图; 使用本地视图向导创建本地视图
A:打开本地视图向导:文件——新建——向导进行操作; B:打开视图设计器:文件——新建——打开——进行操作。 2、创建远程视图:
注:远程包括两个方面的内容:
一是数据源不在本地,需要进行远程连接才能获得需要的数据源表中的信息;
二是数据源表不是VFP表或视图,而是其他数据库系统的数据。只要满足其中一种情况就需要创建远程视图。VFP允许将一个或多个远程视图添加到本地视图中,这样在同一视中就要以同时访问VFP数据和远程ODBC数据源中的数据。
例:定义视图SX-SS,生成含有字段学生号和姓名的视图; CREATE VIEW SX-SS AS;
SELECT 学生号,姓名 FROM SX
例:定义视图SX-WT,查询学生号是001号的学生。
CEREATE VIEW SX-WT AS;
SELECT 学生号,姓名FROM SX; WHERE 学生号=001
四、查询设计器与视图设计器的主要区别; 5 由于视图可以更新,为此在视图设计器中多了一个―更新条件‖选项卡,查询
不能更新;
6 在视图设计器中没有查询去向,而查询设计器有查询去向;
7 查询是以.QPR为扩展名的形式保存在磁盘中,而视图设计完后,在磁盘上
找不到类似的文件,视图的结果保存在数据库中。 五、使用视图:
注:视图建立好以后,就要以像运行查询一样运行视图,也可以重新命名保存视图,不但可以用视图来显示和更新数据,而且还可以通过调整视图的属性来提高性能。视图的使用类似于表。 1 视图操作:
A;使用USE命令在数据库中打开视图或关闭视图。