PostgreSQL:所有支持的数据类型及建表语句实例

哈喽,大家好,我是木头左!

一、引言

在当今这个数据驱动的时代,数据库已经成为了企业和个人不可或缺的工具。而在众多数据库产品中,PostgreSQL以其强大的功能和高度的可扩展性,受到了越来越多开发者的青睐。那么,PostgreSQL支持哪些数据类型呢?本文将为大家详细解析,并通过建表语句举例说明。让一起揭开PostgreSQL神秘的面纱吧!

二、PostgreSQL支持的数据类型

1. 数值型数据类型

(1) 整型数据类型
(2) 浮点型数据类型

2. 字符型数据类型

  • char:固定长度的字符串,长度范围为1到10个字符
  • varchar:可变长度的字符串,长度范围为1到1048576个字符
  • text:最长可达到1GB的文本数据

3. 日期和时间型数据类型

  • date:日期类型,格式为’YYYY-MM-DD’
  • time:时间类型,格式为’HH:MI:SS’或’HH:MM:SS AM’/‘PM’
  • timestamp:时间戳类型,表示从’1970-01-01 00:00:00+00’到指定时间的秒数(精确到纳秒)
  • interval:间隔类型,表示两个日期或时间之间的时间间隔(以天、小时、分钟、秒为单位)

4. 布尔型数据类型

  • boolean:布尔类型,只有两个值:true和false

5. 复合数据类型

PostgreSQL支持复合数据类型,可以将多个数据类型组合在一起。例如,数组(array)、记录(record)、结构体(struct)等。这些复合数据类型的定义和使用方式较为复杂,需要根据实际需求进行选择和使用。

三、建表语句实例

1. 创建一个用户表(user)

CREATE TABLE user (id SERIAL PRIMARY KEY, -- 主键ID,自增序列name VARCHAR(50) NOT NULL, -- 用户名,长度为50个字符,不能为空email VARCHAR(100) NOT NULL, -- 邮箱,长度为100个字符,不能为空age INTEGER, -- 年龄,整数类型created_at TIMESTAMP NOT NULL DEFAULT current_timestamp, -- 创建时间,默认为当前时间戳updated_at TIMESTAMP NOT NULL DEFAULT current_timestamp ON UPDATE current_timestamp -- 更新时间,默认为当前时间戳,自动更新为当前时间戳
);

2. 创建一个订单表(order)

CREATE TABLE order (id SERIAL PRIMARY KEY, -- 主键ID,自增序列user_id INTEGER REFERENCES user(id), -- 用户ID,外键关联用户表的id字段product_name VARCHAR(100) NOT NULL, -- 产品名称,长度为100个字符,不能为空quantity INTEGER NOT NULL, -- 数量,整数类型,不能为空total_price DECIMAL(10, 2) NOT NULL -- 总价,十进制数类型,保留两位小数,不能为空
);

3. 创建一个商品表(product)和订单详情表(order_detail)

CREATE TABLE product (id SERIAL PRIMARY KEY, -- 主键ID,自增序列name VARCHAR(100) NOT NULL, -- 商品名称,长度为100个字符,不能为空price DECIMAL(10, 2) NOT NULL -- 价格,十进制数类型,保留两位小数,不能为空
);CREATE TABLE order_detail (id SERIAL PRIMARY KEY, -- 主键ID,自增序列order_id INTEGER REFERENCES order(id), -- 订单ID,外键关联订单表的id字段product_id INTEGER REFERENCES product(id), -- 商品ID,外键关联商品表的id字段quantity INTEGER NOT NULL -- 数量,整数类型,不能为空
);

我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!

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

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

相关文章

ZC706+AD9361 运行 open WiFi

先到github上下载img,网页链接如下: https://github.com/open-sdr/openwifi?tabreadme-ov-file 用win32 Disk lmager 把文件写入到SD卡中,这一步操作会把SD卡重新清空,注意保存数据。这个软件我会放在最后的网盘链接中 打开linu…

对接中泰极速行情 | DolphinDB XTP 插件使用教程

XTP 是中泰证券推出的高性能交易平台,专为专业投资者提供高速行情及交易系统,旨在提供优质便捷的市场接入通道。目前支持股票、基金、ETF、债券、期权等多个市场,可满足不同投资者需求。 基于 XTP 官方 C SDK,DolphinDB 开发了 X…

使用hping3网络工具构造TCP/IP数据包和进行DDos攻击

1 概述 hping3是一个强大的命令行工具,用于生成、发送和解析TCP/IP协议的数据包。它是开源的网络安全工具,由Salvatore Sanfilippo开发,主要应用于网络审计、安全测试和故障排查等领域。hping3不仅可以作为普通的网络连通性检测工具&#xf…

【蓝桥杯第十三届省赛B】(部分详解)

九进制转十进制 #include <iostream> #include<math.h> using namespace std; int main() {cout << 2*pow(9,3)0*pow(9,2)2*pow(9,1)2*pow(9,0) << endl;return 0; }顺子日期 #include <iostream> using namespace std; int main() {// 请在此…

ROS2从入门到精通1-2:详解ROS2服务通信机制与自定义服务

目录 0 专栏介绍1 服务通信模型2 服务模型实现(C)3 服务模型实现(Python)4 自定义服务5 话题、服务通信的异同 0 专栏介绍 本专栏旨在通过对ROS2的系统学习&#xff0c;掌握ROS2底层基本分布式原理&#xff0c;并具有机器人建模和应用ROS2进行实际项目的开发和调试的工程能力。…

智慧公厕是什么?智慧公厕的主要功能、特点?

智慧公厕&#xff0c;顾名思义&#xff0c;是指应用了智能科技的公共厕所&#xff0c;旨在提供更加便捷、舒适、智能化的卫生服务。相比传统的公厕&#xff0c;智慧公厕不仅拥有更加智能化的设备&#xff0c;还配备了远程监控与管理系统&#xff0c;以及节能环保技术&#xff0…

如何选择优质的外贸网站建设公司?

在当今数字化时代&#xff0c;外贸行业越来越重视在线渠道的发展&#xff0c;而外贸网站建设作为企业对外联系的重要窗口&#xff0c;扮演着至关重要的角色。选择一家优质的外贸网站建设公司&#xff0c;不仅能帮助企业提升品牌形象&#xff0c;还能有效扩大海外市场。那么&…

微信小程序【从入门到精通】——服务器的数据交互

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

linux C:变量、运算符

linux C 文章目录 变量运算符 一、变量 [存储类型] 数据类型 标识符 值 标识符&#xff1a;由数字、字母、下划线组成的序列&#xff0c;不能以数字开头。 数据类型&#xff1a;基本数据类型构造类型 存储类型&#xff1a;auto static…

Linux(CentOS7)配置系统服务以及开机自启动

目录 前言 两种方式 /etc/systemd/system/ 进入 /etc/systemd/system/ 文件夹 创建 nginx.service 文件 重新加载 systemd 配置文件 ​编辑 配置开机自启 /etc/init.d/ 进入 /etc/init.d/ 文件夹 创建 mysql 文件 编写脚本内容 添加/删除系统服务 配置开机自启 …

【MySQL笔记】SELECT COUNT(*) 的时候,加不加where条件有差别吗?

文章目录 前言实验结论 前言 这部分很多帖子都只在问题里罗列下&#xff0c;好像也没详细解答 其实就是跟InnoDB优先走二级索引的优化有关&#xff0c;前面也提到了”优化的前提是查询语句中不包含where条件和group by条件“ 还不太了解这个优化的朋友可以看上一篇帖子 实验 …

编曲知识13:弦乐技法应用 合成器应用 声场摆位

弦乐技法 技法分类 Sustain(长音)类: Legato、Port、Gliss、Tremolo、Trills Staccato(短音)类: Staccato、Pizzicato、Spiccato Legato:连奏 Port:滑音 Gliss:慢速滑音 Tremolo:震音 Trills:颤音 Staccato:顿弓 Pizzicato:拨奏 Spiccato:跳弓 长音类技法 主…

从0到1:兼职招聘小程序开发笔记(一)

可行性分析 兼职招聘小程序&#xff1a;为雇主和求职者提供便利的平台&#xff0c;旨在帮助雇主招聘兼职员工&#xff0c;并让求职者寻找合适的兼职工作。提供简单、快捷的方式来匹配兼职岗位和候选人&#xff0c;节省了招聘和求职的时间和精力。其主要功能模块包括&#xff1…

C练习题(1)

变种水仙花&#xff08;来自牛课网&#xff09; 题目 变种水仙花数 - Lily Number&#xff1a;把任意的数字&#xff0c;从中间拆分成两个数字&#xff0c;比如1461 可以拆分成&#xff08;1和461&#xff09;,&#xff08;14和61&#xff09;,&#xff08;146和1),如果所有拆…

力扣刷题Days29-128.最长连续数列(js)

目录 1&#xff0c;题目 2&#xff0c;代码 2.1自己实现 2.2哈希表 3&#xff0c;学习与收获 枚举思想&#xff1a; 遍历的核心逻辑 碎碎念 本题 先是想到利用数组排序&#xff0c;从而简化遍历处理逻辑&#xff0c;再在提交错误提醒的情况下&#xff0c;考虑到数组中存…

基于FreeRTOS系统的STM32简易遥控器设计

项目说明 该项目是一个基于FreeRTOS系统的Stm32遥控器设计。使用该项目主要是自己学习FreeRTOS的使用&#xff0c;以及模块化编程的思想。这个项目应该长期会有更新。 项目开源 github:https://github.com/snqx-lqh/Stm32RemoteControl gitee:https://gitee.com/snqx-lqh/S…

Github 2024-04-01 开源项目月报 Top20

根据Github Trendings的统计,本月(2024-04-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目9TypeScript项目2非开发语言项目2Jupyter Notebook项目2HTML项目1CSS项目1C#项目1Shell项目1Lua项目1JavaScript项目1C项目1Java项目…

了解 LoadRunner 性能测试软件及其基础使用

目录 一、了解LoadRunner 1、什么是Loadrunner&#xff1f; 2、Loadrunner包括什么组件&#xff1f; &#xff08;1&#xff09;前台组件 &#xff08;2&#xff09;后台组件 二、LoadRunner三大组件 1、VuGen&#xff08;虚拟用户脚本生成器&#xff09; &#xff08;…

详细分析Mysql中的STR_TO_DATE基本知识(全)

目录 前言1. 基本知识2. Demo3. 实战Demo4. Sql彩蛋4.1 LPAD函数4.2 SUBSTRING_INDEX函数 5. Java彩蛋 前言 对于该知识点&#xff0c;主要因为数据库类型为String&#xff08;类似2024-03-26&#xff09;&#xff0c;放置于后端操作后&#xff0c;需要自定义比较&#xff0c;…

【QT+QGIS跨平台编译】054:【exiv2lib_int+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、exiv2lib_int介绍二、文件下载三、文件分析四、pro文件五、编译实践一、exiv2lib_int介绍 exiv2lib_int是 exiv2 这个开源的图像元数据库中的一个组件。 Exiv2是一个开源的C++库,用于读取、编辑和写入图片和视频文件的元数据。它可以处理各种类…