PostgreSQL字段类型说明
SERIAL8
存储自动递增的惟一整数,最多 8 字节。
BIT
固定长度的位串。
BIT VARYING(n)
VARBIT(n)
可变长度的位串,长度为 n 位。
BOOLEAN
存储逻辑布尔值(true/false/unknown),可以是 TRUE、t、true、y、yes 和 1,或者 FALSE、f、false、n、no 和 0。
BYTEA
用于存储大型二进制对象(比如图形)的原始二进制数据。使用的存储空间是 4 字节加上二进制串的长度。
CHAR(n)
CHARACTER(n)
包含固定长度的字符串,用空格填充到长度 n。
DATE
用 4 字节的存储空间存储日历日期(年、月、日)。
DATETIME
存储日历日期和天内的时间。
DECIMAL(p,s)
NUMERIC(p,s)
存储精确的数值,精度(p)和刻度(s)为 0 或更高。
FLOAT4
REAL
存储浮点数,精度为 8 或更低和 6 个小数位。
FLOAT8
DOUBLE PRECISION
存储浮点数,精度为 16 或更低和 15 个小数位。
SMALLINT
存储有符号或无符号 2 字节整数。
INTEGER
存储有符号或无符号 4 字节整数。
INT8
BIGINT
存储有符号或无符号 8 字节整数。
SERIAL
SERIAL4
存储自动递增的惟一整数值,最多 4 字节存储空间。
TEXT
存储长度可变的大型字符串数据,最多 1 GB。PostgreSQL 自动压缩 TEXT 字符串。
TIME (WITHOUT TIME ZONE |
WITH TIME ZONE)
存储天内的时间。如果不存储数据库服务器的时区,就使用 8 字节的存储空间;如果存储时区,就使用 12 字节。
TIMESTAMP (WITHOUT TIME ZONE |
WITH TIME ZONE)
存储日期和时间。可以存储或不存储数据库服务器的时区,使用 8 字节存储空间。
VARCHAR(n)
CHARACTER VARYING(n)
CHARACTER VARYING
存储可变长度的字符串,最大长度为 n。不存储末尾的空格。
类似Oracle ,PostgreSQL也有强大的类型转换函数, 下面仅举两个类型转换例子。
--1 例子
postgres=# select 1/4;
?column?
----------
0
(1 row)
在PG里如果想做除法并想保留小数,用上面的方法却行不通,因为"/" 运算结果为取整,并
且会截掉小数部分。
--2 类型转换
postgres=# select round(1::numeric/4::numeric,2);
round
-------
0.25
(1 row)
备注:类型转换后,就能保留小数部分了。
--3 也可以通过 cast 函数进行转换
postgres=# select round( cast ( 1 as numeric )/ cast( 4 as numeric),2);
round
-------
0.25
(1 row)
--4 关于 cast 函数的用法
postgres=# SELECT substr(CAST (1234 AS text), 3,1);
substr
--------
3
(1 row)
--5 附: PostgreSQL 类型转换函数
| Function | Return Type | Description | Example |
|---|---|---|---|
|
to_char ) |
text | convert time stamp to string | to_char(current_timestamp, 'HH12:MI:SS') |
| to_char ( interval, text ) |
text | convert interval to string | to_char(interval '15h 2m 12s', 'HH24:MI:SS') |
| to_char ( int, text ) |
text | convert integer to string | to_char(125, '999') |
|
to_char precision |
text | convert real/double precision to string | to_char(125.8::real, '999D9') |
| to_char ( numeric, text ) |
text | convert numeric to string | to_char(-125.8, '999D99S') |
| to_date (text, text ) |
date | convert string to date | to_date('05 Dec 2000', 'DD Mon YYYY') |
| to_number ( text, text ) |
numeric | convert string to numeric | to_number('12,454.8-', '99G999D9S') |
| to_timestamp ( text, text ) |
timestamp with time zone | convert string to time stamp | to_timestamp('05 Dec 2000', 'DD Mon YYYY') |
| to_timestamp ( double precision ) |
timestamp with time zone | convert Unix epoch to time stamp | to_timestamp(1284352323) |
| 1 | varchar | java.lang.String | 12 | |
| 2 | bpchar | java.lang.String | 1 | |
| 3 | cidr | java.lang.Object | 1,111 | |
| 4 | inet | java.lang.Object | 1,111 | |
| 5 | macaddr | java.lang.Object | 1,111 | |
| 6 | text | java.lang.String | 12 | |
| 7 | int8 | java.lang.Long | -5 | |
| 8 | int8 | java.lang.Long | -5 | |
| 9 | box | java.lang.Object | 1,111 | |
| 10 | circle | java.lang.Object | 1,111 | |
| 11 | float8 | java.lang.Double | 8 | |
| 12 | int4 | java.lang.Integer | 4 | |
| 13 | interval | java.lang.Object | 1,111 | |
| 14 | line | java.lang.Object | 1,111 | |
| 15 | lseg | java.lang.Object | 1,111 | |
| 16 | money | java.lang.Double | 8 | |
| 17 | numeric | java.math.BigDecimal | 2 | |
| 18 | path | java.lang.Object | 1,111 | |
| 19 | point | java.lang.Object | 1,111 | |
| 20 | polygon | java.lang.Object | 1,111 | |
| 21 | float4 | java.lang.Float | 7 | |
| 22 | int2 | java.lang.Integer | 5 | |
| 23 | int4 | java.lang.Integer | 4 | |
| 24 | time | java.sql.Time | 92 | |
| 25 | timestamp | java.sql.Timestamp | 93 | |
| 26 | bit | java.lang.Boolean | -7 | |
| 27 | varbit | java.lang.Object | 1,111 | |
| 28 | bool | java.lang.Boolean | -7 | |
| 29 | bytea | [B | -2 |
PostgreSQL字段类型说明的更多相关文章
- PostgreSQL 中字段类型varchar
PostgreSql数据库中varchar类型与sql server中字段用法有差别,PostgreSql中如果字段设置为varchar类型长度为10,则无论存字母.数字或其它符号,长度最大为10个, ...
- PostgreSQL 的字段类型和表操作笔记
字段类型 数值类型 Name Storage Size Description Range smallint 2 bytes small-range integer -32768 to +32767 ...
- PostgreSQL 修改字段类型从int到bigint
由于现在pg的版本,修改int到bigint仍然需要rewrite表,会导致表阻塞,无法使用.但可以考虑其他方式来做.此问题是排查现网pg使用序列的情况时遇到的. 由于int的最大值只有21亿左右,而 ...
- 主流数据库字段类型转.Net类型的方法
最近在阅读一些开源的代码,发现其中有些方法总结的很全面,至少在我做同样的事情时候,需要抓破脑袋想活着google,现在看到了这个关于主流数据库字段类型转.Net类型的方法,故收藏之,也顺便分享给那些能 ...
- postgreSQL-如何查数据库表、字段以及字段类型、注释等信息?
之前从网上也搜索了一些关于postgreSQL的系统表含义以及如何查表相关信息,但是都没有一个完整的内容,所以自己将找到的一些内容作了下整合,大家可以根据自己需要再对sql进行调整. --1.查询对象 ...
- django中模型详解-字段类型与约束条件
这片博文来详细说明django模型的使用,涉及到django模型的创建,字段介绍,以及django模型的crud操作,以及一对一等操作. 在使用模型之前,我们首先设置数据库选项,django的默认数据 ...
- postgresql数字类型
postgresql的数据类型很多,也可以使用create type命令创建自定义数据类型,但常用的数据类型是以下三种: l 数字数据类型 l 字符串数据类型 l 日期/时间数据类型 数字数据类 ...
- Django ORM中常用的字段类型以及参数配置
一.数值型 AutoField对应int(11).自增主键,Django Model默认提供,可以被重写. BooleanField对应tinyint(1).布尔类型字段,一般用于记录状态标记. De ...
- Django中的常用字段类型与参数
Django中的常用字段类型 1. 数值型 以下都是数值相关的,比如AutoField,它在MySQL中的类型为int(11),而BooleanField在MySQL中对应的类型是tinyint(1) ...
随机推荐
- 使用 Apache Web 配置多个站点
导读 如何在流行而强大的 Apache Web 服务器上托管两个或多个站点.这篇文章的环境是 Fedora 27 虚拟机,配置了 Apache 2.4.29.如果你用另一个发行版或不同的 Fedora ...
- <操作系统>内存管理
单道程序设计:内存被划分为两部分:一部分供操作系统使用,另一部分供当前正在执行的程序使用. 多道程序设计:内存中进一步细分用户部分,以满足多个进程的要求. 内存管理的需求: 重定位:程序从磁盘换入内存 ...
- 【Codeforces Round 1110】Codeforces Global Round 1
Codeforces Round 1110 这场比赛只做了\(A\).\(B\).\(C\),排名\(905\),不好. 主要的问题在\(D\)题上,有\(505\)人做出,但我没做出来. 考虑的时候 ...
- android 模仿大众点评团购卷列表多余3条时折叠,点击时显示剩余全部的功能
要实现这样一个效果:加载一组数据,当这组数据的条数超过2条时,则这显示两条,其余的隐藏,当点击“展开全部时”在显示余下的部分.效果如下图所示: 展开前的效果: 展开后的效果 : 实现思路:控制数据而不 ...
- 解析 STM32 的库函数
解析 STM32 的库函数意法半导体在推出 STM32 微控制器之初,也同时提供了一套完整细致的固件开发包,里面包含了在 STM32 开发过程中所涉及到的所有底层操作.通过在程序开发中引入这样的固件开 ...
- VM下设置CenOS为静态IP
在本机利用VM启动了4台虚拟机来搭建zookeeper集群,但是每次电脑重启后,虚拟机的IP都会变化,现在想来固定每台虚拟机的IP. 1.Step1:查看网关和子网掩码 记住选用NAT模式,点击NAT ...
- Qt实现软件自动更新的一种简单方法
前言 最近在学习Qt开发上位机,想实现一个检查更新的功能,网上搜索了一大圈,发现实现过程都很复杂,关键是代码看不懂,所以就自己开发一种简单的方式来实现.实现效果如下: 点击"检查更新&quo ...
- [JSOI2016]轻重路径[树链剖分]
题意 题目链接 分析 先对原树树剖,在一次删点操作后从根节点开始二分,如果一条边从重边变成轻边,必然有 \(size_u\le \frac{1}{2}size_{rt}\) (取等号是特判对应儿子消失 ...
- ABP从入门到精通(4):使用基于JWT标准的Token访问WebApi
项目:asp.net zero 4.2.0 .net core(1.1) 版本 我们做项目的时候可能会遇到需要提供api给app调用,ABP动态生成的WebApi提供了方便的基于JWT标准的Token ...
- .NETCore_生成实体
先安装以下三个包,或者使用Nuget引用 不要问我为什么,按哥说的做吧: Install-Package Microsoft.EntityFrameworkCore.SqlServer Install ...