GNU/Linux >> Belajar Linux >  >> Ubuntu

Tipe Data PostgreSQL

Pendahuluan

PostgreSQL adalah sistem manajemen basis data relasional sumber terbuka yang dikenal karena ketahanan dan ekstensibilitasnya. Ini juga berarti PostgreSQL menawarkan berbagai tipe data untuk pengguna.

Dalam tutorial ini, kita akan membahas berbagai tipe data bawaan yang tersedia di PostgreSQL.

Tipe Data PostgreSQL

Saat membuat tabel di PostgreSQL, Anda dapat menentukan tipe data untuk setiap kolom. PostgreSQL mendukung berbagai tipe data bawaan:

Karakter

PostgreSQL menggunakan tipe data karakter untuk menyimpan nilai teks. Ada tiga tipe data karakter di PostgreSQL:

Nama Deskripsi
karakter(n), karakter(n) String dengan panjang tetap, dengan n adalah jumlah karakter. Ruang kosong diisi di sebelah kanan sama dengan n .
karakter bervariasi(n), varchar(n) String dengan panjang variabel dengan batas karakter, di mana n adalah jumlah karakter.
teks Panjang variabel, string tak terbatas.

Jenis numerik

Jenis data numerik termasuk:

  • Bilangan bulat dua, empat, dan delapan byte
  • Angka floating point empat dan delapan byte
  • Desimal yang dapat dipilih:
Nama Ukuran Penyimpanan Deskripsi Rentang
kecil 2 byte Bilangan bulat kecil. -32768 hingga +32767
bilangan bulat 4 byte Integer rentang menengah. -2147483648 hingga +2147483647
besar 8 byte Bilangan bulat besar. -9223372036854775808 hingga 9223372036854775807
desimal variabel Desimal presisi yang ditentukan pengguna. Hingga 131072 digit sebelum koma. Hingga 16383 digit setelah titik desimal
numerik variabel Desimal presisi yang ditentukan pengguna. hingga 131072 digit sebelum koma. Hingga 16383 digit setelah titik desimal
nyata 4 byte Variabel presisi desimal. presisi 6 digit desimal
presisi ganda 8 byte Variabel presisi desimal. Presisi 15 digit desimal
serial kecil 2 byte Integer peningkatan otomatis kecil. 1 hingga 32767
serial 4 byte Integer peningkatan otomatis sedang. 1 hingga 2147483647
serial besar 8 byte Integer peningkatan otomatis besar. 1 hingga 9223372036854775807

Uang

Jenis data moneter menyimpan sejumlah uang dengan presisi pecahan tetap. Jenis ini menyimpan hingga 8 byte data dengan rentang -92233720368547758.08 hingga +92233720368547758.07 dan menggunakan numerik , bilangan bulat , dan besar tipe data sebagai nilai.

Tanggal/Waktu

PostgreSQL Mendukung semua tipe data tanggal dan waktu SQL standar , dengan resolusi 1 mikrodetik atau 14 digit. Tanggal adalah satu-satunya pengecualian, dengan resolusi satu hari, dihitung menurut kalender Gregorian:

Nama Ukuran Penyimpanan Deskripsi Rentang
stempel waktu 8 byte Tanggal dan waktu, tanpa zona waktu. 4713 SM sampai 294276 M
stempel waktu 8 byte Tanggal dan waktu, dengan zona waktu. 4713 SM sampai 294276 M
tanggal 4 byte Tanggal. 4713 SM sampai 294276 M
waktu tanpa zona waktu 8 byte Waktu dalam sehari, tanpa zona waktu. 00:00:00 hingga 24:00:00
waktu dengan zona waktu 12 byte Waktu, dengan zona waktu. 00:000:00 + 1459 hingga 24:00:00-1459
interval 12 byte Interval waktu. -178000000 hingga 178000000 tahun

Biner

PostgreSQL dapat menyimpan string biner dengan panjang variabel sebagai tipe data byte , mengambil 1 atau 4 byte ditambah ukuran string biner yang sebenarnya.

Boolean

Sebuah Tipe data Boolean dideklarasikan menggunakan bool atau boolean kata kunci. Itu dapat mempertahankan benar (1) , salah (0) , atau tidak diketahui (null) nilai.

Dihitung

Jenis data yang dihitung terdiri dari kumpulan nilai yang statis dan teratur, seperti angka dari 1 hingga 10 atau bulan dalam setahun. Tidak seperti tipe data lainnya, Anda dapat membuat tipe enumerated menggunakan create type perintah:

CREATE TYPE year AS ENUM ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');

Bit String

Jenis string bit menyimpan string 1 dan 0, digunakan untuk menyimpan atau memvisualisasikan bit mask:

Nama Deskripsi
bit(n) Menyimpan string bit dengan panjang tetap n karakter.
bervariasi(n) Menyimpan sedikit string dengan panjang yang bervariasi, hingga n karakter.

UUID

Sebuah UUID (Pengidentifikasi Unik Universal) adalah kumpulan 32 digit yang dibuat oleh suatu algoritme. Ini terdiri dari beberapa kelompok empat, delapan, dan dua belas digit, dipisahkan oleh tanda hubung:

Alamat Jaringan

PostgreSQL menggunakan tipe data alamat jaringan untuk menyimpan alamat IPv4, IPv6, dan MAC:

Nama Ukuran Penyimpanan Deskripsi
asam 7 atau 19 byte Menyimpan jaringan IPv4 dan IPv6.
bersih 7 atau 19 byte Menyimpan host dan jaringan IPv4 dan IPv6.
macaddr 6 byte Menyimpan alamat MAC.

Menggunakan tipe data alamat jaringan memiliki beberapa keunggulan dibandingkan menggunakan teks biasa. Ini termasuk menghemat ruang penyimpanan, fungsi dan perintah khusus, dan pemeriksaan kesalahan yang lebih mudah.

Penelusuran Teks

Jenis data penelusuran teks memungkinkan Anda mencari kecocokan terbaik dalam kumpulan dokumen bahasa alami:

Nama Deskripsi
tsvektor Mewakili dokumen yang dioptimalkan untuk pencarian teks, dengan daftar kata berbeda yang dinormalisasi untuk menggabungkan varian berbeda dari kata yang sama (leksem).
tsquery Menyimpan kata kunci yang perlu dicari dan menggabungkannya menggunakan operator Boolean (AND, OR, dan NOT).

Geometris

Jenis data geometris mewakili objek spasial yang dirender dalam dua dimensi, seperti titik, garis, dan poligon:

Nama Ukuran Penyimpanan Representasi Deskripsi Numerik
poin 16 byte Menunjuk pesawat. (x,y)
baris 32 byte Garis tak terbatas. ((x1,y1),(x2,y2))
lseg 32 byte Segmen garis hingga. ((x1,y1),(x2,y2))
kotak 32 byte Kotak persegi panjang. ((x1,y1),(x2,y2))
jalur 16+16n byte Jalur terbuka atau tertutup. ((x1,y1),...(xn,yn))
poligon 40+16n byte Poligon. ((x1,y1),...(xn,yn))
lingkaran 24 byte Lingkaran. ((x,y),r) (titik pusat dan jari-jari)

XML

PostgreSQL memungkinkan Anda menyimpan data XML sebagai tipe data XML menggunakan XMLPARSE fungsi:

XMLPARSE (DOCUMENT [document name] WELLFORMED)

atau:

XMLPARSE (CONTENT [XML content] WELLFORMED)

Dimana:

  • [document name] :Dokumen XML dengan root tunggal.
  • [XML content] :Nilai XML yang valid
  • WELLFORMED :Opsi ini menjamin bahwa [nama dokumen] atau [konten XML] menyelesaikan ke dokumen XML yang dibentuk dengan baik. Gunakan hanya jika Anda tidak ingin database memeriksa apakah input sudah terbentuk dengan baik.

JSON

PostgreSQL menawarkan dua tipe data JSON :

  • json: Perpanjangan tipe data teks dengan validasi JSON. Tipe data ini menyimpan data persis seperti apa adanya (termasuk spasi). Anda dapat dengan cepat memasukkannya ke dalam database, tetapi relatif lambat untuk diambil karena pemrosesan ulang.
  • jsonb: Mewakili data JSON dalam format biner. Lebih lambat untuk dimasukkan ke dalam database, tetapi dukungan pengindeksan dan kurangnya pemrosesan ulang membuat pengambilan lebih cepat secara signifikan.

Array

Jenis data larik memungkinkan Anda mendefinisikan kolom tabel sebagai array multidimensi yang dapat menggunakan tipe data dasar, enumerasi, atau komposit apa pun. Anda dapat mendeklarasikan, memodifikasi, dan mencari array seperti yang Anda lakukan pada kolom lain dalam database.

Komposit

Jenis data komposit memungkinkan Anda untuk menggunakan baris atau catatan tabel sebagai elemen data. Mirip dengan tipe data array, Anda juga dapat mendeklarasikan, mencari, dan mengubah nilai gabungan.

Rentang

Jenis data rentang gunakan rentang tipe data lain yang tersembunyi atau berkelanjutan. Tipe data rentang bawaan meliputi:

Nama Deskripsi
int4range Rentang bilangan bulat ukuran sedang.
int8range Rentang bilangan bulat besar.
angkaangka Rentang desimal presisi yang ditentukan pengguna.
aneh Rentang waktu dan tanggal tanpa zona waktu.
tstzrange Rentang waktu dan tanggal dengan zona waktu.
rentang tanggal Rentang tanggal.

Anda juga dapat membuat jenis rentang khusus dengan menggunakan jenis data lain sebagai basis.

Pengidentifikasi Objek

PostgreSQL menggunakan pengidentifikasi objek sebagai sistem kunci utama saat melakukan operasi input dan output khusus:

Nama Referensi Deskripsi
oid apa saja Pengidentifikasi objek numerik.
regproc pg_proc Nama fungsi.
prosedur ulang pg_proc Fungsi dengan tipe argumen.
regoper pg_operator Nama operator.
regoperator pg_operator Operator dengan tipe argumen.
kelas reguler kelas_pg Nama relasi.
ketik reg pg_type Nama tipe data.
regconfig pg_ts_config Konfigurasi pencarian teks.
regdictionary pg_ts_dict Kamus pencarian teks.

Jenis Semu

Tipe pseudo adalah kumpulan entri khusus untuk mendeklarasikan argumen fungsi atau tipe hasil:

Nama Deskripsi
apa saja Fungsi menerima tipe data input apa pun.
elemen apa saja Fungsi menerima tipe data apa pun.
anyarray Fungsi menerima tipe data larik apa pun.
anynonarray Fungsi menerima semua tipe data non-array.
anyenum Fungsi menerima semua tipe data yang disebutkan.
apa saja Fungsi menerima semua jenis data rentang.
cstring Fungsi menerima atau mengembalikan string C yang diakhiri null.
internal Fungsi menerima atau mengembalikan tipe data internal server.
penangan_bahasa Fungsi mengembalikan pengendali bahasa.
fdw_handler Penangan pembungkus data asing mengembalikan fdw_handler.
rekor Menemukan fungsi yang mengembalikan jenis baris yang tidak ditentukan.
pemicu Fungsi pemicu mengembalikan pemicu.
tidak berlaku Fungsi tidak mengembalikan nilai.

Ubuntu
  1. Bagaimana cara mengkonfigurasi postgresql untuk pertama kalinya?

  2. Salin n byte data x ke file

  3. Atur waktu waktu eksekusi beberapa perintah

  1. PostgreSQL Vs MySQL:Perbandingan Mendetail

  2. Tipe Data Cassandra:Built-in, Collection, &User-defined

  3. Jenis Basis Data NoSQL

  1. Jenis Data Redis dengan Perintah:Panduan Komprehensif

  2. Arsitektur Data Warehouse Dijelaskan

  3. Apa itu Spark DataFrame?