当前位置: 首页 > news >正文

【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 支持的数据类型及其使用场景。

相关文章:

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

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

野火STM32F103VET6指南者开发板入门笔记:【1】点亮RGB

硬件介绍 提示:本文是基于野火STM32F103指南者开发板所写例程,其他开发板请自行移植到自己的工程项目当中即可。 RGB-LEDPin引脚:低电平-点亮,高电平-熄灭REDPB5GREENPB0BLUEPB1 文章目录 硬件介绍软件介绍:结构体方式…...

数据工程师岗位常见面试问题-3(附回答)

数据工程师已成为科技行业最重要的角色之一,是组织构建数据基础设施的骨干。随着企业越来越依赖数据驱动的决策,对成熟数据工程师的需求会不断上升。如果您正在准备数据工程师面试,那么应该掌握常见的数据工程师面试问题:包括工作…...

强大的JVM监控工具

介绍 在生产环境中,经常会遇到各种各样奇葩的性能问题,所以掌握最基本的JVM命令行监控工具还是很有必要的 名称主要作用jps查看正在运行的Java进程jstack打印线程快照jmap导出堆内存映像文件jstat查看jvm统计信息jinfo实时查看和修改jvm配置参数jhat用…...

python 实现点的多项式算法

点的多项式算法介绍 点的多项式算法通常指的是通过一组点(即数据点,通常包括自变量和因变量的值)来拟合一个多项式函数的方法。这种方法在数值分析、统计学、机器学习等领域中非常常见。下面是一些常见的多项式拟合算法: 1. 最小…...

Pikachu-暴力破解-验证码绕过(on client)

访问页面, 从burpsuite 上看到返回的源代码; 验证码生成时通过 createCode 方法生成,在前端页面生成; 同时也是在前端做的校验; 直接验证;F12 -- 网络,随便输入个账号、密码、验证码&#xff0…...

【Spring】Bean 的生命周期:从实例化到销毁

实例化阶段&#xff1a; Bean的实例化是通过反射创建的。Spring根据Component、Bean或者XML中的<bean>元素配置&#xff0c;来确定要创建的Bean。 属性赋值阶段&#xff1a; 实例化完成后&#xff0c;Spring会进行依赖注入。包括将属性值注入到Bean的字段中&#xff0c;…...

Ubuntu 安装RUST

官方给的是这样如下脚本 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh 太慢了 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh -x 执行这个脚本后会给出对应的下载链接 如下图 我直接给出来 大多数应该都是这个 https://static.rust-…...

Android Compose的基本使用

前言: Compose这个东西呢,好处我没发现,坏处就是学习成本和低版本兼容. 不过,看在官方力推的份儿上,有空就学一下吧. 当初的kotlin,很多人说鸡肋(包括我)!现在不也咔咔用纯kotlin做项目吗?哈哈哈哈. 未来的事情,谁说得清呢? 首先创建一个专用的Compose项目 对没错!看到E…...

计算机网络:计算机网络体系结构 —— 专用术语总结

文章目录 专用术语实体协议服务服务访问点 SAP 服务原语 SP 协议数据单元 PDU服务数据单元 SDU 专用术语 实体 实体是指任何可以发送或接收信息的硬件或软件进程 对等实体是指通信双方处于相同层次中的实体&#xff0c;如通信双方应用层的浏览器进程和 Web 服务器进程。 协…...

Rust的前端Tauri编程-基于JS框架的初步探索

上次的项目做完后&#xff0c;有一项遗憾&#xff0c;没有返回结果&#xff0c;而结果是一个html表格&#xff0c;我想用html直接在窗口显示&#xff0c;这时发现R里面包括slint没有很直接的方法&#xff0c;直接弹出浏览器有点太简单没有挑战。这是就被推送了他的竞争对手&…...

【Flume Kafaka实战】Using Kafka with Flume

一 目标 在Cloudera Manager中创建两个Flume的Agent&#xff0c;Agent1从local file中获取内容&#xff0c;写入到kafka的队列中。Agent2以Agent1的sink作为source&#xff0c;将数据从kafka中读取出来&#xff0c;写入到HDFS中。 二 实战 2.1 Kafka Sink 第一步&#xff0…...

5G NR物理信号

文章目录 NR 物理信号与LTE的区别上行参考信号DMRS (UL)SRSPT-RS(UL) 下行参考信号DMRS(DL)PT-RS(DL)CSI-RSPSSSSS NR 物理信号与LTE的区别 用SSS、CSI-RS和DMRS 取代了CRS信号。下行业务信道采用TM1波束赋形传输模式。基于SSB 或者CSI-RS进行RSRP和SINR测量。基于DMRS 进行共…...

Pikachu-Cross-Site Scripting-存储型xss

存储型xss &#xff0c;随便输入点内容&#xff0c;都能保存下来&#xff1b;刷新后也不会丢失&#xff1b;输入特殊字符&#xff0c;也能原样返回&#xff1b; 查看代码&#xff0c;也可以看到输出结果直接原路返回&#xff0c;不做处理 构造payload <script>alert(1)…...

媲美GPT-4o mini的小模型,Meta Llama 3.2模型全面解读!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…...

【leetcode】 45.跳跃游戏 ||

如果我们「贪心」地进行正向查找&#xff0c;每次找到可到达的最远位置&#xff0c;就可以在线性时间内得到最少的跳跃次数。 例如&#xff0c;对于数组 [2,3,1,2,4,2,3]&#xff0c;初始位置是下标 0&#xff0c;从下标 0 出发&#xff0c;最远可到达下标 2。下标 0 可到达的…...

coco(json)、yolo(txt)、voc(xml)标注格式的相互转换

一般都是用labeleme进行标注 标注格式都是json 然后根据不同的格式进行数据标注转换&#xff1a; 1.逐个json转xml: 当我们在使用数据集训练计算机视觉模型时&#xff0c;常常会遇到有的数据集只给了单个的json annotation文件&#xff0c;而模型所需要的annotation是基于每…...

以太网交换安全:端口安全

一、端口安全介绍 端口安全是一种网络设备防护措施&#xff0c;通过将接口学习到的动态MAC地址转换为安全MAC地址&#xff08;包括安全动态MAC和Sticky MAC&#xff09;&#xff0c;阻止除安全MAC和静态MAC之外的主机通过本接口和设备通信&#xff0c;从而增强设备的安全性。以…...

[题解] Codeforces Round 976 (Div. 2) A ~ E

A. Find Minimum Operations 签到. void solve() {int n, k;cin >> n >> k;if (k 1) {cout << n << endl;return;}int ans 0;while (n) {ans n % k;n / k;}cout << ans << endl; }B. Brightness Begins 打表发现, 翻转完后的序列为: 0…...

【零基础入门产品经理】学习准备篇 | 需要学一些什么呢?

前言&#xff1a; 零实习转行产品经理经验分享01-学习准备篇_哔哩哔哩_bilibili 该篇内容主要是对bilibili这个视频的观后笔记~谢谢美丽滴up主友情分享。 全文摘要&#xff1a;如何在0实习且没有任何产品相关经验下&#xff0c;如何上岸产品经理~ 目录 一、想清楚为什么…...

手机号查QQ号:解密腾讯通信协议的Python实战工具

手机号查QQ号&#xff1a;解密腾讯通信协议的Python实战工具 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾经遇到过这样的情况&#xff1a;手头有一个手机号&#xff0c;想知道它是否关联了QQ账号&#xff1f;或者作为开发…...

从HC-SR04老用户视角,实测2020新版:盲区更小、功耗更低,但这两点不注意容易翻车

HC-SR04新版深度评测&#xff1a;老用户必看的5个升级细节与3个隐藏陷阱 第一次拿到2020版HC-SR04时&#xff0c;我差点以为发错了货——外观几乎和老版本一模一样&#xff0c;连螺丝孔位都分毫不差。但当我用示波器捕捉到仅2.1mA的工作电流时&#xff0c;才确信这确实是用上了…...

实战指南:为spring boot项目快速配置最优jdk环境,助力应用高效部署

最近在准备一个Spring Boot项目时&#xff0c;发现JDK环境配置这个看似简单的环节其实藏着不少学问。特别是当项目需要兼顾开发效率和生产环境稳定性时&#xff0c;合理的JDK配置方案就显得尤为重要。今天就来分享下我的实战经验&#xff0c;以及如何利用工具快速搞定这些配置。…...

图片去水印 API 接口实战:网站如何实现自动去水印(Python / PHP / C#)

在做网站或后台系统时&#xff0c;一个很常见但容易被忽视的问题是&#xff1a; &#x1f449; 用户上传的图片自带水印 &#x1f449; 平台展示希望统一成干净版本 &#x1f449; 还要支持批量、自动化处理 &#x1f449; 最好能无缝接入现有系统 如果你正在找&#xff1a; …...

Windows 10/11下用StyleGAN2-ADA-PyTorch训练自己的数据集(避坑Visual Studio编译错误)

Windows平台StyleGAN2-ADA-PyTorch环境配置全指南&#xff1a;从编译错误到自动化训练 在Windows 10/11上配置StyleGAN2-ADA-PyTorch环境时&#xff0c;许多开发者都会遇到Visual Studio编译工具链缺失的经典问题。不同于Linux系统的开箱即用&#xff0c;Windows环境需要额外处…...

开发者的第二曲线:2026年最赚钱的5个技术副业

在技术范式加速重构的2026年&#xff0c;软件质量保障的重要性已从“成本中心”跃升为“价值中心”。对于敏锐的软件测试从业者而言&#xff0c;这不仅是职业的深化&#xff0c;更是将专业壁垒转化为财富增长的绝佳契机。传统的“接私活”模式正在被更具复利效应和杠杆价值的“…...

成都美容院灯箱技术白皮书:2024年行业趋势与落地实践指南

美容院灯箱&#xff1a;不只是照明&#xff0c;更是品牌灵魂的窗口走进任何一条成都的商业街&#xff0c;你很难忽视那些光彩夺目的美容院灯箱。它们不仅仅是照明工具&#xff0c;更是品牌形象的第一道防线。有趣的是&#xff0c;很多人会误以为灯箱只是‘打个光’那么简单&…...

CCF和中国科协对NeurIPS更正投稿政策做出回应

点击下方卡片&#xff0c;关注“CVer”公众号AI/CV重磅干货&#xff0c;第一时间送达点击进入—>【顶会/顶刊】投稿交流群添加微信号&#xff1a;CVer2233&#xff0c;小助手拉你进群&#xff01;扫描下方二维码&#xff0c;加入CVer学术星球&#xff01;可以获得最新顶会/顶…...

Layerdivider:零基础上手图像分层工具的完整指南

Layerdivider&#xff1a;零基础上手图像分层工具的完整指南 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 为什么自动分层总是不尽如人意&#xff1f;设…...

RMBG-2.0企业级应用:集成至Shopify后台实现订单图自动去背流水线

RMBG-2.0企业级应用&#xff1a;集成至Shopify后台实现订单图自动去背流水线 想象一下&#xff0c;你是一家Shopify店铺的运营负责人。每天&#xff0c;团队需要处理上百张来自不同供应商的商品图片&#xff0c;手动抠图、换背景&#xff0c;只为让商品主图在网站上看起来统一…...