趋近智
让我们巩固对表、列和行的理解。在定义表中的列时,我们不仅会给它命名;还会明确它能存放什么种类的数据。这种设定被称为列的数据类型。
可以把数据类型看作是你列的规则。就像你不会把汤装在筛子里一样,你也不会把“Hello World”这样的文本存储在一个只用于数字的列中。定义数据类型非常重要,因为它能确保:
尽管不同数据库系统(如PostgreSQL、MySQL、SQL Server、SQLite)之间的具体名称和功能可能略有不同,但核心思想和常见类型大体一致。以下是你经常会遇到的主要类别:
这些类型用于处理数值数据。
101、102)、数量(5、100)或计数。它们可以是正数或负数。还存在 SMALLINT、TINYINT、BIGINT 等变体,用于存储较小或较大范围的整数,以优化存储空间。DECIMAL(10, 2) 可以存储最多10位数字的数字,其中2位用于小数部分(例如,12345678.99)。这些类型用于存储文本数据。
n 指定的长度。例如,VARCHAR(255) 可以存储0到255个字符长的任何文本字符串。数据库只使用实际存储字符所需的空间,加上少量额外开销。当文本长度变化很大时使用此类型,例如姓名、地址或描述。n 指定。如果你插入的字符串短于 n,数据库通常会用空格填充它以达到准确的长度 n。如果字符串更长,它可能会被截断或引发错误,这取决于数据库系统。在某些情况下,如果数据长度始终相同(例如,使用 CHAR(2) 存储两位国家代码,如 US、CA、GB),CHAR 的查询速度可能会稍快。VARCHAR 通常能轻松支持的范围。TEXT 的确切长度限制在不同数据库系统之间差异很大,但通常非常大。这些类型专门用于存储时间信息。
2023-10-27。14:35:10。2023-10-27 14:35:10.123。这些类型常用于记录事件,例如记录订单下达时间或记录最后更新时间。某些系统存储相对于UTC(协调世界时)的时间戳信息,这有助于管理时区。TRUE 或 FALSE 值。某些数据库系统没有特定的 BOOLEAN 类型,可能会转而使用小的整数类型(如 TINYINT(1),其中 0 表示 FALSE,1 表示 TRUE)。用于标志或状态指示器,例如 is_active、has_paid 或 email_verified。让我们看看这些类型在一个简单的 Customers 表中如何应用。
一张图表显示了
Customers表中的列及其对应的 SQL 数据类型。customer_id通常是INTEGER类型,用作唯一标识符(主键)。姓名和邮箱使用VARCHAR存储可变长度文本。signup_date使用DATE。total_spent使用DECIMAL存储精确的货币值,而is_premium使用BOOLEAN存储真/假状态。
在设计表时选择适当的数据类型是重要一步。它能确保你的数据存储正确且高效,使后续使用SQL查询和分析变得更轻松、更可靠。随着课程的进行,你将看到这些类型如何影响我们编写查询的方式,尤其是在筛选和执行计算时。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•