Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 添加、更改和删除数据 » 使用 INSERT 添加数据

 

将值插入特定的列

可以将数据添加到行的某些列中,方法是只指定这些列和它们的值。将不包括在列列表中的所有其它列定义为允许使用 NULL 值或具有缺省值。如果您跳过某个具有缺省值的列,缺省值将出现在该列中。

如果只在两列(例如,DepartmentID 和 DepartmentName)中添加数据,则需要如下语句:

INSERT INTO Departments ( DepartmentID, DepartmentName )
VALUES ( 703, 'Western Sales' );

DepartmentHeadID 没有缺省值,但是接受空值。因此将为该列自动指派 NULL。

输入 ROLLBACK 语句取消对数据库的这些更改:

ROLLBACK;

尽管所指定列的顺序不需要与表中列的顺序匹配,但是它必须与所指定插入值的顺序匹配。

指定列和未指定列的插入值

根据在 INSERT 语句中指定的内容在行中插入值。如果没有为列指定值,插入的值将视列设置而定,如是否允许 NULL 值、是否使用 DEFAULT 等。在某些情况下,插入操作可能失败并返回错误。下表显示根据要插入的值(如果有)和列设置可能得出的结果:

要插入的值 可为空 不可为空 可为空,带有 DEFAULT 不可为空,带有 DEFAULT 不可为空,带有 DEFAULT AUTOINCREMENT
<无> NULL SQL 错误 DEFAULT 值 DEFAULT 值 DEFAULT 值
NULL NULL SQL 错误 NULL SQL 错误 DEFAULT 值
指定值 指定值 指定值 指定值 指定值 指定值

缺省情况下,除非您在创建表时在列定义中显式规定 NOT NULL,否则列允许使用 NULL 值。可以使用 allow_nulls_by_default 选项变更此缺省设置。也可以使用 ALTER TABLE 语句更改指定列是否允许使用 NULL 值。请参见allow_nulls_by_default 选项 [兼容性]ALTER TABLE 语句

使用约束限制列数据

可以为列或域创建约束。约束控制是否能够添加某个数据类型。请参见使用表和列约束

显式插入空值

可以通过输入 NULL 将空值显式插入列中。不要将 NULL 括在引号中,否则它将被当做一个字符串。例如,以下语句将 NULL 显式插入 DepartmentHeadID 列中:

INSERT INTO Departments
VALUES ( 703, 'Western Sales', NULL );
使用缺省值提供值

可以将某个列定义为即使该列未接收到任何值,也会在插入行时自动填上缺省值。这可通过为该列提供缺省值来实现。请参见使用列缺省值