字符串数据类型
    定长字符串接受长度固定的字符串,其长度是在创建表时指定的。定长列不允许多于指定的字符数目。它们分配的存储空间与指定的一样多。缺少的字符用空格填充,或根据需要补为NULL。
    变长字符串存储任意长度的文本(其最大长度随不同的数据类型和DBMS而变化)。有些变长数据类型具有最小的定长,而有些则是完全变长的。不管是哪种,只有指定的数据得以保存(额外的数据不保存)。

    image.png

    变长数据类型灵活,为什么还要使用定长数据类型?
    答案是性能。DBMS处理定长列远比处理变长列快得多。此外,许多DBMS不允许对变长列(或一个列的可变部分)进行索引,这也会极大地影响性能。

    注意:当数值不是数值时
    你可能会认为电话号码和邮政编码应该存储在数值字段中(数值字段只存储数值数据),但是这样做并不可取。如果在数值字段中存储邮政编码01234,则保存的将是数值1234,实际上丢失了一位数字。
    需要遵守的基本规则是:如果数值是计算(求和、平均等)中使用的数值,则应该存储在数值数据类型列中;如果作为字符串(可能只包含数字)使用,则应该保存在字符串数据类型列中。

    数值数据类型
    多数DBMS支持多种数值数据类型,每种存储的数值具有不同的取值范围。显然,支持的取值范围越大,所需存储空间越多。此外,有的数值数据类型支持使用十进制小数点(和小数),而有的则只支持整数。
    image.png

    提示:货币数据类型
    多数DBMS支持一种用来存储货币值的特殊数值数据类型。一般记为MONEY或CURRENCY,这些数据类型基本上是有特定取值范围的DECIMAL数据类型,更适合存储货币值。

    日期和时间数据类型
    image.png

    提示:ODBC日期
    因为每种DBMS都有自己特定的日期格式,所以ODBC创建了一种自己的格式,在使用ODBC时对每种数据库都起作用。ODBC格式对于日期类似于{d ‘2005-12-30’},对于时间类似于{t ‘21:46:29’},而对于日期时间类似于{ts ‘2005-12-30 21:46:29’}。如果通过ODBC使用SQL,应该以这种方式格式化日期和时间。

    二进制数据类型
    二进制数据类型是最不具有兼容性(幸运的是,也是最少使用)的数据类型。与迄今为止介绍的所有数据类型(它们具有特定的用途)不一样,二进制数据类型可包含任何数据,甚至可包含二进制信息,如图像、多媒体、字处理文档等。
    image.png