当前位置:首页 > 二级VF教案
(2) SQL不仅可以对多个关系进行连接操作,也可以将同一关系与其自身进行连接,这种连接就称为自连接。在关系的自连接操作中,别名是必不可少的。 九、使用量词和谓词的查询:
1、 some/any:用在嵌套查询中,只要满足子查询中的一个结果即可,可与一般嵌套查询相互替换
2、 all:用在嵌套查询中,满足子查询中的所有的结果,可与一般嵌套查询相互替换
3、 Exists:判断子查询中是否有结果返回,与一般嵌套查询可相互替换 Select 字段列表 from 表1 where exists (select * from 表2 where 公共字段=表1.公共字段)
十、超连接查询:
SELECT?
FROM 表名 INNER|LEFT|RIGHT|FULL JOIN 表名 ON 连接条件 WHERE?
INNER JOIN等价于JOIN,为普通的联接,称为内联接。内联接是指包括符合条件的每个表的记录,也称之为全记录操作。
LEFT JOIN为左外联接,左外联接是指连接满足条件左侧表的全部记录。
RIGHT JOIN为右外联接,右外联接是指连接满足条件右侧表的全部记录。
FULL JOIN为全外联接,即两个表中的记录不管是否满足联接条件将都在目标表或查询结果中出现,不满足联接条件的记录对应部分为NULL。 注意:
JOIN联接格式在联接多个表时的书写方法要特别注意,在这种格式中,JOIN的顺序和ON的顺序是很重要的,特别要注意JOIN的顺序要和ON的顺序正好相反。
十一、VFP中SQL SELECT的几个特殊选项;
1、 显示部分结果:top n [percent] 该短语只能跟order by同时使用,放在select部分
2、 把查询结果保存到数组中:into array 数组名 该数组是二维 3、 保存到临时表中:into cursor 表名 4、 保存到永久表中:into table|dbf 表名 5、 保存到文本文件中(TXT文件):to file 文件名 6、 输出到打印机:to printer [prompt]
4.3 操作功能
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<数组名> 功能:在表尾插入新记录,数据来自于指定的数组名
例:查询工资>=1220的所有职工的信息并保存到数组temp中,再建立一个表zg.dbf,表结构与“职工”表相同,再把数组中的记录添加到zg表中。
二、修改记录:
命令格式:
UPDATE <表名>SET<被修改的字段名>=<表达式>[WHERE <条件>] 功能:用新的值去更新表中的记录
例:将“选课”表中“学生号”为001号的学生成绩增加10分 UPDATE 选课 SET 成绩=成绩+10 WHERE 学生号=“001”
注:一般使用WHERE子句指定条件,以更新满足条件的一些记录的字段值,并且一次可以更新多个字段;如果不使用WHERE子句,则更新全部记录,UPDATE命令只能用来更新单个表中的记录。 三、删除记录:
命令格式:DELETE FROM<表名>[WHERE<条件>] 功能:逻辑删除表中记录
例:要删除“选课”表中成绩小于60分的记录 DELETE FROM 选课 WHERE 成绩<60
注:FROM指定从哪个表中删除数据,WHERE指定被删除的记录所满足的条件,如果不使用WHERE子句,则删除该表中的全部记录。带有删除标记的记录在PACK命令之前并不从表中做物理删除,可以用RECALL命令恢复带有删除标记的记录。
注:这三个SQL语句对表操作的命令与第三章VF中对表操作命令的区别。 4.4 定义功能 一、表的定义:
命令格式:
CREATE TABLE|DBF<表名>[FREE](<字段名><类型>[(<字段宽度>)]??) 说明:
? 理解数据的说明; ? 理解创建方法; ? 掌握如下短语:
PRIMARY KEY(建立主索引);CHECK(设置规则);ERROR(设置错误信息); DEFAULT(默认值);FREE(建立自由表);UNIQUE(建立候选索引); NULL或NOT NULL(是否允许为NULL值);FPREIGN KEY等
例:用命令创建学生表。该表分别由字段学生号、姓名、性别、年龄构成,并且以学生为主索引,为年龄字段指定了有效性规则(年龄≥19)和显示的错误信息;
CREATE TABLE 学生;
(学生号 N(3) PRIMARY KEY,姓名 C(3),性别 L,年龄 N(2) CHECK(年龄>=19) ERROR“年龄必须满19岁”)
二、表的删除:
命令格式为:DROP TABLE <表名> 功能:从磁盘上删除指定表文件
注:执行了DROP TABLE语句之后,所有与被删除表有关的主索引、默认值、验证规则都将丢失。当前数据库中的其他表若与被删除的表有关联,这些规则和关系也都将无效。 三、表结构的修改:
命令格式为:ALTER TABLE 有三种格式: [格式1]
ALTER TABLE 表名1 ADD | ALTER [COLUMN] 字段名
字段类型 [(字段宽度 [,小数位数])][NULL | NOT NULL] [CHECK 有效性规则表达式 [ERROR 错误信息]] [DEFAULT 默认值][PRIMARY KEY | UNIQUE] [REFERENCES 表名2 [TAG 索引标识]]
功能:添加新字段(ADD),可以修改已有字段的类型、宽度、有效性规则、错误信息、默认值,定义主关键字和联系等,但是不能修改字段名,不能删除字段,也不能删除已定义的规则。
[格式2]
ALTER TABLE 表名 ALTER [COLUMN] 字段名 [NULL | NOT NULL] [SET DEFAULT 默认值] [DROP DEFAULT]
[SET CHECK 有效性规则表达式 [ERROR 错误信息]] [DROP CHECK]
功能:定义、修改和删除有效性规则和默认值定义 [格式3]
ALTER TABLE 表名1 [DROP [COLUMN] 字段名] [SET CHECK 有效性规则表达式 [ERROR 错误信息]] [DROP CHECK]
[ADD PRIMARY KEY 索引关键字表达式 TAG 索引名 [FOR 条件]] [DROP PRIMARY KEY]
共分享92篇相关文档