• PostgreSQL支持的数据类型远比其他数据库要多;

类型输入与转换

select int '1', date '2015-12-6';

select '1'::int, '2015-12-6'::date;

布尔类型

  • 一字节储存, 表示为t/f;
t | TRUE
f | FALSE
t| tRue
f | fAlSe
t | 'true'
f | 'false'
t | 't'
f | 'f'
t | 'y'
f | 'n'
t | 'yes'
f | 'no'
t | '1'
f | '0' //注意没有数值0,1
  • 操作符 and, or, not
  • 比较运算符: is
expression is true;
expression is not true;
expression is unknown;
.......

数值类型

名称 存储(字节) 类型 范围
smallint/int2 2 整数 -215~214
int 4 整数 -231-230
bigint/int8 8 整数 -263-261
numeric/decimal 精确小数 无限制
real/float4 4 浮点数 6位十进制
double precision/float8/float 8 浮点数 15位十进制
serial 4 序列 1~2^21-1
bigserial 8 序列 1~2^63-1
money 8 货币 -92233720368547758.08~92233720368547758.07
  • numeric/decimal用于货币计算等要求精确的场合;定义此类型: numeric(precision精度, scale标度)
  • 序列类型用于自增,默认从1开始;
//定义一个自增id的表

create table ids (id serial primary key);
  • 货币类型可以储存固定小数的货币数目,与浮点数不同,保证精度;
  • 货币类型的格式由lc_monetary决定;查看: show lc_monetary;,修改: set lc_monetary = 'en_US.UTF_8'
  • 数学函数;
  • 数学操作符;

字符串类型

名称 长度
varchar(n) 变长,4+实际长度,最大1GB
char(n) 定长,4+n,不足补空白,最大1GB
text 变长,无限制

二进制数据类型

  • 只有一种: bytea;
  • 允许存储二进制字符串,和普通字符串的区别:

    * 可以存储字节零值和其他不可打印的字节;

    * 二进制字符串的处理实际就是处理字节,字符串处理则取决于区域设计; 即二进制字符串适合存储是‘原始字节’的数据, 如图片,而字符串适合文本;

位串类型

  • bit(n): 必须精准匹配长度,存储过短或过长都会报错;
  • bit varying(n): 变长;

日期/时间类型

名称 存储空间(字节) 描述 最低值 最高值 分辨率
date 4 只用于日期 4713BC 5874897AD 1天
interval[(p)] 12 时间间隔 -178000000年 178000000年 1毫秒
time[(p)] 8 只用于一日内时间 00:00:00 24:00:00 1毫秒
time[(p)] with the zone 12 带时区 00:00:00+1459 24:00:00-1459 1毫秒
timestamp[(p)] 8 日期和时间 4713BC 5874897AD 1毫秒
timestamp[(p)] with the zone 12 带时区 4713BC 5874897AD 1毫秒
  • 可选精确值p指明小数位数,范围[0~6],默认6位;
  • SQL中任何日期时间的文本输入都需要由类型加单引号字符串组成: type [(p)] 'value';
  • 日期date可以以很多格式输入,常用格式与表示格式为: year-month-day;
  • 时间字符串常用输入格式和表示格式为: hh:mm:ss

枚举类型

  • 一个包含一系列有序的静态值集合的数据类型; 输入的字符串不在枚举类型之间会报错;
  • 大小敏感,枚举值4字节,其文本长度至少63字节;
  • 使用前先要用create type创建一个枚举类型
create type week as enum ('sum', 'mon', 'tues', 'wed', 'thur', 'fri'. 'sat');
create table duty(name text, day week);
insert into duty values('jinks', 'mon');
  • 使用\dT查看枚举类型的定义;
  • 枚举类型具体值都是定义在表pg_enum中,可以直接操作;

几何类型

名称 存储空间(字节) 描述 形式
point 16 (x,y)
line 32 直线 ((x1,y1),(x2,y2))
lseg 32 线段 ((x1,y1),(x2,y2))
box 32 矩形 ((x1,y1),(x2,y2))
path 16+16*n 闭合路径 ((x1,y1)...)
path 16+16*n 开发路径 [(x1,y1)...]
polygon 40+16n 多边形 ((x1,y1)...)
circle 24 <(x,y),r>

网络地址类型

名称 存储空间(字节) 描述
cidr 7/19 IPv4或IPv5的网络地址
inet 7/19 IPv4或IPv5的网络地址或主机地址
macaddr 6 以太网MAC地址

psql-03数据类型(1)的更多相关文章

  1. 【C】 03 - 数据类型

    程序说到底就是对数据的处理,所以首先要弄清楚需要处理哪些数据,计算机如何存储这些数据.C语言根据需要,抽象出了一些基本数据类型和衍生数据类型.这些可以满足大部分需求,更复杂的抽象数据类型亦可通过它们来 ...

  2. day 03 数据类型

    1.作业讲解 2.数据类型 什么是数据类型? (1)int 1,2,3用于计算. (2)bool:True,False,用户判断. (3)str:存储少量数据,进行操作 'fjdsal' '二哥',' ...

  3. Numpy | 03 数据类型

    numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型. 下表列举了常用 NumPy 基本类型: 名称 描 ...

  4. 学习 JavaScript (三)核心概念:语法、变量、数据类型

    JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,这篇文章主要讲解的是前面三个,后面三个下一篇文章再讲解. 01 语法 熟悉 JavaScript 历史的人应该都知道 ...

  5. JavaSE----03.数据类型

    03.数据类型 1.数据类型分类     Java是强类型语言,Java中的数据类型分为两大类,分别是基本数据类型和引用数据类型.其中,基本数据类型由Java语言定义,其数据占用内存的大小固定,在内存 ...

  6. 【C】 01 - 再学C语言

    “C语言还用再学吗?嵌入式工程师可是每天都在用它,大家早就烂熟于心,脱离语言这个层面了”.这样说不无道理,这门古老的语言以其简单的语法.自由的形式的而著称.使用C完成工作并不会造成太大困扰,所以很少有 ...

  7. MangoDB学习笔记

    01. 数据库操作 1. 查看当前数据库名称 db 2. 查看所有数据库名称,列出所有在物理上存在的数据库 show dbs; 3. 切换数据库,如果数据库不存在也并不创建,直到插入数据或创建集合时数 ...

  8. day06_python_1124

    01 昨日内容回顾 字典: 增: setdefault() 有责不变,无责添加 dic['key'] = vaulue 删: pop 按照key pop('key') pop('key',None) ...

  9. SpringBoot17 FastJson配置、Druid配置

    1 FastJson配置 1.1 FastJson基础知识 点击前往 1.2 SpringBoot整合FastJson 点击前往 1.2.1 导入FastJson依赖 <!--fastjson- ...

  10. yaml文件学习笔记

    01 介绍 YAML 是 "YAML Ain't Markup Language" 的递归缩写.在开发的这种语言时,YAML 的意思其实是:"Yet Another Ma ...

随机推荐

  1. 【linux】学习6

    鸟哥13章的东西 shell script速度较慢,适合用于系统管理,但不适合处理大量数值运算 var=$((运算内容)) 可以用来做变量的加减乘除求余运算 total=$(($firstnum*$s ...

  2. [转帖]海森矩阵(Hessian matrix)

    http://hi.baidu.com/imheaventian/item/c8591b19907bd816e2f98612

  3. August 19th 2016 Week 34th Friday

    Friends are not the people you meet at the top, they are the people who were with you at the bottom. ...

  4. Nodejs的第一个页面

    nodejs安装后如何查看和安装其他工具 网上nodejs的文章已经很多,这里只是写下自己的小小心得,如果能帮到别人当然更好. 安装nodejs这里就不叙述了,直接上nodejs官网下载就好了,初学者 ...

  5. python基础——使用元类

    python基础——使用元类 type() 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的. 比方说我们要定义一个Hello的class,就写一个hello. ...

  6. 【SSO单点系列】(1):CAS4.0 环境的搭建

    一.概述 今天开始写CAS相关的第一篇文章,这篇文章主要是关于CAS环境的搭配,提供给刚刚接触CAS的一个入门指南,并演示一个CAS的最简单的实例 二.环境要求 博主的环境如下: win8.1 64 ...

  7. 常用iOS的第三方框架

    图像:1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等 ...

  8. WCF分布式开发必备知识(3):Web Service 使用

    参考地址:http://www.cnblogs.com/zhili/p/WebService.html 一.WebService概述 SOAP.WSDL.UDDISOAP(Simple Object ...

  9. 【mysql启动Innodb的方法】

    点击此处进入原网页 1.存储引擎是什么? Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力. ...

  10. SSH入门简单搭建例子

    因为公司涉及项目使用SSH,为了解SSH搭建方式和运作原理,就自己搭建了一个. 采用尽量以最少的JAR包,搭建一个简单的struts2+spring+hibernate环境,希望像我这样的入门者都能理 ...