• 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. 【C】 01 - 再学C语言

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

  3. php基础03:数据类型

    <?php // day01:数据类型 //01.字符串 $x = "hello world"; echo $x; echo "<br>"; ...

  4. java1234教程系列笔记 S1 Java SE chapter 02 lesson 03 java基本数据类型

    第二章 第三节 数据类型 3.1 分类 基本数据类型.引用类型 3.2整型 byte 8 short 16 int  32 long 64 作业: A:1-10求和 B:float double 的最 ...

  5. 从头开始-03.C语言中数据类型

    基本数据类型 整形: Int 4字节 %d / %i Short 2字节 %hd Long 8字节 %ld Longlong 8字节 %lld Unsigned 4字节 % 浮点型 单精度 Float ...

  6. python学习03-数据类型

    一.基本数据类型--数字 布尔型 bool型只有两个值:True和False 之所以将bool值归类为数字,是因为我们也习惯用1表示True,0表示False. 以下是布尔值是False的各种情况: ...

  7. C语言-06复杂数据类型-03指针

    指针变量的定义 变量类型 *变量名; #include <stdio.h> int main() { // 指针就一个作用:能够根据一个地址值,访问对应的存储空间 // 指针变量p前面的i ...

  8. PHP学习之[第03讲]PHP5.4 语法、常量、变量、数据类型详解

    1.<?php echo "Hello World"; ?> 2.//注释1,#注释2,/* 注释3 */ 3.系统常量: __FILE__默认常量,是指PHP程序文件 ...

  9. mysql学习笔记03 mysql数据类型

    数值型:整数型 小数型字符串型时间和日期类型 数值型①整数型1 2 3 4 81bin表示1位,1Byte表示一个字节1B=8b.1汉字=2字节(1 word = 2 byte)1字节=8位(1 by ...

  10. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

随机推荐

  1. ubuntu下常用命令(一)

    1.查看目录 Ctrl+L 2.在终端下:复制命令:Ctrl + Shift + C 组合键.粘贴命令:Ctrl + Shift + V 组合键. 3.解压 tar xzf flie.tar.gz 4 ...

  2. .NET委托和事件

    .net学习之委托和事件   1.什么是委托 通俗的说:委托就是一个能够存储符合某种格式(方法签名)的方法的指针的容器 上传图片: 2.委托语法 准备一个方法:string Hello(string ...

  3. vagrant homestead laravel 编程环境搭建

    这里面其实坑不少的,首先介绍 VirtualBox  虚拟机,windows下安装linux必须用的一个工具 vagrant 封装虚拟机的一个软件,可以设置好系统,安装好软件,什么时候用,直接导入就行 ...

  4. javascript多态 - 类形式实现demo

    /* *多态 * 对传入的参数做判断以实现多种调用方式 */ //类形式实现 function Add(){ function zero(){ return 10; } function one(nu ...

  5. Codeforces Round #389 Div.2 A. Santa Claus and a Place in a Class

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  6. JavaScript工作原理和Node异步I/O

    1. 什么是JavaScript解析引擎? 简单地说,JavaScript解析引擎就是能够“读懂”JavaScript代码,并准确地给出代码运行结果的一段程序.比如var a=1+2:对于静态语言来说 ...

  7. 【01:转自知乎:关于 openSUSE 】

    我是 openSUSE 中文维基唯一的非官方维护者,openSUSE 简体中文翻译团队召集人,linuxsir SuSE 版块的版主,openSUSE 官方论坛 http://forums.opens ...

  8. docker containerd shim分析

    // containerd-shim is a small shim that sits in front of a runtime implementation that allows it to ...

  9. Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别

    2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...

  10. Thread启动方式一(Thread.start):源码分析

    package day11; class TestDemo extends Thread{ int count = 0; /*public void add(){ while(count<100 ...