VF中表单里怎么创建字段和索引

VF中表单里怎么创建字段和索引,第1张

添加字段可以在数据库设计器中右击表,点修改在d出的表设计器中添加,创建索引也在里面。建索引也可以用INDEX

ON

索引表达式

TAG

索引名

alter table

往表 customer 中添加字段 fax, 并且允许字段有空值

alter table customer add column fax c(20) null

ALTER TABLE – SQL 命令

示例 请参阅

以编程方式修改表的结构。

语法

ALTER TABLE TableName1

ADD | ALTER [COLUMN] FieldName1

FieldType [(nFieldWidth [, nPrecision])]

[NULL | NOT NULL]

[CHECK lExpression1 [ERROR cMessageText1]]

[DEFAULT eExpression1]

[PRIMARY KEY | UNIQUE]

[REFERENCES TableName2 [TAG TagName1]]

[NOCPTRANS]

[NOVALIDATE]

— 或者 —

ALTER TABLE TableName1

ALTER [COLUMN] FieldName2

[NULL | NOT NULL]

[SET DEFAULT eExpression2]

[SET CHECK lExpression2 [ERROR cMessageText2]]

[DROP DEFAULT]

[DROP CHECK]

[NOVALIDATE]

— 或者 —

ALTER TABLE TableName1

[DROP [COLUMN] FieldName3]

[SET CHECK lExpression3 [ERROR cMessageText3]]

[DROP CHECK]

[ADD PRIMARY KEY eExpression3 TAG TagName2 [FOR lExpression4]]

[DROP PRIMARY KEY]

[ADD UNIQUE eExpression4 [TAG TagName3 [FOR lExpression5]]]

[DROP UNIQUE TAG TagName4]

[ADD FOREIGN KEY [eExpression5] TAG TagName4 [FOR lExpression6]

REFERENCES TableName2 [TAG TagName5]]

[DROP FOREIGN KEY TAG TagName6 [SAVE]]

[RENAME COLUMN FieldName4 TO FieldName5]

[NOVALIDATE]

参数

TableName1

指定要修改其结构的表名。

ADD [COLUMN] FieldName1

指定要添加的字段名。单个的表中最多可以有 255 个字段。 如果一个或更多的字段允许 null 值, 该限制为 254 个字段。

ALTER [COLUMN] FieldName1

指定要修改的已有的字段名。

FieldType [(nFieldWidth [, nPrecision])]

指定新字段或待修改字段的字段类型、字段宽度和字段精度(小数点后的位数)。

参数 FieldType 是表示字段数据类型的单个字符。有些字段类型还需要参数 nFiledWidth 或 nPrecision,或者两者皆要。

下表列出了参数 FiledType 的值及其对应参数 nFiledWidth 和 nPression 的取舍情况:

字段类型 字段宽度 精度 说明

C n – 宽度为 n 的字符字段

D – – 日期

T – – 日期时间

N n d 宽度为 n 的数值型字段,小数点后保留 d 位

F n d 宽度为 n 的浮点型字段,小数点后保留 d 位

I – – 整数型

B – d 双精度型

Y – – 货币型

L – – 逻辑型

M – – 备注型

G – – 通用型

P – – 图象

对于 D、T、I、Y、L、M、G 和 P 型数据,省略参数 nFieldWidth 和 nPrecision。如果对 N、F 或 B 型数据没有给出参数 nPrecision 的值,其的默认值为零。

NULL | NOT NULL

允许或不允许字段为空值。

如果省略 NULL 和 NOT NULL,当前的 SET NULL 设置将决定字段是否允许为空;并且如果命令中带有 PRIMARY KEY 或 UNIQUE 子句,当前的 SET NULL 设置不起作用,字段默认状况为非空。

CHECK lExpression1

指定字段的有效性规则。lExpression1 为逻辑表达式值,可以是用户定义的函数或存储过程。注意:每添加一个空记录时,都将进行有效性检查。如果有效性规则不允许添加的记录中有空字段值,VisualFoxPro 将产生错误信息。

ERROR cMessageText1

指定字段有效性检查出现错误时显示的错误信息。只有在“浏览”或“编辑”窗口中修改数据时,此信息才可能显示。

DEFAULT eExpression1

指定字段默认值。eExpression1 的数据类型必须与字段的数据类型相同。

PRIMARY KEY

创建主索引标识。索引标识与字段同名。

UNIQUE

创建与字段同名的候选索引标识。有关候选索引的详细内容,请参阅《开发指南》的第七章“处理表”。

附注

候选索引(由 UNIQUE 选项创建,具有在 ALTER TABLE 或 CREATE TABLE 中的 ANSI 兼容性。)与带 UNIQUE 选项的 INDEX 命令创建的索引不同。用带 UNIQUE 选项的 INDEX 命令创建的索引允许有重复索引关键字,而候选索引不允许有重复索引关键字。

在主索引或候选索引字段中,不允许有空值和重复记录。

如果用 ADD COLUMN 子句创建一个新字段,若给允许空值的字段创建主索引或候选索引,VisualFoxPro 不会产生错误。但是,如果您试图往用作主索引或候选索引的字段中输入空值或重复值,VisualFoxPro 将产生错误信息。

如果修改已有的字段和由字段组成的主索引表达式或候选表达式时,将检查字段是否为空值或重复记录。如果为空值或重复记录,Visual FoxPro 将产生错误,并且不对表进行修改。

REFERENCES TableName2 TAG TagName1

指定与之建立永久关系的父表。参数 TAG TagName1 指定父表索引标识,关系建立在此父表索引标识基础上。索引标识最长为 10 个字。

NOCPTRANS

防止对字符串或备注字段进行代码页转换。如果表转换到另一代码页,指定了 NOCPTRANS 的字段不进行转换。NOCPTRANS 只能指定字符字段和备注字段。

下面的例子建立了一个名字为 MYTABLE 的表:该表包括两个字符字段和两个备注字段。第二个字符字段 char2 和第二个备注字段 memo2 包含 NOCPTRANS 以防止转换。

CREATE TABLE mytable (char1 C(10), char2 C(10) NOCPTRANS,

memo1 M, memo2 M NOCPTRANS)

ALTER [COLUMN] FieldName2

指定要修改的已有的字段名。

SET DEFAULT eExpression2

指定已有字段的新默认值。eExpression2 的数据类型必须与字段数据类型相同。

SET CHECK lExpression2

指字已有字段新的有效性规则。lExpression2 值必须为逻辑表达式,也可以为用户自定义函数或已有的过程。

ERROR cMessageText2

指定有效性检查出现错误时显示的错误信息。只有在“浏览”窗口或“编辑”窗口改变数据时,才可能显示此信息。

DROP DEFAULT

删除已有字段的默认值。

DROP CHECK

删除已有字段的有效性规则。

DROP [COLUMN] FieldName3

从表中删除一个字段。删除一个字段的同时也删除了字段的默认值和字段有效性规则。

字段被删除后,索引关键字或引用此字段的触发器表达式将变为无效。在这种情况下,删除字段并不产生错误,但是在运行时刻,无效的索引关键字或触发器表达式将导致错误。

SET CHECK lExpression3

指定表的有效性规则。lExpression3 必须是逻辑表达式,也可以是用户自定义函数或已有的过程。

ERROR cMessageText3

指定表的有效性检查出现错误时显示的错误信息。只有在“浏览”窗口或“编辑”窗口中改变数据值时,才可能显示此信息。

DROP CHECK

删除表的有效性规则。

ADD PRIMARY KEY eExpression3 TAG TagName2

往表中添加主索引,eExpression 指定主索引关键字表达式,TagName2 指定主索引标识名,索引标识名最长为 10 个字符。如果省略TAG TagName2 而 eExpression3 是一个字段,主关键索引标识与指定的 eExpression3 同名。

DROP PRIMARY KEY

删除主索引及其标识。因为表只能有一个主关键字,所以不必指定关键字的名称。删除主索引也将删除所有基于此关键字的永久关系。

ADD UNIQUE eExpression4 [TAG TagName3]

往表中添加候选索引。eExpression4 指定候选索引关键字表达式,TagName3 指定候选索引标识名。候选标识名最长可为 10 个字符。如果省略参数 TAG TagName3 并且 eExpression4 为单个字段,候选索引标识与 eExpression4 中的指定的字段同名。

DROP UNIQUE TAG TagName4

删除候选索引及其标识。因为表可能有多个候选关键字,所以必须指定候选索引标识名。

ADD FOREIGN KEY [eExpression5] TAG TagName4

往表中添加外部关键字(非主关字)索引。

eExpression5 指定外部索引关键字表达式,TagName4 指定外部索引标识名。索引标识名最长为 10 个字符。

REFERENCES TableName2 [TAG TagName5]

指定在其上创建了永久关系的父表。使用 TAG TagName5 指定一个已有的索引标识,基于此索引标识建立表与父表的一个关系。索引标识名最长可以为 10 个字符。如果省略参数 TAG TagName5,则使用父表的主索引标识建立关系。

DROP FOREIGN KEY TAG TagName6 [SAVE]

删除索引标识为 TagName6 的外部关键字。如果省略 SAVE 参数,将从结构索引中删除索引标识。如果加入 SAVE 参数,则不从结构索引中删除索引标识。

RENAME COLUMN FieldName4 TO FieldName5

允许改变表中字段的字段名。FieldName4 指定待更改的字段名,FieldName5 指定新的字段名。

注意

改变表的字段名时一定要小心--索引表达式、字段和表的有效性规则、命令、函数等等可能仍会引用原始字段名。

NOVALIDATE

选用这一选项后,Visual FoxPro 修改表的结构不受表中数据完整性的约束。默认时,Visual FoxPro 改变表结构将受到表中数据的完整性约束。使用 NOVALIDATE 参数将使默认情况无效。

说明

ALTER TABLE 命令可以用于修改还没有添加到数据库中的表的结构。然而在修改自由表时,如果加入 DEFAULT、FOREIGN KEY、PRIMARY REFERENCES 或 SET 子句,Visual FoxPro 将出现错误。

ALTER TABLE 命令可以通过建立新表头和往表头中添加记录来重建表。例如,改变字段类型或字段宽度。

表经过重建后,将对所有改变了类型或宽度的字段执行字段有效性规则。如果修改了表中所有字段的类型或宽度,将执行表的有效性规则。

如果对已含有记录的表修改其字段有效规则或表有效性规则,Visual FoxPro 将检查新的字段或表有效性规则是否与存在数据相符合,并在发现有不符之处时发出警告。

如果要修改的表在数据库中,ALTER TABLE-SQL 命令需要独占使用数据库。若要独占打开数据库,可使用包含 EXCLUSIVE 子句的 OPEN DATABASE 命令。

Visual FoxPro数据表中数据 *** 作(查询、插入、删除和修改等)

 

更改数据表中的记录:

REPLACE 字段1  WITH  表达式1[ADDITIVE];

[,<  [,<字段2>WITH <表达式2>[ADDITIVE],…];

[FOR 条件1][WHILE条件2]

其中的ADDITIVE子句适用于备注字段,表示将表达式的值加在字段的末尾。

2、用内存数组的值更新数据表中的记录:

REPLACE FROM ARRAY数组名 [FIELDS 字段名列表][常用子句]

3、用新的值更新表中的记录(SQL命令):

UPDATE [databasename!]tablename

SET Column_1=Expression1 [{Column_2=expression2}...]

[WHERE Condition]

4、用一个表中的数据更新当前指定工作区中打开的表:

UPDATE ON fieldname FROM filename

REPLACE fieldname1 WITH expr1

[, fieldname2 WITH expr2 [, ...]]

5、给记录加删除标记(SQL命令):

DELETE  FROM  [databasename!]tablename

[WHERE 条件]

给记录加删除标记:

DELETE [范围] [FOR 条件] [WHILE 条件];

[IN 工作区号|表别名]

6、永久删除加了删除标记的记录:

PACK

7、永久删除打开的数据库中加了删除标记的记录:

PACK  DATABASE

8、去掉删除标记(恢复)

RECALL [常用子句]

9、删除一个表中所有记录(保留表的结构):

ZAP  [IN tablename|alias]

10、为数据表文件追加记录:

APPEND [BLANK][IN 工作区号|别名]

从另一个文件中提取数据添加到当前数据表的尾部:

APPEND FROM filename|? [FIELDS 字段名列表][ FOR 条件]

其中filename所指定的文件可以是数据表、EXCEL电子表格、文本文件等,如果不是数据表,需要其它子句指定格式(详见手册)。

用内存数组的值添加到当前数据表的尾部:

APPEND FROM ARRAY arrayname [ FOR 条件][FIELDS字段名列表]

数据中的一行对应一个新记录,一列对应一个字段。

从一个文件输入一个OLE对象放入一个通用(general)字段 :

APPEND GENERAL 通用字段名 [FROM filename]

如果省略子句FROM filename,则将指定的字段清空。

将一个文本文件的内容拷贝到一个备注字段 :

APPEND MEMO 备注字段名 [FROM filename][OVERWRITE]

如果省略子句FROM filename,则将指定的字段清空。

插入新记录(在当前记录之前或后插入):

INSERT [BLANK] [BEFORE]

如不省略BLANK,则插入一个空白记录,且不显示输入窗口。

在表中插入新记录并赋值(SQL命令):

INSERT INTO tablename [(字段1 [, 字段2, ...])]VALUES (eExpression1 [, eExpression2, ...])

INSERT INTO tablename FROM ARRAY ArrayName | FROM MEMVAR

如带有FROM MEMVAR子句,则用同名的内存变量给字段赋值。

清除当前记录中字段的数据:

BLANK [常用子句]

移动记录指针:

SKIP [n] [IN 工作区号|表别名]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11397632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存