AnalyticDB for PostgreSQL mendukung tipe data berikut. Untuk menentukan tipe kustom, gunakan pernyataan CREATE TYPE.
Tipe data yang didukung
Tipe data dikelompokkan berdasarkan kategori. Setiap entri mencantumkan alias, ukuran penyimpanan, rentang nilai, dan deskripsi singkat.
Tipe numerik
Gunakan integer untuk sebagian besar kolom bilangan bulat karena tipe ini menawarkan keseimbangan optimal antara rentang nilai, penggunaan penyimpanan, dan performa. Gunakan smallint hanya jika penyimpanan menjadi kendala utama. Gunakan bigint ketika nilai melebihi rentang integer. Untuk aritmetika desimal eksak (misalnya, perhitungan keuangan), gunakan decimal/numeric alih-alih double precision atau real, yang merupakan tipe floating-point tidak eksak.
| Data type | Alias | Length | Range | Description |
|---|
| smallint | int2 | 2 bytes | -32768 hingga +32767 | Bilangan bulat dengan rentang kecil. |
| integer | int, int4 | 4 bytes | -2.147.483.648 hingga +2.147.483.647 | Bilangan bulat standar. |
| bigint | int8 | 8 bytes | -9.223.372.036.854.775.808 hingga 9.223.372.036.854.775.807 | Bilangan bulat dengan rentang besar. |
| decimal [ (p, s) ] | numeric [ (p, s) ] | Variabel | Tanpa Batas | Presisi eksak yang ditentukan pengguna. |
| real | float4 | 4 bytes | 6 digit signifikan | Floating-point tidak eksak dengan presisi variabel. |
| double precision | float8 | 8 bytes | 15 digit signifikan | Floating-point tidak eksak dengan presisi variabel. |
| float | | | | |
| money | | 8 bytes | -92.233.720.368.547.758,08 hingga +92.233.720.368.547.758,07 | Nilai moneter. |
Tipe Serial (auto-increment)
| Data type | Alias | Length | Range | Description |
|---|
| serial | serial4 | 4 bytes | 1 hingga 2.147.483.647 | Bilangan bulat auto-increment. |
| bigserial | serial8 | 8 bytes | 1 hingga 9.223.372.036.854.775.807 | Bilangan bulat besar auto-increment. |
Tipe karakter
Gunakan text atau varchar untuk sebagian besar kolom teks. Gunakan char(n) hanya jika sistem eksternal memerlukan representasi lebar tetap—tipe ini mengisi nilai yang lebih pendek dengan spasi.
| Data type | Alias | Length | Range | Description |
|---|
| character [ (n) ] | char [ (n) ] | 1 byte + n | Maksimal n karakter | String dengan panjang tetap yang diisi spasi. |
| character varying [ (n) ] | varchar [ (n) ] | 1 byte + ukuran string | Maksimal n karakter | String dengan panjang variabel dan batas atas. |
| text | | 1 byte + ukuran string | Tanpa Batas | String dengan panjang variabel tanpa batas. |
Tipe biner
| Data type | Alias | Length | Range | Description |
|---|
| bytea | | 1 byte + string biner | 1 atau 4 byte ditambah string biner aktual | String biner dengan panjang variabel. |
Tipe tanggal dan waktu
| Data type | Alias | Length | Range | Description |
|---|
| date | | 4 bytes | 4713 SM hingga 294.277 M | Tanggal kalender (tahun, bulan, hari). |
| time [ (p) ] [ without time zone ] | | 8 bytes | 00:00:00[.000000] hingga 24:00:00[.000000] | Waktu dalam sehari, tanpa zona waktu. |
| time [ (p) ] with time zone | timetz | 12 bytes | 00:00:00+1359 hingga 24:00:00-1359 | Waktu dalam sehari dengan zona waktu. |
| timestamp [ (p) ] [ without time zone ] | | 8 bytes | 4713 SM hingga 294.277 M | Tanggal dan waktu, tanpa zona waktu. |
| timestamp [ (p) ] with time zone | timestamptz | 8 bytes | 4713 SM hingga 294.277 M | Tanggal dan waktu dengan zona waktu. |
| interval [ (p) ] | | 12 bytes | -178.000.000 hingga 178.000.000 tahun | Rentang waktu. |
Tipe Boolean
| Data type | Alias | Length | Range | Description |
|---|
| boolean | bool | 1 byte | true/false, t/f, yes/no, y/n, 1/0 | Nilai Boolean logis. |
Tipe string bit
| Data type | Alias | Length | Range | Description |
|---|
| bit [ (n) ] | | n bit | Konstanta string bit | String bit dengan panjang tetap. |
| bit varying [ (n) ] | varbit | Variabel | Konstanta string bit | String bit dengan panjang variabel. |
Tipe alamat jaringan
| Data type | Alias | Length | Description |
|---|
| cidr | | 12 atau 24 bytes | Jaringan IPv4 dan IPv6. |
| inet | | 12 atau 24 bytes | Host dan jaringan IPv4 serta IPv6. |
| macaddr | | 6 bytes | Alamat MAC. |
Tipe pencarian teks dan dokumen
| Data type | Alias | Length | Range | Description |
|---|
| json | | 1 byte + ukuran JSON | String JSON | String dengan panjang variabel tanpa batas. |
| xml | | 1 byte + ukuran XML | Tanpa Batas | String dengan panjang variabel tanpa batas. |
Tipe UUID
| Data type | Alias | Length | Description |
|---|
| uuid | | 32 bytes | Pengidentifikasi unik universal. |
uuid telah terintegrasi dalam AnalyticDB for PostgreSQL V6.0. Pada V4.3, instal ekstensi uuid-ossp sebelum menggunakan tipe ini. Untuk detail selengkapnya, lihat Use the uuid-ossp extension.
Tipe geometris
Tipe geometris (box, circle, lseg, path, point, polygon) tidak dapat digunakan sebagai kolom kunci distribusi.
| Data type | Alias | Length | Range | Description |
|---|
| box | | 32 bytes | ((x1,y1),(x2,y2)) | Kotak persegi panjang pada bidang datar. |
| circle | | 24 bytes | <(x,y),r> (pusat dan jari-jari) | Lingkaran pada bidang datar. |
| lseg | | 32 bytes | ((x1,y1),(x2,y2)) | Segmen garis pada bidang datar. |
| path | | 16+16n bytes | [(x1,y1),...] | Lintasan geometris pada bidang datar. |
| point | | 16 bytes | (x,y) | Titik geometris pada bidang datar. |
| polygon | | 40+16n bytes | ((x1,y1),...) | Lintasan geometris tertutup pada bidang datar. |