Jenis Data PostgreSQL: Watak - Berangka - Perduaan - Boolean

Isi kandungan:

Anonim

PostgreSQL menawarkan sekumpulan jenis data asli yang kaya untuk pengguna. Pengguna boleh menambah jenis baru dengan bantuan perintah CREATE TYPE. Ini juga menjadikan pertanyaan lebih mudah dan mudah dibaca.

Jenis Data dalam PostgreSQL

PostgreSQL menyokong jenis data berikut:

  • Jenis Teks
  • Jenis Numerik
  • Tarikh dan Masa
  • XML
  • JSON
  • Boolean
  • Bit
  • Data Perduaan
  • Rangkaian
  • Susunan
  • Buat Jenis Data anda
  • Boolean
  • Sementara
  • UUID
  • Array
  • JSON
  • Jenis Data Khas untuk menyimpan alamat rangkaian dan data geometri.

Mari kita kaji jenis data PostgreSQL secara terperinci

  • Jenis Data Watak
  • Jenis Data Berangka
  • Jenis Data Perduaan
  • Jenis Alamat Rangkaian
  • Jenis Carian Teks
  • Jenis Data Tarikh / Masa
  • Jenis Boolean
  • Jenis Data Geometri
  • Jenis yang Dikira
  • Jenis Julat
  • Jenis UUID
  • Jenis XML
  • Jenis JSON
  • Jenis-Jenis Pseudo

Jenis Data Watak

PostgreSQL menyokong jenis data watak untuk menyimpan nilai teks. PostgreSQL membina jenis data watak dari struktur dalaman yang sama. PostgreSQL menawarkan tiga jenis data watak: CHAR (n), VARCHAR (n), dan TEXT.

Nama Penerangan
varchar (n) Membolehkan anda menyatakan panjang berubah dengan had
Char (n) Panjang tetap, empuk kosong
Teks Gunakan boleh menggunakan jenis data ini untuk menyatakan pemboleh ubah dengan panjang tidak terhad

Jenis Data Berangka

PostgreSQL menyokong dua jenis nombor:

  • Bilangan bulat
  • Nombor terapung
Nama Saiz kedai Julat
smallint 2 bait -32768 hingga +32767
bilangan bulat 4 bait -2147483648 hingga +2147483647
bigint 8 bait -9223372036854775808 hingga 9223372036854775807
perpuluhan pemboleh ubah Sekiranya anda menyatakannya sebagai jenis data perpuluhan berkisar antara 131072 digit sebelum titik perpuluhan hingga 16383 digit setelah titik perpuluhan
berangka pemboleh ubah Sekiranya anda menyatakannya sebagai nombor, anda boleh memasukkan nombor hingga 131072 digit sebelum titik perpuluhan hingga 16383 digit selepas titik perpuluhan
nyata 4 bait Ketepatan 6 digit perpuluhan
berganda 8 bait Ketepatan 15 digit perpuluhan

Jenis Data Perduaan

Rentetan binari adalah urutan oktet atau bait. Jenis Data Postgres Binari terbahagi kepada dua cara.

  • Rentetan binari membolehkan menyimpan kemungkinan nilai sifar
  • Oktet yang tidak boleh dicetak

Rentetan watak tidak membenarkan oktet sifar dan juga tidak membenarkan nilai dan urutan oktet lain yang tidak sah mengikut peraturan pengekodan set watak pangkalan data.

Nama Saiz simpanan Penerangan
Bait 1 hingga 4 bait ditambah dengan ukuran rentetan binari Rentetan binari panjang berubah-ubah

Jenis Alamat Rangkaian

Banyak aplikasi menyimpan maklumat rangkaian seperti alamat IP pengguna atau

penderia. PostgreSQL mempunyai tiga jenis asli yang membantu anda mengoptimumkan data rangkaian.

Nama Saiz Penerangan
cider 7 atau 19 bye Rangkaian IPV4 dan IPv6
Inet 7 atau 19 bait Host dan rangkaian IPV4 dan IPV5
macaddr 6 bait Alamat MAC

Menggunakan Jenis Alamat Rangkaian mempunyai kelebihan berikut

  1. Penjimatan Ruang Storan
  2. Pemeriksaan ralat input
  3. Fungsi seperti mencari data dengan subnet

Jenis Carian Teks

PostgreSQL menyediakan dua jenis data yang dirancang untuk menyokong carian teks penuh. Pencarian teks penuh mencari melalui kumpulan dokumen berbahasa semula jadi untuk mencari dokumen yang paling sesuai dengan pertanyaan.

  • Pencarian teks Tsvector jenis pemboleh ubah PostgreSQL mewakili dokumen dalam bentuk yang dioptimumkan untuk carian teks
  • Pencarian teks jenis pertanyaan menyimpan kata kunci yang perlu dicari

Jenis Data Tarikh / Masa

Cap waktu PostgreSQL menawarkan ketepatan mikrodetik dan bukan ketepatan kedua. Selain itu, anda juga mempunyai pilihan untuk menyimpan dengan zon waktu atau tanpa. PostgreSQL akan menukar cap waktu dengan zon waktu menjadi UTC pada input dan menyimpannya.

Input tarikh dan masa diterima dalam pelbagai format, termasuk Postgres tradisional, ISO 8601. Sesuai dengan SQL dll.

PostgreSQL menyokong pesanan Hari / Bulan / Tahun. Format yang disokong adalah DMY, MDY, YMD

Jenis Data Temporal

Nama Saiz Julat Resolusi
Cap waktu tanpa zon waktu 8 bait 4713 SM hingga 294276 Masihi 1 mikrodetik / 14 digit
Cap waktu dengan zon waktu 8 bait 4713 SM hingga 294276 Masihi 1 mikrodetik / 14 digit
Tarikh 4 bait 4713 SM hingga 294276 Masihi Satu hari
Masa tanpa zon waktu 8 bait 00:00:00 hingga 24:00:00 1 mikrodetik / 14 digit
Masa dengan zon waktu 12 bait 00:00:00 + 1459 hingga 24: 00: 00-1459 1 mikrodetik / 14 digit
Selang 12 bait -178000000 hingga 178000000 tahun 1 mikrodetik / 14 digit

Contoh:

Masukan Penerangan
2025-09-07 ISO 8601, 7 September dengan gaya tarikh apa pun (format yang disyorkan)
7 September 2025 7 September dengan sebarang gaya tarikh
9/7/2025 7 September dengan MDY, 9 Julai dengan DMY
9/7/25 7 September 2025, bersama MDY
2025-Sep-7 7 September dengan sebarang gaya tarikh
Sep-7-2018 7 September dengan sebarang gaya tarikh
7-Sep-25 7 September 2025, bersama YMD
20250907 ISO 8601,7 Sep 20225 dalam mod apa pun
2025.250 tahun dan hari dalam tahun ini, dalam kes ini, 7 Sep 2025
J25250 Tarikh Julian

Masa / Masa dengan Masukan Zon Waktu

Masukan Penerangan
11: 19: 38.507 11:19:38 11:19 111938 ISO 8601
11:19 PG Sama seperti 11:19
11:19 PTG sama seperti 23:19
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, sama dengan 11:19 PM EST
23:19 EST zon waktu ditentukan sebagai EST, sama dengan 11:19 PM EST

Jenis Boolean

Jenis data Boolean boleh bertahan

  • Betul
  • Salah
  • batal

nilai.

Anda menggunakan kata kunci bool atau boolean untuk menyatakan lajur dengan jenis data Boolean.

Apabila anda memasukkan nilai ke dalam lajur boolean, Postgre menukar nilai seperti

  • Ya
  • y
  • 1
  • t
  • benar

menjadi 1.

Manakala nilai suka

  • Tidak
  • N
  • 0
  • F
  • Salah

ditukar menjadi 0

Semasa memilih data, nilainya kembali ditukar menjadi ya, benar, y, dll.

Jenis Data Geometri

Jenis data geometri mewakili objek spasial dua dimensi. Mereka membantu melakukan operasi seperti putaran, penskalaan, terjemahan, dll.

Nama Saiz simpanan Perwakilan Penerangan
Titik 16 bait Arahkan pada kapal terbang (x, y)
Garisan 32 bait Garis tak terhingga ((xl.yl). (x2.y2))
Lseg 32 bait Segmen garis terhingga ((xl.yl). (x2.y2))
Kotak 32 bait Kotak Segi Empat ((xl.yl). (x2.y2))
Jalan 16n + 16n bait Jalan Tutup dan Buka ((xl.yl),…)
Poligon 40 + 16n bait Poligon [(xl.yl)….]
Bulatan 24 bait Bulatan <(xy) .r> (titik tengah dan jejari)

Jenis yang Dikira

Jenis data PostgreSQL berangka berguna untuk mewakili maklumat yang jarang berubah seperti kod negara atau id cawangan. Jenis data yang dihitung ditunjukkan dalam jadual dengan kunci asing untuk memastikan integriti data.

Contoh:

Warna rambut agak statik dalam pangkalan data demografi

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

Jenis Julat

Banyak aplikasi perniagaan memerlukan data dalam julat. Biasanya, dua lajur (contoh: tarikh mula, tarikh akhir) ditakrifkan untuk menangani julat. Ini tidak cekap dan sukar dijaga.

Postgre telah membina pelbagai jenis seperti berikut

  • int4range - Paparan julat bilangan bulat
  • int8range - Julat paparan bigint
  • numrange - Menunjukkan julat angka
  • tstrange - Membantu anda memaparkan cap waktu tanpa zon waktu
  • pelik - Membolehkan anda memaparkan cap waktu dengan zon waktu
  • julat tarikh - Julat tarikh

Jenis UUID

Universally Unique Identified (UUID) adalah kuantiti 128-bit yang dihasilkan oleh algoritma. Tidak mungkin pengecam yang sama dihasilkan oleh orang lain di dunia menggunakan algoritma yang sama. Itulah sebabnya untuk sistem yang diedarkan, pengecam ini adalah pilihan yang ideal kerana ia menawarkan keunikan dalam satu pangkalan data. UUID ditulis sebagai kumpulan digit heksadesimal huruf kecil, dengan pelbagai kumpulan dipisahkan dengan tanda hubung.

PostgreSQL mempunyai jenis data UUID asli yang menggunakan 16 bait penyimpanan… UUID adalah jenis Data yang ideal untuk kunci utama.

Contoh:

d5f28c97-b962-43be-9cf8-ca1632182e8e

Postgre juga menerima bentuk input UUID alternatif seperti semua huruf besar, tanpa tanda hubung, pendakap, dll.

Jenis XML

PostgreSQL membolehkan anda menyimpan data XML dalam jenis data, tetapi tidak lebih dari sekadar perluasan untuk jenis data teks. Tetapi kelebihannya ialah memeriksa bahawa input XML terbentuk dengan baik.

Contoh:

XMLPARSE (DOCUMENT 'Data Type')

Jenis JSON

Untuk menyimpan data JSON PostgreSQL menawarkan 2 jenis data

  1. JSON
  2. JSONB
json Jsonb
Sambungan ringkas jenis data teks dengan pengesahan JSON Perwakilan binari data JSON
Sisipan cepat tetapi pengambilan data agak perlahan. Masukkan perlahan tetapi pilih (pengambilan data cepat)
Menyimpan data yang dimasukkan dengan tepat seperti ruang kosong. Menyokong pengindeksan. Boleh mengoptimumkan ruang kosong untuk membuat pengambilan lebih cepat.
Memproses semula pengambilan data Tidak diperlukan pemprosesan semula pada pengambilan data

Jenis data JSON yang paling banyak digunakan menggunakan kami jsonb kecuali ada keperluan khusus untuk menggunakan jenis 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}');

Jenis-Jenis Pseudo

PostgreSQL mempunyai banyak entri tujuan khas yang disebut jenis pseudo. Anda tidak boleh menggunakan jenis pseudo sebagai jenis lajur PostgreSQL. Ada digunakan untuk menyatakan atau mengemukakan argumen atau jenis pengembalian.

Setiap jenis pseudo yang tersedia sangat berguna dalam situasi di mana dokumen tingkah laku fungsi tidak sesuai dengan hanya mengambil atau mengembalikan nilai jenis data SQL tertentu.

Nama Penerangan
Sebarang Fungsi menerima semua jenis data input.
Susunan Fungsi menerima sebarang jenis data array.
Mana-mana unsur Fungsi menerima sebarang jenis data.
Sebarang enum Fungsi tersebut menerima sebarang jenis data enum.
Bukan Bersusun Fungsi menerima sebarang jenis data bukan larik.
Rentetan Fungsi menerima atau mengembalikan rentetan C yang ditamatkan nol.
Dalaman Fungsi dalaman menerima atau mengembalikan jenis data dalaman pelayan.
Pengendali_ bahasa Ia dinyatakan untuk mengembalikan pengendali bahasa.
Rekodkan Cari fungsi yang mengembalikan jenis baris yang tidak ditentukan.
Pencetus Fungsi pemicu digunakan untuk mengembalikan pemicu.

Adalah penting bahawa pengguna yang menggunakan fungsi ini perlu memastikan bahawa fungsi tersebut akan berkelakuan selamat ketika jenis pseudo digunakan sebagai jenis argumen.

Amalan terbaik menggunakan jenis Data

  • Gunakan jenis data "teks" melainkan anda mahu menghadkan input
  • Jangan sekali-kali menggunakan "char."
  • Integer menggunakan "int." Gunakan bigint hanya apabila anda mempunyai bilangan yang sangat besar
  • Gunakan "angka" hampir selalu
  • Gunakan float di PostgreSQL jika anda mempunyai sumber data IEEE 754

Ringkasan

  • PostgreSQL menawarkan pelbagai jenis data asli untuk pengguna
  • PostgreSQL menyokong jenis data watak untuk menyimpan nilai teks
  • PostgreSQL menyokong dua jenis nombor yang berbeza: 1. Bilangan bulat, 2. Nombor terapung
  • Rentetan binari adalah urutan bait atau oktet
  • PostgreSQL mempunyai jenis alamat Rangkaian untuk membantu anda mengoptimumkan penyimpanan data rangkaian
  • Pencarian teks Struktur data PostgreSQL direka untuk menyokong carian teks penuh
  • Tarikh / Masa Jenis data PSQL membenarkan maklumat tarikh dan waktu dalam pelbagai format
  • Jenis medan Boolean Postgres dapat menahan tiga nilai 1. Betul 2. Salah 3. Null
  • Jenis data Geometrik PostgreSQL mewakili objek spasial dua dimensi
  • Jenis data yang dihitung dalam PostgreSQL berguna untuk mewakili maklumat yang jarang berubah seperti kod negara atau id cawangan
  • Universally Unique Ident Ident (UUID) adalah kuantiti 128-bit yang dihasilkan oleh algoritma
  • PostgreSQL mempunyai banyak entri tujuan khas yang disebut jenis pseudo
  • Amalan terbaik untuk menggunakan jenis data "teks" melainkan anda mahu menghadkan input