INSERT – S Q L 命 令

INSERT – S Q L 命 令 - 图1在表尾追加一个包含指定字段值的记录

语 法

INSERT INTO dbf_name [( fname1 [, fname2 , ...])] VALUES ( eExpression1 [, eExpression2 , ...])

– 或者 –

INSERT INTO dbf_name F R O M A R R A Y ArrayName | FROM MEMVAR

参 数 描 述

INSERT INTO dbf_name

INSERT – S Q L 命 令 - 图2INSERT – S Q L 命 令 - 图3INSERT – S Q L 命 令 - 图4指 定 要 追 加 记 录 的 表 名 dbf_name 中 可 以 包 含 路 径 也 可 以 是 一 个 名 称 表 达式

INSERT – S Q L 命 令 - 图5INSERT – S Q L 命 令 - 图6INSERT – S Q L 命 令 - 图7INSERT – S Q L 命 令 - 图8INSERT – S Q L 命 令 - 图9如果指定的表没有打开 则 Visual FoxPro 先在一个新工作区中以独占方式打开该表然后再把新记录追加到表中 此时并未选定这个新工作区 选定的仍然是当前工作区

INSERT – S Q L 命 令 - 图10INSERT – S Q L 命 令 - 图11INSERT – S Q L 命 令 - 图12INSERT – S Q L 命 令 - 图13如果所指定的表是打开的 INSERT 命令就把新记录追加到这个表中 如果表不是在当前工作区打开的 则追加记录后表所在的工作区仍然不是选定工作区 选定的仍然是

INSERT – S Q L 命 令 - 图14当前工作区

[( fname1 [, fname2 [, ...]])]

INSERT – S Q L 命 令 - 图15INSERT – S Q L 命 令 - 图16指 定 新 记 录 的 字 段 名 INSERT - SQL 命 令 将 向 这 些 字 段 中 插 入 字 段 值

VALUES ( eExpression1 [, eExpression2 [ , ...]])

INSERT – S Q L 命 令 - 图17INSERT – S Q L 命 令 - 图18INSERT – S Q L 命 令 - 图19INSERT – S Q L 命 令 - 图20INSERT – S Q L 命 令 - 图21新 插 入 记 录 的 字 段 值 如 果 省 略 了 字 段 名 那 么 必 须 按 照 表 结 构 定 义 字 段 的顺 序 来 指 定 字 段 值 如 果 SET NULL 的 值 为 O N INSERT – S Q L 会 试 图 将null 值 插 入 在 VALUES 子 句 中 没 有 指 定 的 任 意 字 段 中

F R O M A R R A Y ArrayName

INSERT – S Q L 命 令 - 图22INSERT – S Q L 命 令 - 图23INSERT – S Q L 命 令 - 图24INSERT – S Q L 命 令 - 图25INSERT – S Q L 命 令 - 图26INSERT – S Q L 命 令 - 图27INSERT – S Q L 命 令 - 图28INSERT – S Q L 命 令 - 图29指 定 一 个 数 组 数 组 中 的 数 据 将 被 插 入 到 新 记 录 中 从 第 一 个 数 组 元 素 开始 数 组 中 的 每 个 元 素 的 内 容 依 次 插 入 到 记 录 的 对 应 字 段 中 第 一 个 数 组 元素 的 内 容 插 入 到 新 记 录 的 第 一 个 字 段 第 二 个 元 素 的 内 容 插 入 到 第 二 个 字 段 依 此 类 推

INSERT – S Q L 命 令 - 图30INSERT – S Q L 命 令 - 图31当 包 含 F R O M A R R A Y 子 句 时 会 忽 略 字 段 的 任 何 默 认 值

F R O M M E M V A R

INSERT – S Q L 命 令 - 图32INSERT – S Q L 命 令 - 图33INSERT – S Q L 命 令 - 图34把 变 量 的 内 容 插 入 到 与 它 同 名 的 字 段 中 如 果 某 一 字 段 不 存 在 同 名 的 变 量则 该 字 段 为 空

说 明

INSERT – S Q L 命 令 - 图35INSERT – S Q L 命 令 - 图36INSERT – S Q L 命 令 - 图37INSERT – S Q L 命 令 - 图38新记录中包含了 VALUE 子句列出的值 或包含指定的数组或变量中的值 插入新记录后 记录指针指向新记录

示 例

INSERT – S Q L 命 令 - 图39下面的示例打开了 employee 表并添加一个记录

USE employee

INSERT INTO employee (emp_no, fname, lname, officeno) ; VALUES (3022, "John", "Smith", 2101)

INSERT – S Q L 命 令 - 图40INSERT – S Q L 命 令 - 图41INSERT – S Q L 命 令 - 图42INSERT – S Q L 命 令 - 图43INSERT – S Q L 命 令 - 图44下面的 示例 打开了数据库 testdata 中的 customer 表 当前记录的内容分散到变量中并且表的结构被复制到新表 cust2 中 可用 INSERT – SQL 在表 cust2 中 插入新记录也可以发出 BROWSE 来显示新记录

CLOSE DATABASES

CLEAR

OPEN DATABASE (HOME(2) + 'Data\testdata') USE Customer && 打开 customer 表

*把当前记录存入内存变量中

SCATTER MEMVAR

  • 把当前表的结构复制到 EXAMPLE 表中

COPY STRUCTURE TO cust2

  • 从内存变量中插入记录

INSERT INTO cust2 FROM MEMVAR

SELECT CUST2 BROWSE

  • 关闭并删除 EXAMPLE 表

USE

DELETE FILE cust2.dbf

请 参 阅

CREATE QUERY , CREATE TABLE – S Q L , MODIFY QUERY, SELECT –

SQL