广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >PostgreSQL(五)常用数据类型
  • 369
分享到

PostgreSQL(五)常用数据类型

postgresql数据库java 2023-09-26 15:09:04 369人浏览 泡泡鱼
摘要

目录 1.字符串类型:char(n),varchar(n),text2.数值类型:smallint,int,bigint,decimal,numeric,real,doub

目录

1.字符串类型:char(n),varchar(n),text

数据类型别名说明
character(n)char(n)定长字符串,不足补空格
character varying(n)varchar(n)变长字符串
text变长字符串

2.数值类型:smallint,int,bigint,decimal,numeric,real,double precision,smallserial,serial,bigserial

数据类型别名说明范围
smallintint2有符号2字节整数:-32768 到 +32767
integerintint4有符号4字节整数:-2147483648 到 +2147483647
bigintint8有符号8字节整数:-9223372036854775808 到 +9223372036854775807
decimal(p,s)可选精度的精确数字小数点前 131072 位;小数点后 16383 位
numeric(p,s)可选精度的精确数字小数点前 131072 位;小数点后 16383 位
realfloat4单精度浮点数(4字节)6 位十进制数字精度
double precisionfloat8双精度浮点数(8字节)15 位十进制数字精度
smallserialserial2自增2字节整数1 到 32767
serialserial4自增4字节整数1 到 2147483647
bigserialserial8自增8字节整数1 到 9223372036854775807

3.时间和日期类型:date,time,timestamp,interval

数据类型别名说明
date日历日期(年月日)
time(n) without time zonetime(n)时间(无时区)
time(n) with time zonetimetz时间,包括时区
timestamp(n) without time zonetimestamp(n)日期和时间(无时区)
timestamp(n) with time zonetimestamptz日期和时间,包括时区
interval fields(n)interval(n)时间跨度

4.布尔类型:boolean

数据类型别名说明
booleanbool逻辑布尔值(真/假)

5.枚举类型:enum

枚举类型 是一个包含静态和值的有序集合的数据类型。

  • postgresql 中的枚举类型类似于 C 语言中的 enum类型。

  • 与其他类型不同的是,枚举类型需要使用 CREATE TYPE 命令创建的。

  • 像其他类型一样,一旦创建,枚举类型可以用于表和函数定义。

创建枚举类型:

CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');

使用枚举类型:

CREATE TABLE person (name text,    current_mood mood);

插入数据:

INSERT INTO person VALUES ('Moe', 'happy');

查询数据:

SELECT * FROM person WHERE current_mood = 'happy';

查询结果:

 name | current_mood ------+-------------- Moe  | happy(1 row)

6.复合类型:composite

复合类型,也叫组合类型,将简单类型组合在一起,形成自定义类型。

  • 数据表的列可以定义为组合类型。

创建复合类型,声明类型包含的字段和字段类型:

CREATE TYPE inventory_item AS (     name           text,     supplier_id    integer,     price          numeric)

将表字段声明为组合类型:

CREATE TABLE on_hand (    item    inventory_item,    count   integer);

插入数据:

(ROW 语句用于构建组合类型的值。)

INSERT INTO on_hand VALUES (ROW('fuzzy dice', 42, 1.99), 1000);

查询数据:

SELECT * FROM on_hand;

查询结果:

 item          | count ------------------------+------- ("fuzzy dice",42,1.99) |  1000

补充:创建数据表的同时,会创建同名的 TYPE,如下所示:

-- 建表相当于同时执行了 CREATE TYPE complex AS (r double precision, i double precision);CREATE TABLE complex (r double precision, i double precision);-- 使用复合类型 complexCREATE TABLE my_complex (name text, value complex);-- 插入数据INSERT INTO my_complex (name, value) VALUES ('one', ROW(1.0, 1.0));-- 查询数据SELECT * FROM my_complex;-- 查询结果name | value------+-------one  | (1,1)

查询复合类型,用()包围复合类型的列名,用.指向复合类型的 “域”:

SELECT (value).r FROM my_complext WHERE (value).i = 1;

查询结果:

r---1

7.数组类型:array

Postgresql 允许将字段定义为变长的多维数组。

数组类型可以是任何基本类型或用户定义类型,枚举类型或复合类型。

声明数组:

创建表的时候,我们可以声明数组,方式如下:

CREATE TABLE sal_emp {name            text,pay_by_quarter  integer[],schedule        text[][]};

pay_by_quarter 为一维整型数组,schedule 为二维文本类型数组。

我们也可以使用 “ARRAY” 关键字,如下所示:

CREATE TABLE sal_emp (name            text,    pay_by_quarter  integer ARRAY[4],    schedule        text[][]);

插入值:

插入值使用花括号,元素在 {} 使用逗号隔开:

INSERT INTO sal_emp    VALUES ('Bill',    '{10000, 10000, 10000, 10000}',    '{{"meeting", "lunch"}, {"training", "presentation"}}');

访问数组:

现在我们可以在这个表上运行一些查询。

首先,我们演示如何访问数组的一个元素。这个查询检索在第二季度薪水变化的雇员名:

SELECT name FROM sal_emp WHERE pay_by_quarter[1] <> pay_by_quarter[2];

查询结果:

 name------- Carol(1 row)

数组的下标数字是写在方括弧内的。

修改数组

我们可以对数组的值进行修改:

UPDATE sal_emp SET pay_by_quarter = '{25000,25000,27000,27000}'    WHERE name = 'Carol';

或者使用 ARRAY 构造器语法:

UPDATE sal_emp SET pay_by_quarter = ARRAY[25000,25000,27000,27000]    WHERE name = 'Carol';

数组中检索

要搜索一个数组中的数值,你必须检查该数组的每一个值。

比如:

SELECT * FROM sal_emp WHERE pay_by_quarter[1] = 10000 ORpay_by_quarter[2] = 10000 ORpay_by_quarter[3] = 10000 ORpay_by_quarter[4] = 10000;

另外,你可以用下面的语句找出数组中所有元素值都等于 10000 的行:

SELECT * FROM sal_emp WHERE 10000 = ALL (pay_by_quarter);

或者,可以使用 generate_subscripts 函数。例如:

SELECT * FROM   (SELECT pay_by_quarter,           generate_subscripts(pay_by_quarter, 1) AS s      FROM sal_emp) AS foo WHERE pay_by_quarter[s] = 10000;

8.网络地址类型:cidr,inet,Macaddr,macaddr8

数据类型别名说明
cidrIPv4 或 IPv6 网络地址
inetIPv4 或 IPv6 主机地址
macaddrMAC(媒体访问控制)地址
macaddr8MAC(媒体访问控制)地址(EUI-64格式)

9.几何类型:point,line,lseg,box,path,polyGon,circle

数据类型别名说明
point平面上的几何点
line平面上的无限线
lseg平面上的线段
box平面上的长方形盒子
path平面上的几何路径
polygon平面上的闭合几何路径
circle在平面上画圈

10.JSON类型:json,jsonb

数据类型别名说明
json文本 JSON 数据
jsonb二进制 JSON 数据,分解

11.其他类型

数据类型别名说明
bit(n)定长位串
bit varying(n)varbit(n)变长位串
bytea二进制数据(“字节数组”)
money货币金额
pg_lsnPostgreSQL日志序列号
pg_snapshot用户级事务 ID 快照
tsquery文本搜索查询
tsvector文本搜索文档
txid_snapshot用户级事务 ID 快照(已弃用;请参阅pg_snapshot)
uuid通用唯一标识符
xmlXML 数据

此外,PostgreSQL还支持自定义数据类型和扩展数据类型。自定义数据类型允许用户创建自己的数据类型,而扩展数据类型则是一种插件机制,允许第三方开发人员扩展 PostgreSQL 的数据类型。





参考地址:

postgresql数据类型,https://blog.csdn.net/eryou_979/article/details/118927281

PostgreSQL 数据类型,Https://www.runoob.com/postgresql/postgresql-data-type.html

PostgreSQL数据类型,一篇就够了,https://zhuanlan.zhihu.com/p/105097036?utm_id=0

来源地址:https://blog.csdn.net/qq_33204709/article/details/129256106

--结束END--

本文标题: PostgreSQL(五)常用数据类型

本文链接: https://www.lsjlt.com/news/418641.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PostgreSQL(五)常用数据类型
    目录 1.字符串类型:char(n),varchar(n),text2.数值类型:smallint,int,bigint,decimal,numeric,real,doub...
    99+
    2023-09-26
    postgresql 数据库 java
  • 常用的PostgreSQL数据类型有哪些
    PostgreSQL包含以下常用的数据类型: 数值类型:整数(integer)、小数(decimal)、浮点数(float)、双...
    99+
    2023-10-23
    PostgreSQL
  • Redis的五大数据类型及常用命令
    一、与数据库相关的命令 Redis启动后默认16个数据库,类似数组下表从零开始,初始默认使用零号库 切换数据库命令 select 数据库下标 查看当前数据库的key的数量 Dbsize 清空当前库 flushdb 清空所...
    99+
    2015-10-09
    Redis的五大数据类型及常用命令
  • redis五大数据类型
    1.String string是redis最基本的类型 string类型是二进制安全的,可以包含任何数据,图片或者序列化的对象 string类型是redis最基本的数据类型,一个redis中字符串value最多可以是512M ...
    99+
    2018-08-06
    redis五大数据类型
  • redis的五种数据类型
    redis的五种数据类型redis客户端建立./redis-cli -h 192.168.1.22 -p 6380 --raw1.String应用场景:统计网站访问数量、当前在线人数、微博数、粉丝数等,全局...
    99+
    2022-10-18
  • python--打印数据类型(五)
    # 确定数据类型 a = '324324' b = int(a) print(b) c= float(b) print(c) # 分别打印出a、b、c 三个变量的类型 print(type(a)) print(type(b)) prin...
    99+
    2023-01-31
    数据类型 python
  • postgresql数据库——数据类型总结
    postgresql数据库的 数据类型 postgresql支持多种数据类型,主要有:整数类型、浮点数类型、任意精度数值、日期时间类型、字符串类型、二进制类型、布尔类型和数组类型等。1、整数类型&...
    99+
    2022-10-18
  • Redis五种数据类型详解
    目录什么是 Redis前置知识String介绍常用命令使用场景底层实现SDS 结构体List介绍常用命令使用场景底层实现ZipListQuickListHash介绍常用命令使用场景底层实现DictDict 的 rehas...
    99+
    2023-04-25
    Redis数据类型 Redis数据类型用法
  • Redis五种基本数据类型
    五种基本数据类型 redis无论什么数据类型,在数据库中都是以key-value形式保存,并且所有的key(键)都是字符串,所以讨论基础数据结构都是讨论的value值的数据类型 主要包括常见的5...
    99+
    2023-08-31
    redis 缓存 java
  • MySQL的数据类型有哪五大类
    这篇文章主要介绍MySQL的数据类型有哪五大类,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、MySQL的数据类型主要包括以下五大类:整数类型:BIT、BOOL、TINY INT、...
    99+
    2022-10-18
  • PostgreSQL数据库角色(五)
            使用角色的概念管理数据库访问权限。     角色可以是数据库用户和一组数据库用户...
    99+
    2022-10-18
  • PostgreSQL中json数据类型详解
    目录前言一、PG数据库中jsON的类型1、json和jsonb的区别2、项目开发中的选择3、json数据类型二、PG中json的简单操作1、基础json数据操作2、json和jsonb输出对比3、jsonb包含测试总结前...
    99+
    2023-04-01
    PostgreSQL json类型 json数据类型
  • PostgreSQL 10数据类型与索引
    PostgreSQL 10常用的索引类型有btree,hash,gin,gist,spgist,brin六种,btree和hash是最长用的,基本所有数据类型都支持,以下对gin,gist,spgist,b...
    99+
    2022-10-18
  • PostgreSQL中如何使用jsonb数据类型
    PostgreSQL中如何使用jsonb数据类型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。PostgreSQL 9.4 正在加载一项新...
    99+
    2022-10-18
  • PostgreSQL中json数据类型怎么使用
    这篇文章主要介绍“PostgreSQL中json数据类型怎么使用”,在日常操作中,相信很多人在PostgreSQL中json数据类型怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PostgreSQL中...
    99+
    2023-07-05
  • Redis五大数据类型是什么
    本篇内容介绍了“Redis五大数据类型是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Redis的五大...
    99+
    2022-10-18
  • Python基础知识(五)--数据类型
      #标识符,以字母或下划线开头,不与关键字重复  #不使用系统内置标识符、函数名、异常名  #不使用开头和结尾都是下划线作为自定义标识符名  #以免与系统定义的特殊方法或变量冲突  #当循环不影响实际变量的时候,可以在for..in中使用...
    99+
    2023-01-31
    基础知识 数据类型 Python
  • python之基础篇(五)——数据类型
    防伪码:忘情公子著  前面四篇我们已经讲了许多概念方面的东西,从此篇开始,我们将真正开始学习python。  在上一篇中,我们已经说过python有哪些核心数据类型,接下来我们将一一细说这些数据类型。python数据类型之数字类型  pyt...
    99+
    2023-01-31
    数据类型 基础 python
  • PostgreSQL各数据类型的内置函数
    参考《PostgreSQL实战》 3.1.2 数字类型操作符和数学函数 PostgreSQL 支持数字类型操作符和丰富的数学函数 例如支持加、减、乘、除、模取取余操作符 SELECT 1+2, 2*3, 4/2, 8%3; ...
    99+
    2018-03-07
    PostgreSQL各数据类型的内置函数
  • 学习python的第五天(数据类型)
    一复习 1.查看数据类型 #数值10的位置 print(di(10)) #数值10的样式 print(type(10)) 2.关于变量的一些补充 a=1 b=1 c=1 #a,b,c三种位置判断 print(a is b is c) p...
    99+
    2023-01-31
    数据类型 第五天 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作