广告
返回顶部
首页 > 资讯 > 数据库 >postgresql数据库——数据类型总结
  • 833
分享到

postgresql数据库——数据类型总结

2024-04-02 19:04:59 833人浏览 安东尼
摘要

postgresql数据库的 数据类型 postgresql支持多种数据类型,主要有:整数类型、浮点数类型、任意精度数值、日期时间类型、字符串类型、二进制类型、布尔类型和数组类型等。1、整数类型&

postgresql数据库的 数据类型 


postgresql支持多种数据类型,主要有:整数类型、浮点数类型、任意精度数值、日期时间类型、字符串类型、二进制类型、布尔类型和数组类型等。


1、整数类型

   postgresql提供了多种数值数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需要的存储空间也会越大。

  postgresql提供的整数类型有:mallint、int、bigint。


《类型名称》  《说明》     《存储需求》   《取值范围》

smallint   小范围的整数       2字节        -32768----32767

int        普通大小的整数     4字节        -2147483648----2147483647

bigint     大整数            8字节        -9223372036854775808----9223372036854775807



2、浮点数类型:

postgresql中使用浮点数来表示小数。浮点类型有两种:real和double precision,如下所示:

《类型名称》            《说明》         《存储需求》  

real                 6位十进制数字精度          4字节

double precision     15位十进制数字精度         8字节


3、任意精度类型

  postgresql中使用numeric表示任意精度的类型是数值,使用numeric(m,n)来表示,其中m称为精度,表示总共的位数;n称为标度,是表示小数的位数。例如:563.129的精度为9,标度为3

注意:numeric的有效取值范围由M和D的值决定。如果改变M而固定D,那么其取值范围将随M的变大而变大。另外,如果用户指定的精度超出精度外,就会四舍五入进行处理。如下:

testdb=# create table emp (t numeric(5,1),y numeric(5,3));  

testdb=# insert into emp values (9.12,9.156);

testdb=# select * from emp;

  t  |   y   

-----+-------

 9.1 | 9.156



4、日期与时间类型:

   postgresql中有多种表示日期的数据类型,主要有:time、date、timestamp和interval。每一个类型都有合法的取值范围,当指定确实不合法的值时系统将“零”值插入数据库中。如下类型介绍:

《类型名称》     《含义》            《日期范围》         《存储需求》      《存储格式》

time        只用于一日内的时间   00:00:00---24:00:00        8字节           HH:MM:SS     

date        只用于日期          4713BC---58784897AD         4字节          YYYY-MM-DD   

timestamp   日期和时间          4713BC---58784897AD         8字节       YYYY-MM-DD HH:MM:SS 


注意:time和timestamp类型,默认情况下为without time zone(不带时区);如果需要,可以设置为带时区(with time zone )


4.1、time:类型使用

time类型用在时间上,在存储时需要8字节,格式为:HH:MM:SS。HH表示小时;MM表示分钟;SS表示秒。

例子:

testdb=# create table test (t time);

testdb=# insert into test values ('11:10:25 '),('23:45');   ---注意,第一个时间值最后有一个空格,

testdb=# select * from test;

    t     

----------

 11:10:25

 23:45:00

(2 rows)


从上面的结果可以看出,两个时间都正确插入,而且格式都为:HH:MM:SS


testdb=# insert into test values (current_time),(now());    ---插入系统当前时间

INSERT 0 2

testdb=# select * from test;

        t        

-----------------

 11:10:25

 23:45:00

 04:56:57.034863

 04:56:57.034863

(4 rows)

从上面可以看出,会显示时区;



4.2、date:类型

   date类型用在日期值时,没有时间部分,存储需要4字节。日期格式为:'YYYY-MM-DD',其中YYYY表示年;MM表示月;DD表示日;。在给date类型的字段赋值时,可以使用字符串类型或者数字类型的数据插入,只要符合date的日期格式即可。

①:以“YYYY-MM-DD”或者“YYYYMMDD”字符串格式表示的日期。例如,输入‘2018-12-31’或者‘20181231’,插入数据库的日期都为2018-12-31.

②:以“YY-MM-DD”或者“YYMMDD”字符串格式表示的日期,在这里YY表示两位的年值。postgresql使用以下规则解释两位年值:“00-69”转换年值为‘2000--2069’;‘70-99’转换年值为‘1970-1999’;

③:利用current_date或者now()插入当前系统日期。

例子:


testdb=# create table emp (d date);

testdb=# insert into emp values ('1998-08-08'),('19980808'),('20180808');

testdb=# insert into emp values (now());  ---插入系统当前值


testdb=# select * from emp;

     d      

------------

 1998-08-08

 1998-08-08

 2018-08-08

 2018-06-23

(4 rows)

注意:now()函数返回日期和时间值,在保存到数据库时,只保留了日期部分。


4.3、timestamp:类型

timestamp的日期格式为YYYY-MM-DD HH:MM:SS。在存储时需要8字节。如:


testdb=# create table emp (ts timestamp);

testdb=# insert into emp values ('2018-08-10 11:00:02'),(now());

testdb=# select * from emp;

            ts             

---------------------------

 2018-08-10 11:00:02

 2018-06-23 05:14:17.52538

(2 rows)


4.4、创建带时区的日期和时间类型

testdb=# create table emp (t time with time zone);

CREATE TABLE

testdb=# insert into emp values ('12:10:05 PST'),('12:10:10');

INSERT 0 2

testdb=# select * from emp;

      t      

-------------

 12:10:05-08

 12:10:10-04

(2 rows)

其中,PST为西8区,如果不指定时区,默认是东8区。



5、字符串类型:

   字符串类型用来存储字符串数据,除了可以存储字符串数据之外,还可以存储其他数据,比如图片和声音的二进制数据。除了可以进行区分或者不区分大小写的字符串比较外,还可以进行模式匹配查找。postgresql的字符串类型包括:char、varchar和text。

《类型名称》                      《说明》

char(n)              固定长度非二进制字符串,不足补空白

varchar(n)           变长非二进制字符串,有长度限制

text                 变长非二进制字符串,无长度限制


注意:

   char(n) varchar(n),其中n是一个正整数。表示可以存储n个字符的字符串。如果要存储的字符串比声明的长度短,类型为char的数值将会用空白填满;而类型为varchar的数值将只存储短些的字符串。

   char类型中填充的空白是无意义的。例如,比较两个char值的时候填充的空白都会被忽略,在转换成其他字符串类型的时候,char值里面的空白会被删除,注意在varchar和text数值里,结尾的空白是有意思的。


例子:

testdb=# create table emp (v1 char(5),v2 varchar(10));

CREATE TABLE

testdb=# insert into emp values ('ab','ab '),('abc','abc'),('ab   ','ab   ');

INSERT 0 3

testdb=# select * from emp;

  v1   |  v2   

-------+-------

 ab    | ab 

 abc   | abc

 ab    | ab   

(3 rows)


testdb=# select concat('(',v1, ')'),concat('(',v2, ')') from emp;

 concat  | concat  

---------+---------

 (ab   ) | (ab )

 (abc  ) | (abc)

 (ab   ) | (ab   )

(3 rows)


--text类型:

  postgresql提供text类型,它可以存储任何长度的字符串。虽然text类型不是sql标准,但是许多其他sql数据库系统也有。

例子:

testdb=# create table emp (t1 text);

testdb=# insert into emp values ('ab'),('aGCd'),('ab   ');

testdb=# select * from emp;

  t1   

-------

 ab

 agcd

 ab   

(3 rows)


testdb=# select concat('(',t1, ')') from emp;

 concat  

---------

 (ab)

 (agcd)

 (ab   )

(3 rows)



6、二进制类型

   postgresql支持两类字符型数据:文本字符串和二进制字符串,postgresql提供了bytea类型,用于存储二进制字符串。bytea类型存储空间为4字节加上实际的二进制字符串。


testdb=# create table emp (b bytea);                               ^

testdb=# insert into emp values (E'\\000');

INSERT 0 1

testdb=# select * from emp;

  b   

------

 \x00

(1 row)



7、布尔类型

   postgresql提供了Boolean布尔数据类型。Boolean用1字节来存储,提供了true(真),false(假)两个值。另外,用户可以使用其他有效文本值替代true和false。替代true的文本值为‘t’‘true’‘y’,'1'‘yes’;替代false的文本值为‘f’‘n’,'0'


testdb=# create table emp (b boolean);

CREATE TABLE

testdb=# insert into emp values (true),(false),('y'),('no'),('0');

INSERT 0 5

testdb=# select * from emp;

 b 

---

 t

 f

 t

 f

 f

(5 rows)


8、数组类型

postgresql允许将字段定义成定长或变长的一维或多维数组。数组类型可以是任何基本类型或用户定义类型。


您可能感兴趣的文档:

--结束END--

本文标题: postgresql数据库——数据类型总结

本文链接: https://www.lsjlt.com/news/43518.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • postgresql数据库——数据类型总结
    postgresql数据库的 数据类型 postgresql支持多种数据类型,主要有:整数类型、浮点数类型、任意精度数值、日期时间类型、字符串类型、二进制类型、布尔类型和数组类型等。1、整数类型&...
    99+
    2022-10-18
  • Python数据类型总结
    第1章 数据类型:1.1可变or不可变类型(变量值):变量的三个特点:id/type/value可变类型:值改变,但id不变,证明就是在改变原值不可变类型:值改变,id也跟着变了,证明申请了新的内存空间来存新值,根本没有改变量值Ø  证明浮...
    99+
    2023-01-31
    数据类型 Python
  • Oracle基础-数据类型总结
    Oracle提供了22种不同的sql数据类型供我们使用:1、char :   这是个定长的字符串,会用空格填充来达到其最大长度。char 字段最多可以存储2000字节信息;2、nchar...
    99+
    2022-10-18
  • redis常用数据类型总结
    redis常用数据类型总结     redis是以键值对key-value的形式来存储数据,而存储的数据类型有5种String,List,Set,Map,以及有序集合这五种数据...
    99+
    2022-10-18
  • 关系型数据库主键总结
    在基于关系型数据库设计时候,通常要为每张表指定一个主键,所谓主键就是能够唯一标识表中某一行记录的属性或属性组,一个表只能有一个主键,但可以 有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数...
    99+
    2022-10-18
  • php中的标量数据类型总结
    PHP 的数据类型可以分为三大类,分别是标量数据类型、复合数据类型和特殊数据类型。 其中,标量数据类型是数据结构的最基础单元,只能存储一个数据。在 PHP 中的标量数据类型分为四种,如下表所示: 类型 功能 boolean(布尔型) 最简单...
    99+
    2016-10-26
    php 标量数据类型
  • JavaScript数据类型相关知识总结
    本篇内容介绍了“JavaScript数据类型相关知识总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!js...
    99+
    2022-10-19
  • Python数据类型最全知识总结
    目录一、什么是数据类型二、字符串类型三、列表类型四、元组类型五、字典类型六、集合类型七、五种数据类型所支持的运算符比较八、数据的序列化和反序列化一、什么是数据类型 其实可以明白数据类...
    99+
    2022-11-12
  • Typescript中的数据类型实例总结
    目录是什么有哪些booleannumberstringarraytupleenumanynull和undefinedvoidneverobject总结是什么 typescript和j...
    99+
    2022-11-13
  • Swift 基本数据类型详解总结
    Swift 基本数据类型 有以下几种基本数据类型: 整型 浮点型 布尔型 元组 可选值 Optional 1. 整型 var intT...
    99+
    2022-11-12
  • PostgreSQL(五)常用数据类型
    目录 1.字符串类型:char(n),varchar(n),text2.数值类型:smallint,int,bigint,decimal,numeric,real,doub...
    99+
    2023-09-26
    postgresql 数据库 java
  • 数据仓库总结
    1.为什么要做数仓建模 数据仓库建模的目标是通过建模的方法更好的组织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点。 当有了适合业务和基础数据存储环境的模型(良好的数据模型),那么大数据就能获得以下好处: 当有了适合业务和基...
    99+
    2023-08-30
    数据仓库
  • R语言数据类型知识点总结
    通常,在使用任何编程语言进行编程时,您需要使用各种变量来存储各种信息。 变量只是保留值的存储位置。 这意味着,当你创建一个变量,你必须在内存中保留一些空间来存储它们。 您可能想存储各...
    99+
    2022-11-11
  • 数据库数据类型
        数据类型是数据的一种属性,其可以决定数据存储格式,有效范围和相应的限制。Mysql里类型有:整数型,浮点型,日期和时间类型,字符串类型等,不同的数据类型其特点...
    99+
    2022-10-18
  • python数据结构:数据类型
    目录1.数据是什么?2.数据类型2.1内建原子数据类型2.2 内建集合数据类型3.集合数据类型的方法3.1 列表3.2 字符串3.3 元祖3.4 集合3.5 字典1.数据是什么? 在...
    99+
    2022-11-12
  • 数据库一些重要概念和数据类型总结(读书笔记)--python
    数据库一些概念:1.1.PRIMARY KEY主键什么是主键:表中一列或者多列组成的唯一的key,也就是通过这一个或者多个列能唯一的标识一条记录(正常都是用一列实现)。特点:1.主键的列不能包含空值Nul...
    99+
    2022-10-18
  • postgresql数据库体系结构
    postgresql数据库是由:连接管理系统(系统控制器)、编译执行系统、存储管理系统、事务系统、系统表 五大部分组成。 ①:连接管理系统:接收外部操作对系统的请求,对操作请求进行预处理和分发,起...
    99+
    2022-10-18
  • PostgreSQL中json数据类型详解
    目录前言一、PG数据库中jsON的类型1、json和jsonb的区别2、项目开发中的选择3、json数据类型二、PG中json的简单操作1、基础json数据操作2、json和jsonb输出对比3、jsonb包含测试总结前...
    99+
    2023-04-01
    PostgreSQL json类型 json数据类型
  • PostgreSQL 10数据类型与索引
    PostgreSQL 10常用的索引类型有btree,hash,gin,gist,spgist,brin六种,btree和hash是最长用的,基本所有数据类型都支持,以下对gin,gist,spgist,b...
    99+
    2022-10-18
  • 【MySQL】数据库数据类型
    文章目录 1. 整体概要2. 数值类型(有符号) tinyint 创建表(无符号) tinyint 创建表bit类型float 类型(无符号)floatdecimal 3. 二进制类型ch...
    99+
    2023-10-23
    数据库 mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作