連続する一連のデータは、範囲データと呼ばれます。 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((20、 40)。)。、
((numrange((100、 500)。)。;
上記のクエリを実行すると、次の出力が表示されます。
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.