第 5 课:设计列属性
概念
在这一课,您将进一步学习如何选择表列的数据类型以及其它特性。
每个列都有一种与之关联的数据类型。数据类型数据类型
类型。为列选择一种适合该列中数据的数据类型。例如,标识符列通常
具有整数数据类型,而包含名称或地址的列则必须具有字符数据类型。
数据类型分为以下类别:
•Numeric 数据类型 Numeric 数据类型有若干种。有些是确切值
(不受运算中舍入错误的影响),而有些则是近似值。
列的数据类型会影响列的最大大小。例如,如果您指定
SMALLINT,则列可以包含的最大值为 32,767。如果您指定
INTEGER,则最大值为 2,147,483,647。
有关完整列表,请参阅 "ASA SQL 参考手册 > SQL 数据类型 > 数
值数据类型 "。
• Character 数据类型 它们用于包含文本字符串,例如名称、地址
等。这些数据类型具有一个长度,它指示可以在列中存储的最大
字符串长度。
有关列表,请参阅 "ASA SQL 参考手册 > SQL 数据类型 > 字符数
据类型 "。
• Binary 数据类型 它们可用于包含可能对应用程序有意义的信
息,但以二进制格式编码。
有关列表,请参阅 "ASA SQL 参考手册 > SQL 数据类型 > 二进制
数据类型 "。
• Date/time 数据类型 它们包含一天的时间以及日期。
有关列表,请参阅 "ASA SQL 参考手册 > SQL 数据类型 > 日期和
时间数据类型 "。
• Long 数据类型 它们有时称作 Blob (二进制大对象)。它们可用
于包含长文本字符串 (在有些数据库中称作备忘录字段)、图像
或其它二进制信息。
有关更多信息,请参阅 "ASA SQL 参考手册 > SQL 数据类型 >
LONG BINARY 数据类型 [BINARY]" 和 "ASA SQL 参考手册 >
SQL 数据类型 > LONG VARCHAR 数据类型 [ 字符 ]"。
另外, Adaptive Server Anywhere 还支持用户定义的数据类型和特殊的
Java 数据类型。本入门手册中暂不讨论这些数据类型。
NULL 和
NOT NULL
练习
60
如果对于该列,每一行都必须包含一个值,则应将该列定义为
NOT NULL。否则,将允许该列包含 NULL (表示缺少值)。缺省设置
是允许 NULL,但如果没有充分的理由来允许 NULL,则应将列显式声
明为 NOT NULL。
有关 NULL 的完整说明,请参阅 "ASA SQL 参考手册 > SQL 语言元素 >
NULL 值 "。有关在比较中使用 NULL 的信息,请参阅 "ASA SQL 参考手
册 > SQL 语言元素 > 搜索条件 "。
❖ 指定列的数据类型:
1 在 " 表 " 文件夹中打开该列所在的表。
2 打开 " 列 " 文件夹。
3 双击该列。该列的属性表即会打开。
4 单击 " 数据类型 " 选项卡。
5 从第一个下拉框中选择一种基本数据类型。
本课程和上一课介绍了在创建数据库表时需要了解的基本概念。您可以
通过在数据库中添加其它一些表来应用这些概念。本章中后面的课程将
使用这些表。
使用 Sybase Central 表编辑器在数据库中添加以下表:
• customer 添加一个名为 customer 的表,它包含以下列:
• id 每个客户的标识号。该列具有 integer 数据类型,它是主
键。使该列成为自动增量键。
• company_name 公司名称。该列具有 character 数据类型,
其最大长度为 35 个字符。
sales_order 添加一个名为 sales_order 的表,它包含以下列:
• id 每份销售订单的标识号。该列具有 integer 数据类型,它
是主键。使该列成为自动增量键。
• order_date 下订单的日期。该列具有 date 数据类型。
• cust_id 下订单的客户的标识号。该列具有 integer 数据类
型。
sales_order_items 添加一个名为 sales_order_items 的表以包含行项
目信息。该表包含以下列:
• id 行项目所属的销售订单的标识号。该列具有 integer 数据
类型,应该标识为主键列。
• line_id 每个销售订单的标识号。该列具有 integer 数据类
型,应该标识为主键列。
• prod_id 所订购产品的标识号。该列具有 integer 数据类型。
您现在已经在数据库中创建了四个表。这些表尚未以任何方式相互关
联。在下一课,您将通过定义外键来使这些表相互关联。 (责任编辑:卢兆林)