psql-03数据类型(1)
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)的更多相关文章
- 【C】 03 - 数据类型
程序说到底就是对数据的处理,所以首先要弄清楚需要处理哪些数据,计算机如何存储这些数据.C语言根据需要,抽象出了一些基本数据类型和衍生数据类型.这些可以满足大部分需求,更复杂的抽象数据类型亦可通过它们来 ...
- day 03 数据类型
1.作业讲解 2.数据类型 什么是数据类型? (1)int 1,2,3用于计算. (2)bool:True,False,用户判断. (3)str:存储少量数据,进行操作 'fjdsal' '二哥',' ...
- Numpy | 03 数据类型
numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型. 下表列举了常用 NumPy 基本类型: 名称 描 ...
- 学习 JavaScript (三)核心概念:语法、变量、数据类型
JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,这篇文章主要讲解的是前面三个,后面三个下一篇文章再讲解. 01 语法 熟悉 JavaScript 历史的人应该都知道 ...
- JavaSE----03.数据类型
03.数据类型 1.数据类型分类 Java是强类型语言,Java中的数据类型分为两大类,分别是基本数据类型和引用数据类型.其中,基本数据类型由Java语言定义,其数据占用内存的大小固定,在内存 ...
- 【C】 01 - 再学C语言
“C语言还用再学吗?嵌入式工程师可是每天都在用它,大家早就烂熟于心,脱离语言这个层面了”.这样说不无道理,这门古老的语言以其简单的语法.自由的形式的而著称.使用C完成工作并不会造成太大困扰,所以很少有 ...
- MangoDB学习笔记
01. 数据库操作 1. 查看当前数据库名称 db 2. 查看所有数据库名称,列出所有在物理上存在的数据库 show dbs; 3. 切换数据库,如果数据库不存在也并不创建,直到插入数据或创建集合时数 ...
- day06_python_1124
01 昨日内容回顾 字典: 增: setdefault() 有责不变,无责添加 dic['key'] = vaulue 删: pop 按照key pop('key') pop('key',None) ...
- SpringBoot17 FastJson配置、Druid配置
1 FastJson配置 1.1 FastJson基础知识 点击前往 1.2 SpringBoot整合FastJson 点击前往 1.2.1 导入FastJson依赖 <!--fastjson- ...
- yaml文件学习笔记
01 介绍 YAML 是 "YAML Ain't Markup Language" 的递归缩写.在开发的这种语言时,YAML 的意思其实是:"Yet Another Ma ...
随机推荐
- Android 6.0的运行时权限
原文 http://droidyue.com/blog/2016/01/17/understanding-marshmallow-runtime-permission/ 主题 安卓开发 Andr ...
- 【python】SQLAlchemy
来源:廖雪峰 对比:[python]在python中调用mysql 注意连接数据库方式和数据操作方式! 今天发现了个处理数据库的好东西:SQLAlchemy 一般python处理mysql之类的数据库 ...
- CCF I'm Stuck!
问题描述 试题编号: 201312-5 试题名称: I'm stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', ...
- 单独编译osgQt模块 Qt moc
从alphapixel网站下载了OSG3.0.1VS2010x64版本的库,但是里面不包括osgQt模块,于是得自己编译 *************osgQtx64.zip工程文件可以去本博客园的“文 ...
- Linux内存性能指标、CPU性能指标
内存性能指标 内存基础概念 先执行一下 top 命令,看结果中关于内存的相关部分 # top 其中的 VIRT.RES.SWAP 都是什么呢? 分别是下面的3个概念: 物理内存 Resident - ...
- vsftp详细配置(转)
详细配置转载来自以下链接: http://yuanbin.blog.51cto.com/363003/108262 vsftp源码下载(vsftpd-3.0.2.tar.gz): http://dow ...
- WPA: 4-Way Handshake failed - pre-shared key may be incorrect
生成psk网址: https://www.wireshark.org/tools/wpa-psk.html 相关 bug: 重点 关注 : https://en.community.sonos.com ...
- 栈与队列:refresh的停车场
数据结构实验之队列一:排队买饭 Time Limit: 1000MS Memory limit: 65536K 题目描述 中午买饭的人特多,食堂真是太拥挤了,买个饭费劲,理工大的小孩还是很聪明的,直接 ...
- 《linux系统及其编程》实验课记录(六)
实验 6:Linux 文件系统 实验环境: 安装了 Red Hat Enterprise Linux 6.0 可运行系统,并且是成功验证系统.有另外一个无特权用户 student,密码 student ...
- 【ubuntu 】常见错误--Could not get lock /var/lib/dpkg/lock
ubuntu 常见错误--Could not get lock /var/lib/dpkg/lock 通过终端安装程序sudo apt-get install xxx时出错: E: Could not ...