惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
M
MIT News - Artificial intelligence
L
LangChain Blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky
WordPress大学
WordPress大学
博客园_首页
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
L
LINUX DO - 最新话题
S
Security @ Cisco Blogs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Help Net Security
Help Net Security
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
The GitHub Blog
The GitHub Blog
Schneier on Security
Schneier on Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
Jina AI
Jina AI
雷峰网
雷峰网
罗磊的独立博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 【当耐特】
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
人人都是产品经理
人人都是产品经理
Microsoft Security Blog
Microsoft Security Blog
V
V2EX
N
News and Events Feed by Topic
V2EX - 技术
V2EX - 技术
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hacker News - Newest:
Hacker News - Newest: "LLM"
P
Proofpoint News Feed
N
Netflix TechBlog - Medium
Martin Fowler
Martin Fowler
O
OpenAI News
P
Proofpoint News Feed
H
Help Net Security
S
Securelist
Vercel News
Vercel News
Hacker News: Ask HN
Hacker News: Ask HN
博客园 - 三生石上(FineUI控件)

博客园 - osbreak

ros2::tf2 QML::qml与c++数据交互 k8s:: Service 管理 deployment postgresql 索引 postgresql 基础运维 PLSQL 触发器 PLSQL 程序包 PLSQL 执行块 PLSQL 基础数据类型 PLSQL oracle安装部署 mysql事务与隔离 mysql慢查询分析 mysql建增删改查 mysql常用总结 (9)libevent 常用设置 (8)libevent 构建libevent http服务,支持文件下载 (7)libevent filter(过滤器) (6)libevent定时器 (5)libevent evbuffer
postgresql 基本类型
osbreak · 2023-12-15 · via 博客园 - osbreak

1.1 整数类型

integer		4字节
smallint	2字节
bigint		8字节

1.2 任意精度类型

NUMERIC(precision, scale)

1.3 浮点数类型

float4		单精度,4字节
float8		双精度,8字节

1.4 金额类型

/* 显示和客户端参数lc monetary有关 */
money	存储空间 8字节,默认有2位小数

/* 显示和客户端参数lc monetary有关 */
> show  lc_monetary;
zh_CN.UTF-8
/* 设置为美元 */
> set lc_monetary='en_US.UTF-8';

/*  numeric、int、bigint型数据类型转换为money  */
> SELECT '12.34'::numeric::money;
¥12.34
> SELECT '12.34'::money::numeric;
12.34

1.5 序列类型

/* 序列类型通常用于自增ID */
smallserial		2字节
serial			4字节
bigserial		8字节

1.6 字符类型

varchar(n)		有长度限制的字符串
char(n)			定长字符串,长度不足则向后填充空白字符
text			不限长度

1.7 枚举类型

枚举类型中指定的值大小写敏感,匹配时值必须完全一致,
CREATE TYPE mood AS ENUM ('sad', ok', 'happy');

输入一个不存在的枚举值将报错 
SELECT * FROM person WHERE current_hood = 'happ':
避免报错的方法把举转换成text 
SELECT * FROM person WHERE current_hood::text = 'happ':
查询枚举的大小,枚举的标签在定义中最大限制由NAMEDATALEN决定,默认是64-1。
select oid,typname from pg_type where typname='mood';
select * from pg_enum where enumtypid=3952969;
select enum_first('sad'::mood);   // 返回此枚举类型的第一个值
select enum_last('sad'::mood);    // 返回此枚举类型的最后一个值
select enum_range('sad'::mood);   // 返回枚举类型的所有值
select enum_range('sad'::mood , 'happy'::mood); // 返回两个枚举类型之间的范围

1.8 网络地址类型

cidr		IPv4 或 IPv6 网络
inet		IPv4 或 IPv6 主机和网络
macaddr		6 字节 MAC 地址

1.9 几何类型

point 二维平面上的点,用(x, y)表示,x、y分别表示x轴、y轴的坐标值
create table test_point (name text, pt point);
INSERT INTO test_point (name, pt) VALUES ('p1', '(1.1, 22.0)');

/* ?- :是否横向齐平(y坐标是否相同) */
SELECT * FROM test_point WHERE pt ?- '(0,22)';
/* ?| :是否纵向齐平(x坐标是否相同) */
SELECT * FROM test_point WHERE pt ?| '(1.1,0)';
circle,圆,用圆心和半径表示,如 (x, y, r)其中(x,y)为圆心,r为半径。
CREATE table test_circle (name text, cc circle);
INSERT INTO test_circle (name, cc) VALUES ('c1', '1, 2, 2');

/* <@ 	点是否位于圆内 */
/* @> 	圆是否包含点 */
SELECT * FROM test_circle WHERE cc @> point '(1,2)';

/* << 	圆是否严格在圆的左侧 */
/* >> 	圆是否严格在圆的右侧 */
 SELECT * FROM test_circle WHERE cc << circle '10,6,3';

/* <-> 	两个圆之间的距离 */
SELECT circle '((0,0),1)' <-> circle '((5,0),1)';
line,线,在坐标系上用Ax + By + C = 0表示,也就是一个二元一次方程,A、B表示斜率,C表示偏移量。
CREATE TABLE test_line (name text, info line);
INSERT INTO test_line VALUES ('c1', '(0, 1), (2, 3)');

?|| 	两条线是否平行
SELECT * FROM test_line WHERE info ?|| '{1,-1,10}';
?-| 	两条线是否垂直
SELECT * FROM test_line WHERE info ?-| '{1,1,10}';
lseg 线段
CREATE TABLE test_lseg (name text, info lseg);
INSERT INTO test_lseg VALUES ('c1', '((0, 1), (2, 3))');
INSERT INTO test_lseg VALUES ('c2', '[(0, 1), (2, 3)]');
box 四变形的对角点对表示
CREATE TABLE test_box (name text, info box);
INSERT INTO test_box VALUES ('c1', '((1, 1), (2, 3))');
path 线路
CREATE TABLE test_path (name text, info path);
INSERT INTO test_path VALUES ('c1', '((0, 1), (2, 3), (4,5), (3, 6))');
INSERT INTO test_path VALUES ('c2', '[(0, 1), (2, 3), (4,5), (3, 6)]');
INSERT INTO test_path VALUES ('c3', '(0, 1, 2, 3, 4, 5, 3, 6)');

2.0 文本搜索类型

to_tsvector:规范化文本中出现的词
> SELECT to_tsvector('a fat cat sat on a mat and ate a fat rat');
'a':1,6,10 'and':8 'ate':9 'cat':3 'fat':2,11 'mat':7 'on':5 'rat':12 'sat':4

https://zhuanlan.zhihu.com/p/105097036