【PostgreSQL 】入门篇——支持的各种数据类型介绍,包括整数、浮点数、字符串、日期、JSON、数组等

1. 整数类型

1.1 SMALLINT

  • 描述:用于存储小范围的整数值。
  • 大小:2 字节
  • 范围:-32,768 到 32,767
  • 使用场景:适合存储小型计数器、状态码等。
  • 示例
CREATE TABLE status_codes (id SMALLINT PRIMARY KEY,description TEXT
);

1.2 INTEGER

  • 描述:用于存储中等范围的整数值。
  • 大小:4 字节
  • 范围:-2,147,483,648 到 2,147,483,647
  • 使用场景:常用于存储用户 ID、订单 ID 等。
  • 示例
CREATE TABLE users (user_id INTEGER PRIMARY KEY,username VARCHAR(50)
);

1.3 BIGINT

  • 描述:用于存储大型整数值。
  • 大小:8 字节
  • 范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
  • 使用场景:适合存储大数据分析中的行数、全局唯一标识符(UUID)等。
  • 示例
CREATE TABLE large_data (record_id BIGINT PRIMARY KEY,value NUMERIC
);

2. 浮点数类型

2.1 REAL

  • 描述:用于存储单精度浮点数。
  • 大小:4 字节
  • 范围:-3.40282347E+38 到 3.40282347E+38
  • 使用场景:适合需要节省存储空间的应用,如图形处理、科学计算等。
  • 示例
CREATE TABLE measurements (id SERIAL PRIMARY KEY,temperature REAL
);

2.2 DOUBLE PRECISION

  • 描述:用于存储双精度浮点数。
  • 大小:8 字节
  • 范围:-1.7976931348623157E+308 到 1.7976931348623157E+308
  • 使用场景:适合需要高精度的计算,如金融应用、统计分析等。
  • 示例
CREATE TABLE financial_data (transaction_id SERIAL PRIMARY KEY,amount DOUBLE PRECISION
);

2.3 NUMERIC

  • 描述:用于存储高精度的数字。
  • 大小:可变长度
  • 范围:可指定精度和小数位数
  • 使用场景:适合存储货币、精确的科学计算等。
  • 示例
CREATE TABLE products (product_id SERIAL PRIMARY KEY,price NUMERIC(10, 2)  -- 10 位数字,其中 2 位为小数
);

3. 字符串类型

3.1 CHAR(n)

  • 描述:用于存储固定长度的字符串。
  • 大小:固定长度
  • 使用场景:适合存储国家代码、邮政编码等。
  • 示例
CREATE TABLE countries (country_code CHAR(2) PRIMARY KEY,country_name VARCHAR(100)
);

3.2 VARCHAR(n)

  • 描述:用于存储可变长度的字符串。
  • 大小:可变长度,最大长度为 n
  • 使用场景:适合存储用户名、电子邮件地址等。
  • 示例
CREATE TABLE users (user_id SERIAL PRIMARY KEY,email VARCHAR(255) UNIQUE
);

3.3 TEXT

  • 描述:用于存储大量文本数据。
  • 大小:可变长度,最大可达 1 GB
  • 使用场景:适合存储文章内容、用户评论等。
  • 示例
CREATE TABLE articles (article_id SERIAL PRIMARY KEY,content TEXT
);

4. 日期和时间类型

4.1 DATE

  • 描述:用于存储日期信息。
  • 大小:4 字节
  • 范围:4713 BC 到 5874897 AD
  • 使用场景:适合存储出生日期、事件日期等。
  • 示例
CREATE TABLE events (event_id SERIAL PRIMARY KEY,event_date DATE
);

4.2 TIME

  • 描述:用于存储时间信息。
  • 大小:8 字节
  • 范围:00:00:00 到 24:00:00
  • 使用场景:适合存储工作时间、事件发生时间等。
  • 示例
CREATE TABLE schedules (schedule_id SERIAL PRIMARY KEY,start_time TIME
);

4.3 TIMESTAMP

  • 描述:用于存储日期和时间的组合。
  • 大小:8 字节
  • 范围:4713 BC 到 5874897 AD
  • 使用场景:适合存储记录创建时间、订单时间等。
  • 示例
CREATE TABLE orders (order_id SERIAL PRIMARY KEY,order_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4.4 INTERVAL

  • 描述:用于表示两个时间点之间的时间间隔。
  • 大小:可变长度
  • 使用场景:适合存储活动持续时间、事件间隔等。
  • 示例
CREATE TABLE tasks (task_id SERIAL PRIMARY KEY,duration INTERVAL
);

5. JSON 类型

5.1 JSON

  • 描述:用于存储非结构化数据,支持 JSON 格式。
  • 大小:可变长度
  • 使用场景:适合存储配置文件、用户偏好设置等。
  • 示例
CREATE TABLE settings (user_id SERIAL PRIMARY KEY,preferences JSON
);

5.2 JSONB

  • 描述:与 JSON 类似,但以二进制格式存储。
  • 大小:可变长度
  • 使用场景:适合需要频繁查询和修改 JSON 数据的场景。
  • 示例
CREATE TABLE user_profiles (user_id SERIAL PRIMARY KEY,profile_data JSONB
);

6. 数组类型

6.1 数组

  • 描述:用于存储同一类型的多个值。
  • 大小:可变长度
  • 使用场景:适合存储用户的多个电话号码、订单中的多个商品等。
  • 示例
CREATE TABLE contacts (user_id SERIAL PRIMARY KEY,phone_numbers TEXT[]
);

7. 其他数据类型

7.1 UUID

  • 描述:用于存储全球唯一标识符。
  • 大小:16 字节
  • 使用场景:适合存储用户 ID、订单 ID 等,避免 ID 冲突。
  • 示例
CREATE TABLE sessions (session_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),user_id INTEGER
);

7.2 XML

  • 描述:用于存储 XML 格式的数据。
  • 大小:可变长度
  • 使用场景:适合存储配置文件、数据交换等。
  • 示例
CREATE TABLE xml_data (id SERIAL PRIMARY KEY,data XML
);

7.3 BYTEA

  • 描述:用于存储二进制数据。
  • 大小:可变长度
  • 使用场景:适合存储图像、音频、视频文件等。
  • 示例
CREATE TABLE media (media_id SERIAL PRIMARY KEY,file_data BYTEA
);

7.4 TSVECTOR 和 TSQUERY

  • 描述:用于支持全文搜索的文本数据类型。
  • 使用场景:适合存储和查询文本搜索相关的数据。
  • 示例
CREATE TABLE documents (doc_id SERIAL PRIMARY KEY,content TEXT,search_vector TSVECTOR
);

8. 总结

PostgreSQL 提供了丰富的数据类型,以满足不同应用场景的需求。

选择合适的数据类型可以提高数据库的性能和存储效率。

在设计数据库时,应根据实际需求合理选择数据类型,以便于后续的数据操作和维护。

希望以上内容能帮助您更好地理解 PostgreSQL 支持的数据类型及其使用场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/441129.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】文件IO系统[ 库函数 ]封装了[ 系统调用 ] +【区分文件结构体FILE和file与files_srtuct表】(读写接口盘点与介绍)

前言 大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

世邦通信股份有限公司IP网络对讲广播系统RCE

漏洞描述 SPON世邦IP网络广播系统采用的IPAudio™技术, 将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输的双向音频扩声系统。传统广播系统存在的音质不佳,传输距离有限,缺乏互动等问题。该系统设备使用简便&#xff0c…

AAA Mysql与redis的主从复制原理

一 :Mysql主从复制 重要的两个日志文件:bin log 和 relay log bin log:二进制日志(binnary log)以事件形式记录了对MySQL数据库执行更改的所有操作。 relay log:用来保存从节点I/O线程接受的bin log日志…

界面控件DevExpress中文教程 - 如何拓展具有AI功能的文本编辑器(一)

本文重点介绍了DevExpress在近年来最热门领域——人工智能(AI)和自然语言处理(NLP)的改进! NLP是人工智能的一个分支,它允许计算机与人类语言进行交互,这包括以有意义/有用的方式理解、解释、生成和回应文本(和语音)的能力。基于NLP的功能允…

仿RabbitMQ实现消息队列客户端

文章目录 客⼾端模块实现订阅者模块信道管理模块异步⼯作线程实现连接管理模块生产者客户端消费者客户端 客⼾端模块实现 在RabbitMQ中,提供服务的是信道,因此在客⼾端的实现中,弱化了Client客⼾端的概念,也就是说在RabbitMQ中并…

认知战认知作战:激发认知战战术分享热情的秘诀

认知战认知作战:激发认知战战术分享热情的秘诀 认知战认知作战:激发认知战战术分享热情的秘诀 关键词:认知战, 认知作战, 创造独特体验, 融入社交元素, 情感共鸣策略, 分享激励机制, 战略形象塑造, 个性化内容推荐,认知作战,新质生产力,人类…

E. Tree Pruning Codeforces Round 975 (Div. 2)

原题 E. Tree Pruning 解析 本题题意很简单, 思路也很好想到, 假设我们保留第 x 层的树叶, 那么对于深度大于 x 的所有节点都要被剪掉, 而深度小于 x 的节点, 如果没有子节点深度大于等于 x, 那么也要被删掉 在做这道题的时候, 有关于如何找到一个节点它的子节点能通到哪里,…

用Arduino单片机制作一个简单的音乐播放器

Arduino单片机上有多个数字IO针脚,可以输出数字信号,用于驱动发声器件,从而让它发出想要的声音。蜂鸣器是一种常见的发声器件,通电后可以发出声音。因此,单片机可以通过数字输出控制蜂鸣器发出指定的声音。另外&#x…

马丁代尔药物大典数据库

马丁代尔药物大典是一本由Pharmaceutical Press出版的参考书,拥有全球使用的近 6000 种药物和药品,包括超过 125,000 种专有制剂的详细信息。其中还包括近 700 篇疾病治疗评论。 它于 1883 年首次出版,马丁代尔包含全球临床用药信息&#xff…

【qt】QQ仿真项目2

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 一览全局: QQ仿真项目 一.主窗口的创建二.主窗口的ui设计三.初始化状态,等级,app…

<Rust>iced库(0.13.1)学习之部件(三十一):picklist部件的使用及可变style设置

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 注:新版本已更新为0.13 概述 这是本专栏的第三十一篇,主要说明下…

俗人,精气神,歌曲《错的人》

精气神,在人体中,精指构成人体生命活动的各层次的有形元素,常呈固体或液体状态。 哲学前提:世界上的一切,从微观上讲,都是由精微物质构成的,比如基本粒子。 关于有形与无形、与主观关注点相关…

DHCP安装

步骤 1:安装DHCP服务器 在系统上安装DHCP服务。以下是安装命令: # 安装DHCP软件包 yum install dhcp步骤 2:配置DHCP服务器 安装完成后,需要配置DHCP服务器来绑定MAC地址和IP地址。 # 备份原始的DHCP配置文件 cp /etc/dhcp/dh…

迁移学习案例-python代码

大白话 迁移学习就是用不太相同但又有一些联系的A和B数据,训练同一个网络。比如,先用A数据训练一下网络,然后再用B数据训练一下网络,那么就说最后的模型是从A迁移到B的。 迁移学习的具体形式是多种多样的,比如先用A训练…

HCIA综合实验

实验步骤 1.划分网段 内网部分---三个大块 2.先配交换机 左边:3个vlan ,3个access,1个trunk 右边:2个vlan ,2个access,1个trunk 3.再配路由 3.1 r5先配接口ipg/0/0/0 口配子接口 g0/0/0.1-0.3 g0/0/1 …

【YOLOv8实时产品缺陷检测】

YOLOv8应用于产品缺陷检测实例 项目概况项目实现YOLOv8安装及模型训练关键代码展示动态效果展示 项目概况 本项目是应用YOLOv8框架实现训练自定义模型实现单一零件的缺陷检测,软件界面由PyQt5实现。 功能已正式使用,识别效果达到预期。 项目实现 项目…

手机误删照片?试试这5款免费数据恢复神器!

大家好!今天咱们来聊聊一个大家都关心的话题——免费数据恢复工具。不论是误删照片、视频,还是丢失重要文件,数据恢复都是个让人头疼的问题。但好消息是,现在有众多免费的数据恢复工具能帮助我们找回失去的数据。今天我就来为大家…

力扣16~20题

题16&#xff08;中等&#xff09;&#xff1a; 思路&#xff1a; 双指针法&#xff0c;和15题差不多&#xff0c;就是要排除了&#xff0c;如果total<target则排除了更小的&#xff08;left右移&#xff09;&#xff0c;如果total>target则排除了更大的&#xff08;rig…

pycharm 远程ssh时,mujuco提示mujoco.FatalError: gladLoadGL error

在ubuntu系统运行时完全没问题&#xff0c;但是使用pycharm远程ssh登录时就会提示这个。 解决方法&#xff1a; 1. 可以修改环境变量 2. export LD_PRELOAD/usr/lib/x86_64-linux-gnu/libstdc.so.6 参考【Mujuco】WSL2安装Mujoco用于python,遇到FatalError,以及图形驱动架构…