【PostgreSQL】从零开始:(十六)数据类型-数值类型

数值类型定义

数值类型是一种用于存储数字的数据类型。在编程语言中,数值类型通常包括整数类型和浮点数类型。

整数类型用于存储整数值,包括正整数、负整数和零。在不同的编程语言中,整数类型可能有不同的大小限制,例如8位、16位、32位或64位。

浮点数类型用于存储带有小数部分的数字,也称为实数。浮点数类型可以表示很大或很小的数字,并具有一定的精度。浮点数类型通常分为单精度和双精度,分别表示32位和64位的浮点数。

数值类型可以进行各种数学运算,如加法、减法、乘法和除法。数值类型还可以用于存储和处理数值数据,如计算、统计和科学计算等领域。

PostgreSQL数值类型又可以分为以下几类

  • 整数类型
  • 任意精度数
  • 浮点类型
  • 串行类型

整数类型

整数类型表:

名字存储大小描述范围
smallint2 字节小范围整数 -32768 至 +32767
integer4 字节整数的典型选择-2147483648 至 +2147483647
bigint8 字节大范围整数-9223372036854775808 至 +9223372036854775807
smallserial2 字节小的自动递增整数1 到 32767
serial4 字节自动递增整数 1 至 2147483647
bigserial8 字节大自动递增整数1 至 9223372036854775807

任意精度数

任意精度数类型表:

名字存储大小描述范围
decimal变量用户指定的精度、精确度小数点前最多 131072 位;小数点后最多 16383 位数字
numeric变量用户指定的精度、精确度小数点前最多 131072 位;小数点后最多 16383 位数字

如果要存储的值的小数位数大于该列声明的小数位数,则系统会将该值四舍五入到指定的小数位数

ci_database_test02=> create table num_test (numeric1 numeric(3,1),numeric2 numeric(2,-3),numeric3 numeric(3,5));
CREATE TABLE
ci_database_test02=> insert into num_test(numeric1,numeric2,numeric3) values (88.888,66666.9999,-0.008888);
INSERT 0 1
ci_database_test02=> select * from num_test;numeric1 | numeric2 | numeric3 
----------+----------+----------88.9 |    67000 | -0.00889
(1 row)ci_database_test02=> 

decimal与numeric的区别

在SQL中,DECIMAL和NUMERIC都是用于存储精确数值的数据类型。它们的主要区别在于存储和计算的精度。

DECIMAL是用于存储固定精度和小数位数的数值。它可以存储的总位数和小数位数在创建列时被指定。例如,DECIMAL(10, 2)可以存储最多10位数,其中2位用于小数部分。

NUMERIC也是用于存储固定精度和小数位数的数值,但它可以存储的位数范围更大。例如,NUMERIC(10, 2)可以存储最多10位数,其中2位用于小数部分。

另一个区别是在计算时的行为。当两个DECIMAL或NUMERIC值进行计算时,计算结果的精度和小数位数将根据运算符和操作数的精度规则进行自动调整。在DECIMAL类型中,结果的精度和小数位数将始终与操作数中最大的精度和小数位数一致。而在NUMERIC类型中,结果的精度和小数位数将根据运算符和操作数之间的关系进行适当的调整,以确保结果的精度不超过NUMERIC列的定义。

综上所述,DECIMAL和NUMERIC之间的主要区别在于存储和计算的精度范围。如果需要更大的精度范围,可以选择NUMERIC类型。否则,选择DECIMAL类型即可。

浮点类型

浮点类型表:

名字存储大小描述范围
real4 字节精度可变,不精确精度为6位十进制数字
double precision8 字节精度可变,不精确15 位十进制精度

real 类型用于表示单精度浮点数。它是一个 4 字节的数据类型,可以存储大约 6 位小数的精度范围。
real 数据类型可以用来存储小数、分数、比率等具有小数部分的数值。例如,一个 real 值可以是 3.14159 或 0.5 等。

CREATE TABLE measurements (id SERIAL PRIMARY KEY,value real
);INSERT INTO measurements (value) VALUES (3.14159);SELECT * FROM measurements;

double precision类型是一种双精度浮点数类型,它存储双精度浮点数,可以表示大约15位小数。
double precision类型可以存储很大范围的数值,具有较高的精度。它占用8个字节(64位)的存储空间。

CREATE TABLE products (id SERIAL PRIMARY KEY,name VARCHAR(100),price DOUBLE PRECISION
);
INSERT INTO products (name, price) VALUES ('Product A', 9.99);
INSERT INTO products (name, price) VALUES ('Product B', 19.99);

串行类型

串行类型是一种序列自增的数据类型,它可以在插入数据时自动生成一个唯一的数值。通过使用串行类型,可以简化在数据库中创建自增主键的过程。

示例1:

CREATE SEQUENCE my_sequence START 1 INCREMENT 1;
ALTER TABLE my_table ALTER COLUMN my_column SET DEFAULT nextval('my_sequence');

示例2:

CREATE TABLE users (id serial PRIMARY KEY,name VARCHAR(100),email VARCHAR(100)
);
INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');
id | name     | email
---+----------+-------------------
1  | John Doe | john@example.com

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

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

相关文章

【AI图集】猫狗的自动化合成图集

猫是一种哺乳动物,通常被人们作为宠物饲养。它们有柔软的毛发,灵活的身体和尖锐的爪子。猫是肉食性动物,主要以肉类为食,但也可以吃一些蔬菜和水果。猫通常在夜间活动,因此它们需要足够的玩具和活动空间来保持健康和快…

k8s pod常用资源清单

K8S 的资源清单 参数名类型字段说明apiVersionStringK8S APl 的版本,可以用 kubectl api versions 命令查询kindStringyam 文件定义的资源类型和角色metadataObject元数据对象,下面是它的属性metadata.nameString元数据对象的名字,比如 pod …

Android Uri scheme协议file转content

一、Uri的介绍 在Android开发中,Uri(Uniform Resource Identifier)是用于标识和访问各种资源的核心概念。这些资源可能包括文件、网络URL、数据库记录等。在处理这些资源时,我们可能会遇到不同的Uri协议,如file和conte…

[PTA]矩阵列平移

给定一个 nn 的整数矩阵。对任一给定的正整数 k<n&#xff0c;我们将矩阵的偶数列的元素整体向下依次平移 1、……、k、1、……、k、…… 个位置&#xff0c;平移空出的位置用整数 x 补。你需要计算出结果矩阵的每一行元素的和。 输入格式&#xff1a; 输入第一行给出 3 个…

Another git process seems to be running in this repository, e.g. an editor o

操作任何git命令&#xff0c;都提示该内容。 Another git process semms to be running in this repository, e.g. an editor opened by ‘git commit’. Please make sure all processes are terminated then try again. If it still fails, a git process remove the file m…

Flink系列之:Print SQL连接器

Flink系列之&#xff1a;Print SQL连接器 一、Print SQL连接器二、创建一张基于Print的表三、连接器参数 一、Print SQL连接器 Print 连接器允许将每一行写入标准输出流或者标准错误流。 设计目的&#xff1a; 简单的流作业测试。对生产调试带来极大便利。 四种 format 选项…

如何保证架构的质量

1. 如何保证架构的质量: ①. 稳定性、健壮性(1). 系统稳定性: ①. 定义:a. 当一个实际的系统处于一个平衡的状态时,如果受到外来作用的影响时,系统经过一个过渡过程仍然能够回到原来的平衡状态.b. 可以说这个系统是稳定的,否则系统不稳定c. 如一根绳子绑着小球,处于垂直状态,…

Golang(壹)

爱情不需要华丽的言语&#xff0c;只需要默默的行动。 简介 应用领域&#xff1a; 下载vscode 使用vscode Go下载 - Go语言中文网 - Golang中文社区 下载sdk 解压到文件中&#xff0c;打开sdk解压文件 穿插dos操作系统知识点&#xff1a; 测试go语言环境 看到vscode 的目录结…

SpringIOC之AnnotatedElementKey

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

Unity学习笔记(零基础到就业)|Chapter01:C#入门

Unity学习笔记&#xff08;零基础到就业&#xff09;&#xff5c;Chapter01:C#入门 前言一、控制台输入输出语句二、初识变量1.一些好用的tips2.变量声明的固定写法3.变量类型 三、变量的本质1.变量的存储空间2.变量的本质&#xff1a;2进制 四、变量的命名规范1.必须遵守的规则…

centos开机自启动实战小案例

1.编写一个我们需要做事的脚本 #!/bin/bash # 打印 "Hello" echo "Hello,Mr.Phor" # 为了更好的能看到效果 我们把这段文本放置到一个文件中 如果重启能够看到 /a.txt文件 我们实验成功 echo "hahahahahahahaha" > /a.txt #每次开机 执行…

AUTOSAR从入门到精通-面向服务的中间件SOME/IP(七)

目录 前言 原理 SOME/IP-TP SOME/IP 传输层协议 SOME/IP-SD服务发现(Service Discovery)

《空气质量持续改善行动计划》发布,汉威科技助力蓝天保卫战

近日&#xff0c;国务院印发《空气质量持续改善行动计划》&#xff0c;这是继2013年“大气十条”之后的第三个国家层面的保卫蓝天行动计划。 计划要求协同推进降碳、减污、扩绿、增长&#xff0c;以改善空气质量为核心&#xff0c;以减少重污染天气和解决人民群众身边的突出大…

保护您的Android应用程序:Android应用程序安全一览

保护您的Android应用程序&#xff1a;Android应用程序安全一览 我们都知道Android是为所有人设计的——开放、面向开发者、面向用户&#xff0c;这种开放性为今天和明天的移动技术提供了很多便利。然而&#xff0c;开放性也带来了需要妥善处理的安全风险。 安全是我们所有人都…

WPF仿网易云搭建笔记(7):HandyControl重构

文章目录 专栏和Gitee仓库前言相关文章 新建项目项目环境项目结构 代码结果结尾 专栏和Gitee仓库 WPF仿网易云 Gitee仓库 WPF仿网易云 CSDN博客专栏 前言 最近我发现Material Design UI的功能比较简单&#xff0c;想实现一些比较简单的功能&#xff0c;比如消息提示&#xff0…

2018年第七届数学建模国际赛小美赛C题共享单车对城市交通的影响解题全过程文档及程序

2018年第七届数学建模国际赛小美赛 C题 共享单车对城市交通的影响 原题再现&#xff1a; 共享自行车改变了许多城市的交通状况&#xff0c;许多大城市引入共享自行车来解决交通问题。我们需要定量评估共享自行车对城市交通的影响&#xff0c;以及相关的经济、社会和环境影响。…

MATLAB 平面拟合并旋转到水平面 (43)

MATLAB 平面拟合并旋转到水平面 (43) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 点云拟合平面并置平的算法是指对给定的点云数据进行平面拟合,并将拟合得到的平面调整至水平位置的过程。这个算法通常用于处理三维空间中的点云数据,例如在计算机视觉、三维重建和机…

vue3虚拟dom和diff算法实现(模仿源码)

手动实现 Vue 3 的虚拟 DOM 和 Diff 算法 Vue 3 引入了许多新的改进和特性&#xff0c;其中之一是对虚拟 DOM (Virtual DOM) 和 Diff 算法的优化。在这篇文章中&#xff0c;我们将通过一个简单的示例来手动实现 Vue 3 风格的虚拟 DOM 和 Diff 算法。 虚拟 DOM 的基础 虚拟 D…

node.js mongoose中间件(middleware)

目录 简介 定义模型 注册中间件 创建doc实例&#xff0c;并进行增删改查 方法名和注册的中间件名相匹配 执行结果 分析 错误处理中间件 手动抛出错误 注意点 简介 在mongoose中&#xff0c;中间件是一种允许在执行数据库操作前&#xff08;pre&#xff09;或后&…

算法设计与分析2023秋-头歌实验-实验七 动态规划

文章目录 第1关&#xff1a;数塔问题任务描述相关知识编程要求解题思路测试说明参考答案 第2关&#xff1a;最长公共子序列任务描述相关知识编程要求解题思路&#xff1a;测试说明参考答案 第3关&#xff1a;求序列-2 11 -4 13 -5 -2的最大子段和任务描述相关知识编程要求解题思…