在数据库中创建表时,用于创建表的 SQL 语句将为表中的每个列定义关联或数据类型。尽管可以省略关联声明,但是最好在
CREATE TABLE
SQL 语句中明确声明列关联。
通常,在执行
SELECT
语句时,使用
INSERT
语句存储在数据库中的任何对象都将作为相同数据类型的实例返回。但是,已检索值的数据类型可能随存储该值的数据库列的关联的不同而不同。当值存储在列中时,如果其数据类型与列的关联不匹配,则数据库会尝试转换该值以便与列的关联匹配。例如,如果数据库列是用
NUMERIC
关联声明的,则在存储数据之前,数据库会尝试将插入的数据转换为数字存储类(
INTEGER
或
REAL
)。如果无法转换数据,则数据库将引发错误。按照此规则,如果将字符串“12345”插入到
NUMERIC
列中,则在将它存储在数据库中之前,数据库会自动将它转换为整数值 12345。使用
SELECT
语句检索该值时,它将作为数字数据类型(如 Number)的实例而不是 String 实例返回。
避免不需要的数据类型转换的最佳方式是遵循以下两个规则。首先,使用与其要存储的数据类型匹配的关联定义每个列。其次,仅插入其数据类型与定义的关联匹配的值。遵循这些规则有两个优点。插入数据时,不会意外转换它(结果是可能丢失其预期含义)。此外,检索数据时,它会按其原始数据类型返回。
有关可用列关联类型以及如何在 SQL 语句中使用数据类型的详细信息,请参阅
数据类型支持
。
|
|
|