Visual Foxpro 第六章 S0语言的应用 sual
Visual FoxPro 1 VisualFoxPro
Visual Foxpro 主要内容 6SQL语言概述 62数据定义 63数据查询 6.4数据操纵
Visual FoxPro 2 6.1 SQL语言概述 6.2 数据定义 6.3 数据查询 6.4 数据操纵
Visual Foxpro 6.1SQL语言概述 20世纪80年代初,美国国家标准协会(ANSⅠ)开 始着手制定SQ标准,最早的ANSI标准于1986年完 成,它也被叫做SQ86。SQL标准的出台使SQL作 为标准关系数据库语言的地位得到了加强。随后, SQL标准几经修改和完善,其间经历了SQL89、 SQL92,一直到最近的SQL99等多个版本,每个新 版本都较前面的版本有重大改进,SQL99更是包含 了对诸如面向对象、递归、触发器等概念的支持。 目前,各主流数据库产品采用的SQL标准是1992年 制定的SQL92
Visual FoxPro 3 20世纪80年代初,美国国家标准协会(ANSI)开 始着手制定SQL标准,最早的ANSI标准于1986年完 成,它也被叫做SQL86。SQL标准的出台使SQL作 为标准关系数据库语言的地位得到了加强。随后, SQL标准几经修改和完善,其间经历了SQL89、 SQL92,一直到最近的SQL99等多个版本,每个新 版本都较前面的版本有重大改进,SQL99更是包含 了对诸如面向对象、递归、触发器等概念的支持。 目前,各主流数据库产品采用的SQL标准是1992年 制定的SQL92。 6.1 SQL语言概述
Visual Foxpro 按照ANS的规定,SQI被作为关系数据库的标 准语言。SQL语句可以用来执行各种各样的操作。 目前流行的关系数据库管理系统,如 Oracle、 Sybase、 SQL Server、 Visual foxpro等都采用了SQL语言标 准,而且很多数据库都对SQL语句进行了再开发和 扩展。 SQL语言具有如下特点: (1)SQL是一种一体化的语言。尽管设计SQL的最初 且的是查询,数据查询也是其最重要的功能之 SOL决不仅夜是三个查询仝真,它集数据定义 数据查询、数据操纵和数据控制功能于一体,可以 独立完成数据库的全部操作。 (2)SQL语言是一种高度非过程化的语言。它没有必 要步步地告诉让算机,“如何”去做,而只需要摧 述清楚用卢要“做什么”,SQL语言就可以将要求 交给系统,自动完成全部工作
Visual FoxPro 4 按照ANSI的规定,SQL被作为关系数据库的标 准语言。SQL语句可以用来执行各种各样的操作。 目前流行的关系数据库管理系统,如Qracle、Sybase、 SQL Server、Visual FoxPro等都采用了SQL语言标 准,而且很多数据库都对SQL语句进行了再开发和 扩展。 SQL语言具有如下特点: (1)SQL是一种一体化的语言。尽管设计SQL的最初 目的是查询,数据查询也是其最重要的功能之一, 但SQL决不仅仅是一个查询工具,它集数据定义、 数据查询、数据操纵和数据控制功能于一体,可以 独立完成数据库的全部操作。 (2)SQL语言是一种高度非过程化的语言。它没有必 要一步步地告诉计算机“如何”去做,而只需要描 述清楚用户要“做什么” ,SQL语言就可以将要求 交给系统,自动完成全部工作
Visual Foxpro (3)SQL语言非常简洁。虽然SQL语言功能很强, 但它只有为数不多的9条命令: CREATE DROP ALTER、 SELECT、 INSERT UPDATE、 DELETE、 GRANT、 REVOKE。另 外SQL的语法也非常简单,它很接近英语自然语 言,因此容易学习和掌握 (4)SQL语言可以直接以命令方式交互使用,也 可以嵌入到程序设计语言中以程序方式使用。现 在很多数据库应用开发工具都将SQL语言直接融 入到自身的语言之中,使用起来更方便,Ⅴ isual FoxPro就是如此。这些使用方式为用户提供了灵 活的选择余地。此外,尽管SQL的使用方式不同, 但SQL语言的语法基本是一致的
Visual FoxPro 5 (3)SQL语言非常简洁。虽然SQL语言功能很强, 但 它 只 有 为 数 不 多 的 9 条 命 令 : CREATE 、 DROP 、 ALTER 、 SELECT 、 INSERT 、 UPDATE、DELETE、GRANT、REVOKE。另 外SQL的语法也非常简单,它很接近英语自然语 言,因此容易学习和掌握。 (4)SQL语言可以直接以命令方式交互使用,也 可以嵌入到程序设计语言中以程序方式使用。现 在很多数据库应用开发工具都将SQL语言直接融 入到自身的语言之中,使用起来更方便,Visual FoxPro就是如此。这些使用方式为用户提供了灵 活的选择余地。此外,尽管SQL的使用方式不同, 但SQL语言的语法基本是一致的
Visual Foxpro Ⅴ isual foxpro在SQL方面支持数据定义、数 据查询和数据操纵功能,但在具体实现方面也 存在一些差异。另外,由于Ⅴ isual foxpro自身 在安全控制方面的缺陷,所以它没有提供数据 控制功能。 SQL虽然在各种数据库产品中得到了广泛的 支持,但迄今为止,它只是一种建议标准,各 种数据库产品中所实现的SQL在语法、功能等 方面均略有差异,本章讲述Ⅴ isual foxpro中 SQL的语法、功能与应用
Visual FoxPro 6 Visual FoxPro在SQL方面支持数据定义、数 据查询和数据操纵功能,但在具体实现方面也 存在一些差异。另外,由于Visual FoxPro自身 在安全控制方面的缺陷,所以它没有提供数据 控制功能。 SQL虽然在各种数据库产品中得到了广泛的 支持,但迄今为止,它只是一种建议标准,各 种数据库产品中所实现的SQL在语法、功能等 方面均略有差异,本章讲述Visual FoxPro 中 SQL的语法、功能与应用
Visual Foxpro 6.2数据定义 62.1建立表结构 命令格式是 CREATE TABLE|DBFNAME(,小数位数>NULL|NOT NULL CHECK(,小数位数> DINULL|NOT NULL CHECK ERROR DEFAULT PRIMARY KE Y UNIQUEJREFERENCES表名3TAG
Visual FoxPro 7 6.2.1 建立表结构 CREATE TABLE|DBF [NAME ][FREE] ( ([,])[NULL|NOT NULL] [CHECK [ERROR]] [DEFAULT ][PRIMARY KEY | UNIQUE]REFERENCES [TAG ] [([,])[NULL|NOT NULL] [CHECK [ERROR]] [DEFAULT ][PRIMARY KEY | UNIQUE]REFERENCES[TAG] ……)|FROMARRAY 6.2 数据定义
Visual Foxpro 参数说明: 表名1:要建立的表的名称。 FREE:如果当前已经打开一个数据库,这里所建立 的新表会自动加入该数据库,除非使用参数 2FRE说明该新表作为一个自由表不茄人当前 数据库。如果没有打开的数据库,该参数无意义。 字段名1、字段名2 000鲁 所要建立的新表的字段 名,在语法格式中,,两个字段名之间的语法成分 都是对一个字段的属性说明,包括: 类型说明字段类型。 宽度及小数位数—字段宽度及小数位数。 NU NOT NULL该字段是否允许“空值 其默认值为NULL,即允许“空”值 CHECK条件表达式用来检测字段的值是否有效, 这是实行数据库的一种完整性检查
Visual FoxPro 8 表名1:要建立的表的名称。 FREE:如果当前已经打开一个数据库,这里所建立 的 新 表 会自 动 加入 该 数据 库 ,除 非 使用 参数 “FREE”说明该新表作为一个自由表不加入当前 数据库。如果没有打开的数据库,该参数无意义。 字段名1、字段名2、……:所要建立的新表的字段 名,在语法格式中,两个字段名之间的语法成分 都是对一个字段的属性说明,包括: 类型——说明字段类型。 宽度及小数位数——字段宽度及小数位数。 NULL、NOT NULL——该字段是否允许“空值” , 其默认值为NULL,即允许“空”值。 CHECK 条件表达式——用来检测字段的值是否有效, 这是实行数据库的一种完整性检查
Visual Foxpro ERROR出错显示信息——当完整性检查有错误,即 条件表达式的值为假时的提示信息。应当注意,当 为一个表的某个字段建立了实行完整性检测的条件 表达式后,在对该数据表输入数据时,系统会自动 检测所输入的字段值是否使条件表达式为假,当有 个数据使其为假时,系统自动显示这里所提示的 出错信息。 DEFAULT表达式—为一个字段指定的默认值 PRIMARY KEY指定该字段为关键字段,非数据 库表不能使用该参数。 UNIQUE指定该字段为一个侯选关键字段。注意, 指定为关键或侯选关键的字段都不允许出现重复值, 这称为对字段值的唯一性约束
Visual FoxPro 9 ERROR 出错显示信息——当完整性检查有错误,即 条件表达式的值为假时的提示信息。应当注意,当 为一个表的某个字段建立了实行完整性检测的条件 表达式后,在对该数据表输入数据时,系统会自动 检测所输入的字段值是否使条件表达式为假,当有 一个数据使其为假时,系统自动显示这里所提示的 出错信息。 DEFAULT 表达式——为一个字段指定的默认值。 PRIMARY KEY——指定该字段为关键字段,非数据 库表不能使用该参数。 UNIQUE——指定该字段为一个侯选关键字段。注意, 指定为关键或侯选关键的字段都不允许出现重复值, 这称为对字段值的唯一性约束
REFERENCES表名—这里指定的表作为新建表的 永久性父表,新建表作为子表 TAG标识—父表中的关联字段,若缺省该参数,则 默认父表的主索引字段作为关联字段。 数组名—用指定数组的值建立输入表 从以上命令格式可以看出,用 CREATE TABLE命令 建立表可以完成用表设计器完成的所有功能。除了 建立表的基本功能外,它还包括满足实体完整性的 主关键字(主索引) PRIMARY KEY、定义域完整 性的 CHECK约束東及出错提示信息 ERROR、定义默 认值的 DEFAULT等。另外还有描述表之间联系的 FOREIGN KEY和 REFERENCES等。 10
Visual FoxPro 10 REFERENCES 表名——这里指定的表作为新建表的 永久性父表,新建表作为子表。 TAG 标识——父表中的关联字段,若缺省该参数,则 默认父表的主索引字段作为关联字段。 数组名——用指定数组的值建立输入表。 从以上命令格式可以看出,用CREATE TABLE命令 建立表可以完成用表设计器完成的所有功能。除了 建立表的基本功能外,它还包括满足实体完整性的 主关键字(主索引)PRIMARY KEY、定义域完整 性的CHECK约束及出错提示信息ERROR、定义默 认值的DEFAULT等。另外还有描述表之间联系的 FOREIGN KEY和REFERENCES等