您的位置:首页 > 数据库

SQL语法——操作功能(插入、更新、删除记录,删除表)

2013-02-25 14:51 537 查看
13.3 操作功能

SQL语言的操作功能包括对表中数据的增加、删除和更新操作。

13.3.1 插入

在一个表的尾部追加数据时,要用到插入功能,SQL的插入命令包括以下3种格式:

格式:

INSERT INTO 〈表名〉 [(〈字段名1〉 [,〈字段名2〉,…])]

VALUES(〈表达式1〉)[,
〈表达式2〉,…])



INSERT
INTO 〈表名〉 FROM ARRAY 〈数组名〉

INSERT
INTO 〈表名〉 FROM MEMVAR

功能:3种格式都是在指定的表的表尾添加一条新记录。

13.3.1 插入

说明:

(1)第1种格式其值为VALUES后面的表达式的值。当需要插入表中所有字段的数据时,表名后面的字段名可以缺省,但插入数据的格式必须与表的结构完成吻合;若只需要插入表中某些字段的数据,就需要列出插入数据的字段,当然相应表达式的数据位置会与之对应。

(2)第2种格式新记录的值是指定的数组中各元素的数据。数组中各元素与表中各字段顺序对应。如果数组中元素的数据类型与其对应的字段类型不一致,则新记录对应的字段为空值;如果表中字段个数大于数组元素的个数,则多的字段为空值。

(3)第3种格式新记录的值是指定的内存变量的值。添加的新记录的值是与指定表各字段名同名的内存变量的值,如果同名的内存变量不存在,则相应的字段为空。

Visual FoxPro支持两种SQL插入命令的格式,第一种格式是标准格式,第二种格式是Visual FoxPro的特殊格式。

13.3.1 插入

【13.42】在订购单表中,插入元组("E7","S4","OR01",09/25/03)。

INSERT
INTO 订购单(职工号,供应商号,订购单号,订购日期,总金额)

VALUES("E7","S4","OR01",{^2003-09-25},1200)

其中“{^2003-09-25}”是日期型字段订购日期的值。

图13.48

13.3.1 插入

假设供应商尚未确定,那么只能先插入职工号和订购单号两个属性的值,这时可用如下命令:

INSERT
INTO 订购单(职工号,订购单号) VALUES("E7","OR01")

这时另外三个属性的值为空。

13.3.1 插入

下面用一组命令来说明INSERT INTO…FROM ARRAY 的使用方式:

USE订购单 &&打开订购单

SCATTER
to A1 &&将当前记录读到数组A1

COPY
STRUCTURE TO A2 &&拷贝订购单表的结构到A2

INSERT
INTO A2 FROM ARRAY A1 &&从数组A1插入一条记录到A2

SELECT
A2 &&切换到A2的工作区

BROWSE &&用BROWSE命令验证插入的结果

USE &&关闭A2.dbf文件

DELETE
FILE A2.dbf &&删除A2.dbf文件

13.3.1 插入

在一个表的尾部追加数据时,要用到插入功能,SQL的插入命令包括以下3种格式:

格式:

INSERT INTO 〈表名〉 [(〈字段名1〉 [,〈字段名2〉,…])]

VALUES(〈表达式1〉)[,
〈表达式2〉,…])



INSERT
INTO 〈表名〉 FROM ARRAY 〈数组名〉

INSERT
INTO 〈表名〉 FROM MEMVAR

功能:3种格式都是在指定的表的表尾添加一条新记录。

13.3.1 插入

说明:

(1)第1种格式其值为VALUES后面的表达式的值。当需要插入表中所有字段的数据时,表名后面的字段名可以缺省,但插入数据的格式必须与表的结构完成吻合;若只需要插入表中某些字段的数据,就需要列出插入数据的字段,当然相应表达式的数据位置会与之对应。

(2)第2种格式新记录的值是指定的数组中各元素的数据。数组中各元素与表中各字段顺序对应。如果数组中元素的数据类型与其对应的字段类型不一致,则新记录对应的字段为空值;如果表中字段个数大于数组元素的个数,则多的字段为空值。

(3)第3种格式新记录的值是指定的内存变量的值。添加的新记录的值是与指定表各字段名同名的内存变量的值,如果同名的内存变量不存在,则相应的字段为空。

Visual FoxPro支持两种SQL插入命令的格式,第一种格式是标准格式,第二种格式是Visual FoxPro的特殊格式。

13.3.1 插入

【13.42】在订购单表中,插入元组("E7","S4","OR01",09/25/03)。命令执行结果如图13.48所示。

INSERT
INTO 订购单(职工号,供应商号,订购单号,订购日期,总金额)

VALUES("E7","S4","OR01",{^2003-09-25},1200)

其中“{^2003-09-25}”是日期型字段订购日期的值。

图13.48

13.3.1 插入

假设供应商尚未确定,那么只能先插入职工号和订购单号两个属性的值,这时可用如下命令:

INSERT
INTO 订购单(职工号,订购单号) VALUES("E7","OR01")

这时另外三个属性的值为空。

13.3.1 插入

下面用一组命令来说明INSERT INTO…FROM ARRAY 的使用方式:

USE订购单 &&打开订购单

SCATTER
to A1 &&将当前记录读到数组A1

COPY
STRUCTURE TO A2 &&拷贝订购单表的结构到A2

INSERT
INTO A2 FROM ARRAY A1 &&从数组A1插入一条记录到A2

SELECT
A2 &&切换到A2的工作区

BROWSE &&用BROWSE命令验证插入的结果

USE &&关闭A2.dbf文件

DELETE
FILE A2.dbf &&删除A2.dbf文件

13.3.1 插入

用下面一组命令来说明INSERT INTO…FROM MEMVAR的使用方式:

USE订购单 &&打开订购单

SCATTER
M1 &&将当前记录读到内存变量M1中

COPY
STRUCTURE TO A2 &&拷贝订购单表的结构到A2

INSETR
INTO A2 FROM M1 &&从内存变量插入一条记录到A2

SELECT
A2 &&切换到A2的工作区

BROWSE &&用BROWSE命令验证插入的结果

USE &&关闭A2.dbf文件

DELETE
FILE A2.dbf &&删除A2.dbf文件

13.3.1 插入

说明:当一个表定义了主索引或候选索引后,由于相应的字段具有关键字的特性,即不能为空,所以只能用此命令插入记?肌oxPro以前的插入命令(INSERT或APPEND)是先插入一条空记录,然后再输入各字段的值,由于关键字字段不允许为空,所以使用以前的方法就不能成功地插入记录。

13.3.2 更新

更新是指对存储在表中的记录进行修改。

格式:

UPDATE [ 〈数据库〉! ] 〈表名〉

SET
〈列名1〉=〈表达式1〉 [, 〈列名2〉=〈表达式2〉 …]

[WHERE
〈条件表达式1〉 [AND | OR 〈条件表达式2〉 …]]

13.3.2 更新

说明:

(1)[〈数据库〉! ]〈表名〉:指定要更新数据的记录所在的表名及该表所在的数据库名。

(2)SET 〈列名〉=〈表达式〉:指定被更新的字段及该字段的新值。如果省略WHERE子句,则该字段每一条都用同样的值更新。

(3)WHERE 〈条件表达式〉:指明将要更新数据的记录。即更新表中符合条件表达式的记录,并且一次可以更新多个字段;如果不使用WHERE子句,则更新全部记录。

13.3.2 更新

【13.43】在职工表中,给WH1仓库的职工提高10%的工资。命令执行结果如图13.49所示。

UPDATE
职工 SET 工资=工资*1.10 WHERE 仓库号="WH1"

例如: 将所有学生的年龄增加1岁:

UPDATE
学生 SET 年龄=年龄+1

13.3.3 删除

用SQL语言可以删除数据表中的记录。

格式:

DELETE FROM [〈数据库!〉]〈表名〉

[WHERE
〈条件表达式1〉 [AND | OR 〈条件表达式2〉 …]]

说明:

(1)[〈数据库!〉]〈表名〉:指定加删除标记的表名及该表所在的数据库名,用“!”分割表名和数据库名,数据库名为可选项。

(2)WHERE选项:指明只对满足条件的记录加删除标记。如果不使用WHERE子句,则删除该表中的全部记录。

(3)上述删除只是加删除标记,并没有从物理上删除,只有执行了PACK命令,有删除标记的记录才能真正从表中删除。删除标记可以用REACLL命令取消。

13.3.3 删除

【13.44】删除仓库表中仓库号值是WH2的记录。

DELETE
FROM 仓库 WHERE仓库号="WH2"

说明:SQL DELETE命令同样是逻辑删除记录,如果要物理删除记录需要继续使用PACK命令。

13.3.4 表的删除

随着数据库应用的变化,往往有些表连同它的数据不再需要了,这时可以删除这些表,以节省存储空间。

格式:DROP TABLE 〈表名〉

说明:DROP TABLE直接从磁盘上删除表名所对应的DBF文件。如果表名是数据库中的表,并且相应的数据库是当前数据库,则从数据库中删除表;否则虽然从磁盘上删除了DBF文件,但是记录在数据库DBC文件中的信息却没有删除,此后会出现错误提示。所以要删除数据库中的表时,最好应使数据库是当前打开的数据库,在数据库中进行操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐