本节将介绍数据类型的分类、数据类型的输入与转换等知识。
这里首先对PostgreSQL数据库支持的数据类型进行分类,如表5-1所示,后面会按表中的分类进行讲解。
表5-1 PostgreSQL支持的数据类型分类
为了提高SQL的兼容性,部分数据类型还有很多别名,如integer类型,可以用int、int4表示,smallint也可以用int2表示;char varying(n)可以用varchar(n)表示,numeric(m,n)也可以用decimal(m,n)表示,等等。
通过上面的表,相信大家已经对PostgreSQL数据类型有了一个总体的认识。下面对除对象标识符类型以外的其他数据类型进行详细讲解。对象标识符类型将在后面的章节中详细介绍。
对于一些简单的数据类型,如数字或字符串,使用一般的方法输入就可以了,示例如下:
osdba=# select 1, 1.1421, 'hello world'; ?column? | ?column? | ?column? ----------+----------+------------- 1 | 1.1421 | hello world (1 row)
对于复杂的数据类型,可以按照“类型名”加上单引号括起来的类型值格式来输入,示例如下:
osdba=# select bit '11110011'; bit ---------- 11110011 (1 row)
实际上所有的数据类型(包括简单的数据类型)都可以使用上面的输入方法,示例如下:
osdba=# select int '1' + int '2'; ?column? ---------- 3 (1 row)
PostgreSQL支持用标准SQL的数据类型转换函数CAST来进行数据类型转换,示例如下:
osdba=# select CAST('5' as int), CAST('2014-07-17' as date); int4 | date ------+------------ 5 | 2014-07-17 (1 row)
此外,PostgreSQL中还有一种更简捷的类型转换方式,即双冒号方式,示例如下:
osdba=# select '5'::int, '2014-07-17'::date; int4 | date ------+------------ 5 | 2014-07-17 (1 row)
在PostgreSQL中可以使用上面介绍的这两种数据类型转换方式输入各种类型的数据。