もっと詳しく

連続する一連のデータは、範囲データと呼ばれます。 PostgreSQLデータベースは、このデータベースの独自の機能であるさまざまなデータ型をサポートしています。 範囲およびマルチ範囲のデータ型は、PostgreSQLバージョン14で導入されました。このデータ型は、下限値と上限値を格納します。 整数またはタイムスタンプ値は、このデータ型のフィールドに格納できます。 1つの範囲値に多くの値を格納する必要がある場合は、範囲データ型を使用することをお勧めします。 PostgreSQLでサポートされている組み込みのデータ型の範囲を以下に示します。

範囲タイプ 目的
int4range 整数の範囲を定義します。
int4multirange マルチレンジ整数を定義します。
int8range 大きな整数の範囲を定義します。
int8multirange マルチレンジの大きな整数を定義します。
numrange 数値の範囲を定義します。
nummultirange 数値の複数の範囲を定義します。
tsrange タイムゾーンなしのタイムスタンプの範囲を定義します。
tsmultirange タイムゾーンなしのタイムスタンプのマルチレンジを定義します。
tstzrange タイムスタンプの範囲をタイムゾーンで定義します。
tstzmultirange タイムゾーンを使用してタイムスタンプのマルチレンジを定義します。
日付範囲 日付の範囲を定義します。
datemultirange 日付の複数の範囲を定義します。

前提条件:

このチュートリアルに示されているSQLステートメントを実行する前に、最新バージョンのPostgreSQLパッケージをLinuxオペレーティングシステムにインストールする必要があります。 次のコマンドを実行して、PostgreSQLをインストールして起動します。

$ sudo apt-get -y インストール postgresqlpostgresql-contrib
$ sudo systemctl start postgresql.service

次のコマンドを実行して、root権限でPostgreSQLにログインします。

PostgreSQL範囲のデータ型の例:

ブールデータ型のテーブルを作成する前に、PostgreSQLデータベースを作成する必要があります。 したがって、次のコマンドを実行して、という名前のデータベースを作成します ‘testdb’

CREATE DATABASE testdb;

データベースの作成後、次の出力が表示されます。

A.整数範囲のデータ型の使用
名前の付いたテーブルを作成します ‘tbl_intRange’ 現在のデータベースに2つのフィールドがあります。 ここで、最初のフィールド名は id これはテーブルの主キーです。 このフィールドの値は、新しいレコードが挿入されるときに自動的にインクリメントされます。 2番目のフィールド名は int_range データ型は INT4RANGE

#CREATE TABLE tbl_intRange(
id シリアル主キー、
int_range INT4RANGE )。;

テーブルが正常に作成されると、次の出力が表示されます。

次のINSERTクエリを実行して、3つのレコードをに挿入します。 tbl_intRange テーブル:

#INSERT INTO tbl_intRange(int_range)
((‘[1、10)'[110)’:: int4range)。
((‘[1、20)'[120)’:: int4range)。
((‘[1、30)'[130)’:: int4range)。;

上記のクエリを実行すると、次の出力が表示されます。

次のSELECTクエリを実行して、からすべてのレコードを読み取ります。 tbl_intRange:

選択する * FROM tbl_intRange;

次のSELECTクエリを実行して、これらのレコードを tbl_intRange どこ int_range 12より大きい:

選択する * FROM tbl_intRange WHERE int_range @>12;

上記のSELECTクエリを実行すると、次の出力が表示されます。

B.数値範囲データ型の使用
名前の付いたテーブルを作成します ‘tbl_numRange’ 現在のデータベースに2つのフィールドがあります。 ここで、最初のフィールド名は id これはテーブルの主キーです。 このフィールドの値は、新しいレコードが挿入されるときに自動的にインクリメントされます。 2番目のフィールド名は num_range データ型は NUMRANGE

#CREATE TABLE tbl_numRange(
id シリアル主キー、
num_range NUMRANGE )。;

次のINSERTクエリを実行して、3つのレコードをに挿入します。 tbl_numRange テーブル:

#INSERT INTO tbl_numRange(num_range)
((numrange((2040)。)。
((numrange((100500)。)。;

上記のクエリを実行すると、次の出力が表示されます。

tbl_numRangeからすべてのレコードを読み取る次のSELECTクエリを実行します。

選択する * FROM tbl_numRange;

上記のSELECTクエリを実行すると、次の出力が表示されます。

C.タイムスタンプ範囲データ型の使用
名前の付いたテーブルを作成します ‘tbl_timeRange’ 現在のデータベースに2つのフィールドがあります。 ここで、最初のフィールド名は id これはテーブルの主キーです。 このフィールドの値は、新しいレコードが挿入されるときに自動的にインクリメントされます。 2番目のフィールド名は timeRange データ型は TSRANGE

#CREATE TABLE tbl_timeRange(
id シリアル主キー、
timeRange TSRANGE)。;

次のINSERTクエリを実行して、3つのレコードをに挿入します。 tbl_timeRange テーブル:

#INSERT INTO tbl_timeRange(timeRange)
((‘[2022-05-2010:20:30、2022-05-2110:20:15)'[2022-05-2010:20:302022-05-2110:20:15)’)。
((‘[2022-09-139:30:15、2022-09-1411:10:20)'[2022-09-139:30:152022-09-1411:10:20)’)。;

上記のクエリを実行すると、次の出力が表示されます。

次のSELECTクエリを実行して、からすべてのレコードを読み取ります。 tbl_timeRange:

選択する * FROM tbl_timeRange;

上記のSELECTクエリを実行すると、次の出力が表示されます。

D.日付範囲データ型の使用
名前の付いたテーブルを作成します ‘tbl_dateRange’ 現在のデータベースに2つのフィールドがあります。 ここで、最初のフィールド名は id これはテーブルの主キーです。 このフィールドの値は、新しいレコードが挿入されるときに自動的にインクリメントされます。 2番目のフィールド名は date_range データ型は DATERANGE

#CREATE TABLE tbl_dateRange(
id シリアル主キー、
date_range DATERANGE)。;

次のINSERTクエリを実行して、3つのレコードをに挿入します。 tbl_dateRange テーブル:

#INSERT INTO tbl_dateRange(date_range)
((‘[2022-05-20、2022-05-21)'[2022-05-202022-05-21)’)。
((‘[2022-07-10、2022-07-15)'[2022-07-102022-07-15)’)。
((‘[2022-12-01、2022-12-16)'[2022-12-012022-12-16)’)。;

上記のクエリを実行すると、次の出力が表示されます。

次のSELECTクエリを実行して、からすべてのレコードを読み取ります。 tbl_dateRange:

選択する * FROM tbl_dateRange;

次のSELECTクエリを実行して、これらのレコードを tbl_dateRange ここで、の日付値 date_range フィールドがより大きい ‘2002-07-13’

選択する *FROM tbl_dateRange WHERE date_range @>‘2022-07-13’::日にち;

上記のクエリを実行すると、次の出力が表示されます。

結論:

このチュートリアルでは、複数のテーブルを使用して、PostgreSQLの範囲データ型のさまざまな使用法を示しました。 新しいPostgreSQLユーザーは、このチュートリアルを読んだ後、テーブル内のさまざまなデータ型を使用できるようになります。

The post PostgreSQL組み込み範囲データ型 appeared first on Gamingsym Japan.