• 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. HTTP协议与HTML表单(再谈GET与POST的区别)

    HTTP的GET/POST方式有何区别?这是一个老生常谈的问题,但老生常谈的问题往往有一些让人误解的结论.本文将带您浅尝HTTP协议,在了 解HTTP协议的同时将会展示许多被人们忽视的内容.在掌握了H ...

  2. 收集android上开源的酷炫的交互动画和视觉效果:Interactive-animation

    查看网址:http://www.open-open.com/lib/view/open1411443332703.html

  3. 【leetcode】Shortest Palindrome(hard)★

    Given a string S, you are allowed to convert it to a palindrome by adding characters in front of it. ...

  4. CCF I'm Stuck!

    问题描述 试题编号: 201312-5 试题名称: I'm stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', ...

  5. NYOJ题目34韩信点兵

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAAHiCAIAAACV1MbSAAAgAElEQVR4nO3dPXLjONeG4W8TyrUQx1 ...

  6. Yslow网站性能优化工具

    Yslow是一款网站性能优化的插件:

  7. Spring.Net的IOC入门

    1.构造器注入 namespace Spring.Net { class Program { //构造器注入 static void Main(string[] args) { IApplicatio ...

  8. SQL——触发器——插入触发器——边学边项目写的。

    需求: 项目表项目编码触发器编写 为项目表DwProject编写触发器,目的为当创建新项目时,且ProjectNo 为Null或空字符串时,自动创建项目编号,编号格式为4位年号,2位月份,2位顺序号, ...

  9. Ubuntu中给eclipse和android studio添加桌面快捷图标

    Ubuntu 12.04 创建应用程序启动项(可在Unity LaucherPad显示) http://www.cnblogs.com/bluestorm/archive/2012/10/12/272 ...

  10. 谈谈Delphi中的类和对象1---介绍几个概念 && 对象是一个地地道道的指针

    参考:http://blog.163.com/liang_liu99/blog/static/88415216200952123412180/ 以下的介绍主要针对的是Delphi的面向对象的知识,可能 ...