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