暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8s数据库单个行

三金先生 2023-11-14
60


在它的最简单形式中,INSERT 语句从一列值的列表创建一个新行,并将其放置在表中。 下列语句展示如何将一行添加到 stock 表:

INSERT INTO stock VALUES (115, 'PRC', 'tire pump', 108, 'box', '6/box');

stock 表有下列列:

stock_num

标识商品的种类的编号。

manu_code

manufact 表的外键。

description

该商品的描述。

unit_price

该商品的单价。

unit

计量的单位

unit_descr

说明计量单位的特征。

前一示例中 VALUES 子句中罗列的值与 stock 表的列有一一对应关系。要编写 VALUES

子句,您必须知道表的列以及它们的前后次序。

可能的列值

VALUES 子句仅接受常量值,不接受通用的 SQL 表达式。您可提供下列值:

• 文字数值

• 文字 DATETIME 值

• 文字 INTERVAL 值

• 带引号的字符串

• 表示 NULL 的关键字 NULL

• 表示当前日期的关键字 TODAY

• 表示当前日期和时间的关键字 CURRENT(或 SYSDATE)

• 表示您的授权标识符的关键字 USER

• 表示正在运行数据库服务器的计算机名称的关键字 DBSERVERNAME(或 SITENAME)

注: MERGE 语句可以替代 INSERT 语句,可使用与 INSERT 语句一样的 VALUES 子句语法来 将行插入到表内。MERGE 语句执行源表与目标表的外部链接,然后将连接的结果集中的任何行 插入到目标表内,这些行的连接谓词求值为 FALSE。MERGE 语句不更改源表。除了插入行之外, MERGE 语句可可选地同时组合 DELETE 与 INSERT 操作,或同时组合 UPDATE 与 INSERT

操作。要获取关于 Insert 合并、Delete 合并和 Update 合并的语法与限制的更多信息,请参 阅《GBase 8s SQL 指南:语法》 中 MERGE 语句的描述。

对列值的限制

表的某些列可能不允许空值。如果您尝试向这样的列插入 NULL,则会拒绝该语句。表中 的其他列可能不允许重复的值。如果您指定与这样的列中已经存在的值重复的值,则会拒 绝该语句。有些列甚至可能限制允许的列值。请使用数据完整性约束来限制列。要获取更 多信息,请参阅 数据完整性。

限制: 请不要为包含货币值的列指定币种符号。请仅指定该金额的数值值。

数据库服务器可在数值与字符数据类型之间进行转换。您可将数值字符的字符串(例如,

'-0075.6')作为数值列的值。数据库服务器将数值字符串转换为数值。仅当该字符串不表示 数值时才会发生错误。

您可指定数值或日期作为字符列的值。数据库服务器将那个值转换为字符串。例如,如果 您指定 TODAY 作为字符列的值,则使用表示当前日期的字符串。(DBDATE 环境变量 指定所使用的格式。)

序列数据类型

表仅可有一个 SERIAL 数据类型的列。它还可有 SERIAL8 列或 BIGSERIAL 列。

当您插入值时,请为序列列指定值零。数据库服务器按次序生成下一个实际值。序列列不 允许 NULL 值。

您可为序列列指定非零值(只要它不与那一列中任何现有的值重复),数据库服务器使用 该值。那个非零值可能为数据库服务器生成的值设置新的起始点。(数据库服务器为您生 成的下一个值是比该列中最大值大一的值。)

罗列特定的列名称

您不必为每列都指定值。相反,您可在表名称之后罗列列名称,然后仅为您命名了的那些 列提供值。下列示例展示将新行插入到 stock 表内的语句:

INSERT INTO stock (stock_num, description, unit_price, manu_code) VALUES (115, 'tyre pump ', 114, 'SHM');

仅提供库存编号、描述、单价和制造商代码的数据。数据库服务器为其余列提供下列值:

• 它为未列出的序列列生成一个序列数值。

• 它为与它相关联的有特定缺省值的列生成一个缺省值。

• 它为任何允许空值的任何列生成 NULL 值,但它不为指定 NULL 作为缺省值的任 何列指定缺省值。

您必须为未指定缺省值或不允许 NULL 值的所有列罗列并提供值。

您可以任何顺序罗列列,只要这些列的值也以相同的顺序罗列。

在执行前一示例中的 INSERT 语句之后,将下列新行插入到 stock 表内:

stock_num manu_code description unit_price unit unit_descr 115 SHM tyre pump 114

unit 和 unit_descr 都为空,表示在那两列中存在 NULL 值。由于 unit 列允许 NULL 值, 因此不知道 114 美元可购买的轮胎充气泵(tire pump)的数目。当然,如果为这一列指定 了 box 缺省值,则计量单位将为 box。在任何情况下,当您将值插入到表的特定的列内时, 请注意那一行需要什么数据。 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论