Jenis Data PostgreSQL: Karakter - Numerik - Biner - Boolean

Daftar Isi:

Anonim

PostgreSQL menawarkan kumpulan tipe data asli yang kaya untuk pengguna. Pengguna dapat menambahkan tipe baru dengan bantuan perintah CREATE TYPE. Itu juga membuat kueri lebih sederhana dan lebih mudah dibaca.

Jenis Data di PostgreSQL

PostgreSQL mendukung tipe data berikut:

  • Jenis Teks
  • Jenis Numerik
  • Tanggal dan Waktu
  • XML
  • JSON
  • Boolean
  • Bits
  • Data Biner
  • Jaringan
  • Array
  • Buat Tipe Data Anda
  • Boolean
  • Sementara
  • UUID
  • Himpunan
  • JSON
  • Tipe Data Khusus untuk menyimpan alamat jaringan dan data geometris.

Mari pelajari tipe data PostgreSQL secara detail

  • Jenis Data Karakter
  • Jenis Data Numerik
  • Tipe Data Biner
  • Jenis Alamat Jaringan
  • Jenis Pencarian Teks
  • Jenis Data Tanggal / Waktu
  • Jenis Boolean
  • Jenis Data Geometris
  • Jenis Enumerated
  • Jenis Rentang
  • Jenis UUID
  • Jenis XML
  • Jenis JSON
  • Tipe Pseudo

Jenis Data Karakter

PostgreSQL mendukung tipe data karakter untuk menyimpan nilai teks. PostgreSQL membangun tipe data karakter dari struktur internal yang sama. PostgreSQL menawarkan tiga tipe data karakter: CHAR (n), VARCHAR (n), dan TEXT.

Nama Deskripsi
varchar (n) Memungkinkan Anda mendeklarasikan panjang variabel dengan batas
Char (n) Panjang tetap, empuk kosong
Teks Gunakan dapat menggunakan tipe data ini untuk mendeklarasikan variabel dengan panjang tidak terbatas

Jenis Data Numerik

PostgreSQL mendukung dua jenis angka yang berbeda:

  • Bilangan bulat
  • Angka floating-point
Nama Ukuran toko Jarak
smallint 2 byte -32768 hingga +32767
bilangan bulat 4 byte -2147483648 hingga +2147483647
bigint 8 byte -9223372036854775808 hingga 9223372036854775807
desimal variabel Jika Anda menyatakannya sebagai tipe data desimal berkisar dari 131072 digit sebelum koma desimal hingga 16383 digit setelah koma desimal
numerik variabel Jika Anda mendeklarasikannya sebagai angka, Anda dapat memasukkan angka hingga 131072 digit sebelum koma desimal hingga 16383 digit setelah koma desimal
nyata 4 byte 6 digit desimal presisi
dua kali lipat 8 byte Presisi 15 digit desimal

Tipe Data Biner

String biner adalah urutan oktet atau byte. Tipe Data Biner Postgres dibagi dalam dua cara.

  • String biner memungkinkan menyimpan peluang bernilai nol
  • Oktet tidak dapat dicetak

String karakter tidak mengizinkan nol oktet dan juga melarang nilai oktet lain dan urutan yang tidak valid sesuai aturan penyandian kumpulan karakter database.

Nama Ukuran penyimpanan Deskripsi
Byte 1 hingga 4 byte plus ukuran string biner String biner dengan panjang variabel

Jenis Alamat Jaringan

Banyak aplikasi menyimpan informasi jaringan seperti alamat IP pengguna atau

sensor. PostgreSQL memiliki tiga tipe asli yang membantu Anda mengoptimalkan data jaringan.

Nama Ukuran Deskripsi
Cuka Apel 7 atau 19 bye Jaringan IPV4 dan IPv6
Inet 7 atau 19 byte Host dan jaringan IPV4 dan IPV5
macaddr 6 byte Alamat MAC

Menggunakan Jenis Alamat Jaringan memiliki keuntungan sebagai berikut

  1. Penghematan Ruang Penyimpanan
  2. Pemeriksaan kesalahan input
  3. Berfungsi seperti mencari data dengan subnet

Jenis Pencarian Teks

PostgreSQL menyediakan dua tipe data yang dirancang untuk mendukung pencarian teks lengkap. Pencarian teks lengkap sedang mencari melalui kumpulan dokumen bahasa alami untuk mencari yang paling cocok dengan kueri.

  • Pencarian teks Tsvector Jenis variabel PostgreSQL mewakili dokumen dalam bentuk yang dioptimalkan untuk pencarian teks
  • Pencarian teks tipe query menyimpan kata kunci yang perlu dicari

Jenis Data Tanggal / Waktu

Stempel waktu PostgreSQL menawarkan presisi mikrodetik, bukan presisi kedua. Selain itu, Anda juga memiliki opsi untuk menyimpan dengan zona waktu atau tanpa. PostgreSQL akan mengonversi stempel waktu dengan zona waktu ke UTC saat dimasukkan dan menyimpannya.

Masukan tanggal dan waktu diterima dalam berbagai format, termasuk Postgres tradisional, ISO 8601. Kompatibel dengan SQL, dll.

PostgreSQL mendukung pemesanan Hari / Bulan / Tahun. Format yang didukung adalah DMY, MDY, YMD

Jenis Data Temporal

Nama Ukuran Jarak Resolusi
Stempel waktu tanpa zona waktu 8 byte 4713 SM sampai 294276 M. 1 mikrodetik / 14 digit
Stempel waktu dengan zona waktu 8 byte 4713 SM sampai 294276 M. 1 mikrodetik / 14 digit
tanggal 4 byte 4713 SM sampai 294276 M. Suatu hari
Waktu tanpa zona waktu 8 byte 00:00:00 hingga 24:00:00 1 mikrodetik / 14 digit
Waktu dengan zona waktu 12 byte 00:00:00 + 1459 hingga 24: 00: 00-1459 1 mikrodetik / 14 digit
Selang 12 byte -178000000 hingga 178000000 tahun 1 mikrodetik / 14 digit

Contoh:

Memasukkan Deskripsi
2025-09-07 ISO 8601, 7 September dengan gaya tanggal apa pun (format yang disarankan)
7 September 2025 7 September dengan gaya tanggal apa pun
7/9/2025 7 September dengan MDY, 9 Juli dengan DMY
9/7/25 7 September 2025, dengan MDY
2025-Sep-7 7 September dengan gaya tanggal apa pun
Sep-7-2018 7 September dengan gaya tanggal apa pun
7-Sep-25 7 September 2025, dengan YMD
20250907 ISO 8601,7 Sep 20225 dalam mode apa pun
2025.250 tahun dan hari dalam setahun, dalam hal ini, 7 Sep 2025
J25250 Tanggal Julian

Waktu / Waktu dengan Input Zona Waktu

Memasukkan Deskripsi
11: 19: 38.507 11:19:38 11:19 111938 ISO 8601
11:19 Sama seperti 11:19
11:19 sama seperti 23:19
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, sama seperti 23:19 EST
23:19 EST zona waktu yang ditentukan sebagai EST, sama seperti 11:19 EST

Jenis Boolean

Tipe data Boolean dapat menampung

  • Benar
  • Salah
  • batal

nilai-nilai.

Anda menggunakan kata kunci bool atau boolean untuk mendeklarasikan kolom dengan tipe data Boolean.

Saat Anda memasukkan nilai ke dalam kolom boolean, Postgre mengonversi nilai seperti

  • Iya
  • y
  • 1
  • t
  • benar

menjadi 1.

Sedangkan nilai-nilai suka

  • Tidak
  • N
  • 0
  • F
  • Salah

diubah menjadi 0

Saat memilih data, nilainya kembali diubah menjadi ya, benar, y, dll.

Jenis Data Geometris

Tipe data geometris mewakili objek spasial dua dimensi. Mereka membantu melakukan operasi seperti rotasi, penskalaan, terjemahan, dll.

Nama Ukuran Penyimpanan Perwakilan Deskripsi
Titik 16 byte Arahkan ke pesawat (x, y)
Garis 32 byte Garis tak terbatas ((xl.yl). (x2.y2))
Lseg 32 byte Segmen garis hingga ((xl.yl). (x2.y2))
Kotak 32 byte Kotak Persegi Panjang ((xl.yl). (x2.y2))
Jalan 16n + 16n byte Tutup dan Buka Path ((xl.yl),…)
Poligon 40 + 16n byte Poligon [(xl.yl)….]
Lingkaran 24 byte Lingkaran <(xy) .r> (titik pusat dan radius)

Jenis Enumerated

Tipe data Enumerated PostgreSQL berguna untuk merepresentasikan informasi yang jarang berubah seperti kode negara atau id cabang. Tipe data Enumerated direpresentasikan dalam tabel dengan kunci asing untuk memastikan integritas data.

Contoh:

Warna rambut cukup statis dalam database demografis

CREATE TYPE hair_color AS ENUM('brown','black','red','grey','blond')

Jenis Rentang

Banyak aplikasi bisnis membutuhkan data dalam rentang. Biasanya, dua kolom (contoh: tanggal mulai, tanggal akhir) ditentukan untuk menangani rentang. Ini tidak efisien dan sulit dipertahankan.

Postgre telah membangun tipe rentang sebagai berikut

  • int4range - Menampilkan kisaran integer
  • int8range - Menampilkan berbagai bigint
  • numrange - Menampilkan kisaran numerik
  • tstrange - Membantu Anda menampilkan cap waktu tanpa zona waktu
  • aneh - Memungkinkan Anda untuk menampilkan cap waktu dengan zona waktu
  • rentang tanggal - Rentang tanggal

Jenis UUID

Identifikasi Unik Universal (UUID) adalah kuantitas 128-bit yang dihasilkan oleh algoritme. Sangat tidak mungkin bahwa pengenal yang sama akan dibuat oleh orang lain di dunia dengan menggunakan algoritme yang sama. Itulah mengapa untuk sistem terdistribusi, pengenal ini adalah pilihan ideal karena menawarkan keunikan dalam satu database. UUID ditulis sebagai grup digit heksadesimal huruf kecil, dengan berbagai grup yang dipisahkan oleh tanda hubung.

PostgreSQL memiliki tipe data UUID asli yang mengkonsumsi 16 byte penyimpanan… UUID adalah tipe Data yang ideal untuk kunci utama.

Contoh:

d5f28c97-b962-43be-9cf8-ca1632182e8e

Postgre juga menerima bentuk-bentuk alternatif dari input UUID seperti huruf kapital semua, tanpa tanda hubung, tanda kurung, dll.

Jenis XML

PostgreSQL memungkinkan Anda menyimpan data XML dalam tipe data, tetapi itu tidak lebih dari ekstensi untuk tipe data teks. Tetapi keuntungannya adalah ia memeriksa bahwa input XML terbentuk dengan baik.

Contoh:

XMLPARSE (DOCUMENT 'Data Type')

Jenis JSON

Untuk menyimpan data JSON PostgreSQL menawarkan 2 tipe data

  1. JSON
  2. JSONB
json Jsonb
Ekstensi sederhana dari tipe data teks dengan validasi JSON Representasi biner dari data JSON
Penyisipan cepat tetapi pengambilan data relatif lambat. Sisipkan lambat tetapi pilih (pengambilan data cepat)
Menyimpan data yang dimasukkan persis seperti itu termasuk spasi. Mendukung pengindeksan. Dapat mengoptimalkan ruang kosong untuk membuat pengambilan lebih cepat.
Pemrosesan ulang pada pengambilan data Tidak diperlukan pemrosesan ulang pada pengambilan data

Tipe data JSON yang paling banyak digunakan menggunakan jsonb kecuali ada kebutuhan khusus untuk menggunakan tipe data JSON.

Contoh:

CREATE TABLE employee (id integer NOT NULL,age integer NOT NULL,data jsonb);
INSERT INTO employee VALUES (1, 35, '{"name": "Tom Price", "tags": ["Motivated", "SelfLearner"], "onboareded": true}');

Tipe Pseudo

PostgreSQL memiliki banyak entri tujuan khusus yang disebut tipe semu. Anda tidak dapat menggunakan tipe semu sebagai tipe kolom PostgreSQL. Ada yang digunakan untuk mendeklarasikan argumen atau fungsi atau tipe kembalian.

Setiap pseudo-type yang tersedia berguna dalam situasi di mana dokumen perilaku fungsi tidak sesuai dengan hanya mengambil atau mengembalikan nilai dari tipe data SQL tertentu.

Nama Deskripsi
Apa saja Fungsi menerima semua tipe data masukan.
Sebuah array Fungsi ini menerima tipe data larik apa pun.
Elemen apa saja Fungsi ini menerima tipe data apa pun.
Enum apa saja Fungsi ini menerima tipe data enum apa pun.
Nonarray Fungsi ini menerima tipe data non-larik apa pun.
Cstring Fungsi menerima atau mengembalikan string C yang diakhiri dengan null.
Intern Fungsi internal menerima atau mengembalikan tipe data server-internal.
Penangan_bahasa Ini dideklarasikan untuk mengembalikan penangan bahasa.
Merekam Temukan fungsi yang mengembalikan jenis baris yang tidak ditentukan.
Pelatuk Fungsi pemicu digunakan untuk mengembalikan pemicu.

Penting bahwa pengguna yang menggunakan fungsi ini perlu memastikan bahwa fungsi tersebut akan berperilaku dengan aman saat pseudo-type digunakan sebagai tipe argumen.

Praktik terbaik menggunakan tipe Data

  • Gunakan tipe data "teks" kecuali Anda ingin membatasi masukan
  • Jangan pernah menggunakan "char."
  • Bilangan bulat menggunakan "int." Gunakan bigint hanya jika Anda memiliki jumlah yang sangat besar
  • Gunakan "numerik" hampir selalu
  • Gunakan float di PostgreSQL jika Anda memiliki sumber data IEEE 754

Ringkasan

  • PostgreSQL menawarkan kumpulan tipe data asli yang kaya untuk pengguna
  • PostgreSQL mendukung tipe data karakter untuk menyimpan nilai teks
  • PostgreSQL mendukung dua jenis angka yang berbeda: 1. Integer, 2. Angka floating-point
  • String biner adalah urutan byte atau oktet
  • PostgreSQL memiliki jenis alamat Jaringan untuk membantu Anda mengoptimalkan penyimpanan data jaringan
  • Pencarian teks Struktur data PostgreSQL dirancang untuk mendukung pencarian teks lengkap
  • Tipe data Tanggal / Waktu PSQL memungkinkan informasi tanggal dan waktu dalam berbagai format
  • Jenis bidang Boolean Postgres dapat menampung tiga nilai 1. Benar 2. Salah 3. Null
  • Tipe data Geometric PostgreSQL mewakili objek spasial dua dimensi
  • Tipe Data Enumerated di PostgreSQL berguna untuk mewakili informasi yang jarang berubah seperti kode negara atau id cabang
  • Identifikasi Unik Universal (UUID) adalah kuantitas 128-bit yang dihasilkan oleh algoritme
  • PostgreSQL memiliki banyak entri tujuan khusus yang disebut tipe semu
  • Praktik terbaiknya adalah menggunakan tipe data "teks" kecuali Anda ingin membatasi input