postgresql
データ型
サーチ…
前書き
PostgreSQLには、ユーザが利用できる豊富なネイティブデータ型があります。ユーザーは、CREATE TYPEコマンドを使用してPostgreSQLに新しいタイプを追加できます。
数値タイプ
名 | ストレージサイズ | 説明 | 範囲 |
---|---|---|---|
smallint | 2バイト | 小領域整数 | -32768〜+32767 |
integer | 4バイト | 整数のためのypicalの選択 | -2147483648〜+2147483647 |
bigint | 8バイト | 広域整数 | -9223372036854775808〜+9223372036854775807 |
decimal | 変数 | ユーザー指定の精度、正確 | 小数点の前に最大131072桁。小数点以下16383桁まで |
numeric | 変数 | ユーザー指定の精度、正確 | 小数点の前に最大131072桁。小数点以下16383桁まで |
real | 4バイト | 可変精度、不正確 | 10進数の6桁の精度 |
double precision | 8バイト | 可変精度、不正確 | 小数点以下15桁の精度 |
smallserial | 2バイト | 小さな自動インクリメント整数 | 1〜32767 |
serial | 4バイト | 自動インクリメント整数 | 1〜2147483647 |
bigserial | 8バイト | 大きな自動インクリメント整数 | 1〜9223372036854775807 |
int4range | 整数の範囲 | ||
int8range | 範囲のbigint | ||
numrange | 数値の範囲 |
日付/時刻タイプ
名 | ストレージサイズ | 説明 | 低い価値 | 高い価値 | 解決 |
---|---|---|---|---|---|
timestamp (タイムゾーンなし) | 8バイト | 日付と時刻の両方(タイムゾーンなし) | 紀元前4713年 | 294276 AD | 1マイクロ秒/ 14桁 |
timestamp (タイムゾーン付き) | 8バイト | 日付と時刻の両方、タイムゾーン付き | 紀元前4713年 | 294276 AD | 1マイクロ秒/ 14桁 |
date | 4バイト | 日付(時刻なし) | 紀元前4713年 | 5874897 AD | 1日 |
time (タイムゾーンなし) | 8バイト | 時間帯(日付なし) | 00:00:00 | 24:00:00 | 1マイクロ秒/ 14桁 |
time (時間帯あり) | 12バイト | 時刻帯のみ | 00:00:00 + 1459 | 24:00:00-1459 | 1マイクロ秒/ 14桁 |
interval | 16バイト | 時間間隔 | -17800万年 | 17800万年 | 1マイクロ秒/ 14桁 |
tsrange | タイムゾーンなしのタイムスタンプの範囲 | ||||
tstzrange | タイムゾーン付きのタイムスタンプの範囲 | ||||
daterange | 日付の範囲 |
幾何学タイプ
名 | ストレージサイズ | 説明 | 表現 |
---|---|---|---|
point | 16バイト | 平面上の点 | (x、y) |
line | 32バイト | 無限ライン | {A、B、C} |
lseg | 32バイト | 有限線セグメント | ((x1、y1)、(x2、y2)) |
box | 32バイト | 長方形のボックス | ((x1、y1)、(x2、y2)) |
path | 16 + 16nバイト | 閉路(ポリゴンに似ている) | ((x1、y1)、...) |
path | 16 + 16nバイト | オープンパス | [(x1、y1)、...] |
polygon | 40 + 16nバイト | ポリゴン(閉じたパスに類似) | ((x1、y1)、...) |
circle | 24バイト | サークル | <(x、y)、r>(中心点と半径) |
ネットワークアドレスタイプ
名 | ストレージサイズ | 説明 |
---|---|---|
cidr | 7または19バイト | IPv4およびIPv6ネットワーク |
inet | 7または19バイト | IPv4とIPv6のホストとネットワーク |
macaddr | 6バイト | MACアドレス |
文字の種類
名 | 説明 |
---|---|
character varying(n) 、 varchar(n) | 可変長可変 |
character(n) 、 char(n) | 固定長、ブランク |
text | 可変長無制限 |
配列
PostgreSQLでは、組み込み型、ユーザ定義型、または列挙型の配列を作成できます。デフォルトでは、配列には制限はありませんが、指定することはできます。
配列の宣言
SELECT integer[];
SELECT integer[3];
SELECT integer[][];
SELECT integer[3][3];
SELECT integer ARRAY;
SELECT integer ARRAY[3];
配列の作成
SELECT '{0,1,2}';
SELECT '{{0,1},{1,2}}';
SELECT ARRAY[0,1,2];
SELECT ARRAY[ARRAY[0,1],ARRAY[1,2]];
配列へのアクセス
デフォルトでは、PostgreSQLは配列にarray[1]
から始まる番号付け規則を使います。つまり、n要素の配列はarray[1]
で始まり、 array[n]
終わります。
--accesing a spefific element
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT int_arr[1] FROM arr;
int_arr
---------
0
(1 row)
--sclicing an array
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT int_arr[1:2] FROM arr;
int_arr
---------
{0,1}
(1 row)
配列に関する情報の取得
--array dimensions (as text)
with arr as (select ARRAY[0,1,2] int_arr) select array_dims(int_arr) from arr;
array_dims
------------
[1:3]
(1 row)
--length of an array dimension
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT array_length(int_arr,1) FROM arr;
array_length
--------------
3
(1 row)
--total number of elements across all dimensions
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT cardinality(int_arr) FROM arr;
cardinality
-------------
3
(1 row)
配列関数
追加されます
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow