Tipos de dados de intervalo embutidos do PostGresql

Tipos de dados de intervalo embutidos do PostGresql
A série seqüencial de dados é chamada de dados de intervalo. O banco de dados PostGresql suporta uma variedade de tipos de dados, que é um recurso exclusivo deste banco de dados. O intervalo e os tipos de dados de várias faixas são introduzidos na versão PostGresql 14. Este tipo de dados armazena os valores inferiores e superiores. O número inteiro ou o valor de data e hora podem ser armazenados no campo desse tipo de dados. Quando é necessário para armazenar muitos valores em um único valor de intervalo, é melhor usar o tipo de dados de intervalo. A gama interna de tipos de dados suportados pelo PostgreSQL foi mencionada abaixo.
Tipos de alcance Propósito
Int4Range Ele define a gama de números inteiros.
Int4Multirange Ele define os números inteiros de vários alcance.
Int8Range Ele define o alcance de grandes números inteiros.
Int8Multirange Ele define os grandes números de vários alcance.
NumRange Ele define o intervalo de números.
Nummultirange Ele define o número de números de várias faixas.
tsRange Ele define o intervalo de registro de data e hora sem o fuso horário.
Tsmultirange Ele define a várias faixas de data e hora sem o fuso horário.
tstzRange Ele define o intervalo de registro de data e hora com o fuso horário.
tstzmultirange Ele define a várias faixas de registro de data e hora com o fuso horário.
daterange Ele define o intervalo de data.
DataMultirange Define a data de várias faixas.

Pré-requisitos:

Você deve instalar a versão mais recente dos pacotes PostGresql no sistema operacional Linux antes de executar as instruções SQL mostradas neste tutorial. Execute os seguintes comandos para instalar e iniciar o PostgreSQL:

$ sudo apt-get -y install postgresql postgresql-contra
$ sudo SystemCtl Iniciar PostgreSQL.serviço

Execute o seguinte comando para fazer login no PostgreSQL com permissão de raiz:

$ sudo -u postgres psql

Exemplos de dados de dados da faixa PostGresql:

Antes de criar qualquer tabela com o tipo de dados booleano, você deve criar um banco de dados PostGresql. Então, execute o seguinte comando para criar um banco de dados nomeado 'testdb':

# Criar banco de dados TestDB;

A saída a seguir será exibida após a criação do banco de dados:

A. Uso do tipo de dados de intervalo inteiro
Crie uma tabela chamada 'tbl_intrange' no banco de dados atual com dois campos. Aqui, o primeiro nome de campo é eu ia qual é a chave primária da tabela. O valor desse campo será incrementado automaticamente quando um novo registro será inserido. O segundo nome de campo é int_range e o tipo de dados é Int4Range.

# Criar tabela tbl_intrange (
Id Id Serial Primary Key,
int_Range Int4Range);

A saída a seguir aparecerá se a tabela for criada com sucesso.

Execute a seguinte consulta de inserção para inserir três registros no Tbl_IntRange mesa:

# Inserir em tbl_intrange (int_range)
Valores ('[1, 10)' :: Int4Range),
('[1, 20)' :: Int4Range),
('[1, 30)' :: Int4Range);

A saída a seguir aparecerá após a execução da consulta acima:

Execute a seguinte consulta selecionada para ler todos os registros do tbl_intrange:

# Selecione * de tbl_intrange;

Execute a seguinte consulta selecionada para ler esses registros do Tbl_IntRange ONDE int_range é maior que 12:

# Selecione * de tbl_intrange onde int_Range @> 12;

A saída a seguir aparecerá após a execução das consultas selecionadas acima:

B. Uso do tipo de dados de intervalo numérico
Crie uma tabela chamada 'Tbl_numRange' no banco de dados atual com dois campos. Aqui, o primeiro nome de campo é eu ia qual é a chave primária da tabela. O valor desse campo será incrementado automaticamente quando um novo registro será inserido. O segundo nome de campo é NUM_RANGE e o tipo de dados é NumRange.

# Criar tabela Tbl_numRange (
Id Id Serial Primary Key,
num_Range numRange);

Execute a seguinte consulta de inserção para inserir três registros no tbl_numRange mesa:

# Inserir em tbl_numRange (num_range)
Valores (NumRange (20, 40)),
(NumRange (100, 500));

A saída a seguir aparecerá após a execução das consultas acima:

Execute a seguinte consulta selecionada que lerá todos os registros da TBL_numRange:

# Selecione * de tbl_numRange;

A saída a seguir aparecerá após a execução da consulta selecionada acima:

C. Uso do tipo de dados da faixa de registro de data e hora
Crie uma tabela chamada 'tbl_timerange' no banco de dados atual com dois campos. Aqui, o primeiro nome de campo é eu ia qual é a chave primária da tabela. O valor desse campo será incrementado automaticamente quando um novo registro será inserido. O segundo nome de campo é TimeRange e o tipo de dados é TsRange.

# Criar tabela tbl_timerange (
Id Id Serial Primary Key,
timeRange tsRange);

Execute a seguinte consulta de inserção para inserir três registros no tbl_timerange mesa:

# Inserir em tbl_timerange (timerange)
Valores ('[2022-05-20 10:20:30, 2022-05-21 10:20:15)'),
('[2022-09-13 9:30:15, 2022-09-14 11:10:20)');

A saída a seguir aparecerá após a execução das consultas acima:

Execute a seguinte consulta selecionada que lerá todos os registros do tbl_timerange:

# Selecione * de tbl_timerange;

A saída a seguir aparecerá após a execução da consulta selecionada acima:

D. Uso do tipo de dados de intervalo
Crie uma tabela chamada 'tbl_daterange' no banco de dados atual com dois campos. Aqui, o primeiro nome de campo é eu ia qual é a chave primária da tabela. O valor desse campo será incrementado automaticamente quando um novo registro será inserido. O segundo nome de campo é date_Range e o tipo de dados é Daterange.

# Criar tabela Tbl_daterange (
Id Id Serial Primary Key,
date_Range Daterange);

Execute a seguinte consulta de inserção para inserir três registros no tbl_daterange mesa:

# Inserir em tbl_daterange (date_range)
Valores ('[2022-05-20, 2022-05-21)'),
('[2022-07-10, 2022-07-15)'),
('[2022-12-01, 2022-12-16)');

A saída a seguir aparecerá após a execução das consultas acima:

Execute a seguinte consulta selecionada que lerá todos os registros do tbl_daterange:

# Selecione * de tbl_daterange;

Execute a seguinte consulta selecionada que lerá esses registros do tbl_daterange onde o valor de data de o date_range O campo é maior que '2002-07-13'.

# Selecione *de tbl_daterange onde date_range @> '2022-07-13' :: date;

A saída a seguir aparecerá após a execução das consultas acima:

Conclusão:

Diferentes usos dos tipos de dados de intervalo de PostGresql foram mostrados neste tutorial usando várias tabelas. Os novos usuários do PostGresql poderão usar a gama de tipos de dados em suas tabelas depois de ler este tutorial.