Skip to content

Jenis data PostgreSQL diterangkan

Setiap jenis data lajur PostgreSQL yang biasa, dikumpulkan mengikut keluarga: nombor bulat, perpuluhan, teks, masa, boolean dan UUID, JSON, alamat rangkaian, jenis komposit, dan jenis sambungan. Setiap baris menunjukkan apa yang disimpan oleh jenis itu dan bila hendak memilihnya.

PostgreSQL mempunyai berpuluh-puluh jenis, tetapi reka bentuk skema harian menggunakan satu set teras. Pilihan yang berulang: integer lawan numeric untuk nombor, varchar lawan text untuk rentetan (text biasanya memadai), timestamp lawan timestamptz (utamakan timestamptz untuk apa-apa detik dunia sebenar), dan json lawan jsonb (utamakan jsonb, ia binari dan boleh diindeks). Pilih jenis yang paling khusus yang masih bersesuaian; pangkalan data akan menguatkuasakannya untuk anda.

Jadual rujukan · 46 entri
46 of 46 rows
Nombor bulat
Integer 2 bait daripada -32768 hingga 32767.Jarang; hanya apabila perlu menjimatkan ruang.
Integer 4 bait, lebih kurang 2 bilion.Lajur nombor bulat lalai.
Integer 8 bait, lebih kurang 9 kuintilion.Kiraan sangat besar atau ID luaran.
Integer 4 bait yang bertambah secara automatik.Kunci bernombor automatik yang lama; sejak PG 10, GENERATED AS IDENTITY ialah pengganti yang disyorkan.
Varian serial 2 bait dan 8 bait.Penomboran automatik yang sepadan dengan lajur smallint atau bigint.
Integer yang dijana oleh jadual untuk anda (GENERATED ALWAYS AS IDENTITY).Serial moden; piawaian SQL dan lebih selamat daripada sisipan manual.
Perpuluhan & apungan
Perpuluhan tepat dengan ketepatan arbitari.Wang dan apa-apa yang galat pembundaran tidak boleh diterima.
Nombor apungan ketepatan tunggal 4 bait.Nilai saintifik anggaran yang ketepatannya tidak kritikal.
Nombor apungan ketepatan berganda 8 bait.Geospatial, statistik dan nilai ciri ML.
Amaun mata wang dengan setempat tetap.Jarang; numeric dengan kod mata wang di sisi aplikasi lebih mudah alih.
Teks
Teks panjang tetap, ditambah dengan ruang kosong.Kod dengan lebar yang diketahui; jarang diperlukan.
Teks panjang berubah-ubah dengan had pilihan.Rentetan berhad seperti nama pengguna atau e-mel.
Teks panjang berubah-ubah tanpa had panjang.Lajur rentetan serba boleh; tiada penalti prestasi berbanding varchar.
Masa
Tarikh kalendar tanpa masa hari.Hari lahir dan tarikh akhir.
Masa dalam sehari, dengan atau tanpa zon waktu.Penggera harian atau waktu kedai.
Tarikh dan masa tanpa zon waktu.Skema lama; elakkan untuk kerja baharu.
Tarikh dan masa disimpan sebagai UTC, dipaparkan dalam zon klien.Pilihan lalai untuk apa-apa detik dunia sebenar; utamakan ini berbanding timestamp.
Julat masa, seperti 2 hari atau 3 jam.Tempoh dan aritmetik tarikh.
Boolean, UUID & bait
Benar atau palsu.Bendera dan togol.
Pengecam unik sejagat 128-bit.ID tidak berjujukan yang selamat untuk didedahkan (jana dalam aplikasi atau dengan gen_random_uuid).
Bait binari mentah.Blob, imej dan muatan legap; utamakan storan objek untuk fail besar.
Rentetan bit panjang tetap atau berubah-ubah.Bendera padat dan medan protokol; satu nilai hidup/mati tetap boolean.
JSON & separa berstruktur
JSON dihuraikan kepada bentuk binari yang boleh diindeks.Data fleksibel atau bersarang; lajur JSON yang disyorkan (menyokong indeks GIN).
JSON disimpan sebagai teks asal.Jarang; hanya apabila perlu mengekalkan susunan kunci atau ruang putih yang tepat.
Teks XML.Integrasi lama yang memerlukan XML.
Ungkapan laluan terkompilasi untuk menavigasi data JSON.Menapis dalam jsonb dengan jsonb_path_query dan pengendali SQL/JSON.
Rangkaian & carian
Alamat hos IPv4 atau IPv6.Menyimpan IP klien atau pelayan.
Blok rangkaian IP, seperti 10.0.0.0/24.Peraturan tembok api dan julat subnet.
Alamat MAC 6 bait atau 8 bait (EUI-64).Pengecam peranti dan antara muka rangkaian.
Teks yang diproses lebih awal untuk carian teks penuh.Carian Postgres terbina dalam sebelum beralih kepada enjin carian berasingan.
Istilah carian digabungkan dengan pengendali AND, OR dan awalan.Separuh pertanyaan bagi carian teks penuh, dipadankan dengan tsvector melalui @@.
Posisi log tulis-dahulu, nombor jujukan log.Pemantauan lengahan replikasi dan sandaran.
Komposit & lanjutan
Tatasusunan bagi mana-mana jenis asas, cth. integer[].Senarai nilai mudah; gunakan jadual anak apabila item perlu lajur tersendiri.
Satu nilai daripada senarai tetap yang anda takrifkan.Medan status dengan set pilihan yang stabil.
Jenis baris tersuai daripada beberapa medan.Kumpulan medan berulang yang dikongsi merentas jadual.
Julat bersambung antara dua sempadan.Jadual waktu, jalur harga dan julat versi, dengan pengendali pertindihan.
Jenis asas dibalut dengan kekangan yang anda takrifkan.Peraturan boleh guna semula seperti e-mel tidak kosong, dikuatkuasakan pada setiap lajur yang menggunakannya.
Baris tanpa nama daripada nilai berjenis.Pulangan fungsi PL/pgSQL dan hasil pertanyaan perantaraan.
Nilai geometri dua dimensi terbina dalam.Geometri satah mudah; lokasi dunia sebenar memerlukan PostGIS.
Pengecam objek sistem 4 bait tanpa tanda.Penyertaan katalog sistem; bukan untuk lajur aplikasi.
Rentetan pengecam dalaman 63 aksara.Pertanyaan katalog; text biasa untuk apa-apa yang dilihat pengguna.
Jenis sambungan
Pasangan kunci/nilai rentetan dalam satu nilai (sambungan).Peta rata; jsonb meliputi ini dengan lebih baik hari ini.
Laluan label hierarki seperti news.tech.ai (sambungan).Pokok dengan pertanyaan leluhur dan keturunan.
Teks yang dibandingkan tanpa mengira huruf besar/kecil (sambungan).Keunikan tidak sensitif huruf seperti e-mel, tanpa indeks lower().
Objek geografi dan geometri daripada sambungan PostGIS.Pertanyaan jarak, kandungan dan indeks spatial.
Fungsi sambungan yang menjana nilai UUID.Penjanaan lama; sejak PG 13, gen_random_uuid() terbina dalam.