PostgreSQL Veri Türleri: Karakter - Sayısal - İkili - Boole

İçindekiler:

Anonim

PostgreSQL, kullanıcılar için zengin bir yerel veri türleri kümesi sunar. Kullanıcılar CREATE TYPE komutu yardımıyla yeni tipler ekleyebilirler. Ayrıca sorguları daha basit ve daha okunaklı hale getirir.

PostgreSQL'de Veri Türleri

PostgreSQL aşağıdaki veri türlerini destekler:

  • Metin Türleri
  • Sayısal Türler
  • Tarihler ve Saatler
  • XML
  • JSON
  • Boole
  • Bitler
  • Ikili veri
  • Diziler
  • Veri Türünüzü Oluşturun
  • Boole
  • Geçici
  • UUID
  • Dizi
  • JSON
  • Bir ağ adresini ve geometrik verileri depolamak için özel Veri türleri.

PostgreSQL veri türlerini ayrıntılı olarak inceleyelim

  • Karakter Veri Türleri
  • Sayısal Veri Türleri
  • İkili Veri Türleri
  • Ağ Adresi Türü
  • Metin Arama Tipi
  • Tarih / Saat Veri Türleri
  • Boole Türü
  • Geometrik Veri Türleri
  • Numaralandırılmış Türler
  • Aralık Türü
  • UUID türü
  • XML türü
  • JSON Türü
  • Sözde Türler

Karakter Veri Türleri

PostgreSQL, metin değerlerini depolamak için karakter veri türlerini destekler. PostgreSQL, aynı dahili yapılardan karakter veri türleri oluşturur. PostgreSQL üç karakter veri türü sunar: CHAR (n), VARCHAR (n) ve TEXT.

İsim Soyisim Açıklama
varchar (n) Değişken uzunlukta bir sınır tanımlamanıza izin verir
Karakter (n) Sabit uzunlukta, boş yastıklı
Metin Sınırsız uzunlukta bir değişken bildirmek için bu veri türünü kullanabilir

Sayısal Veri Türleri

PostgreSQL iki farklı sayı türünü destekler:

  • Tamsayılar
  • Kayan nokta sayıları
İsim Soyisim Mağaza boyutu Aralık
Smallint 2 bayt -32768 ila +32767
tamsayı 4 bayt -2147483648 ile + 2147483647 arası
Bigint 8 bayt -9223372036854775808 ile 9223372036854775807
ondalık değişken Ondalık veri türü olarak bildirdiyseniz, ondalık noktadan önceki 131072 basamaktan ondalık noktadan sonraki 16383 basamağa kadar değişir.
sayısal değişken Sayı olarak bildirirseniz, ondalık noktadan önce 131072 haneye, ondalık noktadan sonra 16383 haneye kadar sayı ekleyebilirsiniz.
gerçek 4 bayt 6 ondalık basamak hassasiyeti
çift 8 bayt 15 ondalık basamak hassasiyeti

İkili Veri Türleri

İkili dizge, sekizli veya bayt dizisidir. İkili Postgres Veri Türleri iki şekilde ayrılır.

  • İkili diziler, sıfır değerindeki oranların depolanmasına izin verir
  • Yazdırılamayan sekizliler

Karakter dizileri sıfır sekizlilere izin vermez ve ayrıca veritabanının karakter kümesi kodlama kurallarına göre geçersiz olan diğer sekizli değerlerine ve dizilerine izin vermez.

İsim Soyisim Depolama boyutu Açıklama
Bayt 1 ila 4 bayt artı ikili dizenin boyutu Değişken uzunluklu ikili dize

Ağ Adresi Türü

Birçok uygulama, kullanıcıların IP adresi gibi ağ bilgilerini depolar veya

sensörler. PostgreSQL, ağ verilerini optimize etmenize yardımcı olan üç yerel türe sahiptir.

İsim Soyisim Boyut Açıklama
Elmadan yapılan bir içki 7 veya 19 bay IPV4 ve IPv6 ağları
Inet 7 veya 19 bayt IPV4 ve IPV5 ana bilgisayarı ve ağları
macaddr 6 bayt MAC adresleri

Ağ Adresi Türlerini kullanmanın aşağıdaki avantajları vardır

  1. Depolama Alanı Tasarrufu
  2. Giriş hatası kontrolü
  3. Verileri alt ağa göre aramak gibi işlevler

Metin Arama Tipi

PostgreSQL, tam metin aramayı desteklemek için tasarlanmış iki veri türü sağlar. Tam metin araması, bir sorguyla en iyi eşleşenleri aramak için bir dizi doğal dilde belgede arama yapmaktır.

  • Tsvector metin arama PostgreSQL değişken türleri, metin araması için optimize edilmiş bir formdaki bir belgeyi temsil eder
  • Sorgu türü metin araması, aranması gereken anahtar kelimeleri depolar

Tarih / Saat Veri Türleri

PostgreSQL zaman damgası, ikinci hassasiyet yerine mikrosaniye hassasiyet sunar. Üstelik saat dilimi ile veya olmadan da kaydetme seçeneğine sahipsiniz. PostgreSQL, zaman dilimli zaman damgasını girişte UTC'ye dönüştürür ve saklar.

Tarih ve saat girişi, geleneksel Postgres, ISO 8601 dahil olmak üzere çeşitli formatlarda kabul edilir. SQL uyumlu vb.

PostgreSQL, Gün / Ay / Yıl sıralamasını destekler. Desteklenen formatlar DMY, MDY, YMD'dir

Zamansal Veri Türleri

İsim Soyisim Boyut Aralık çözüm
Saat dilimi olmayan zaman damgası 8 bayt MÖ 4713 - MS 294276 1 mikrosaniye / 14 basamak
Saat dilimi ile zaman damgası 8 bayt MÖ 4713 - MS 294276 1 mikrosaniye / 14 basamak
tarih 4 bayt MÖ 4713 - MS 294276 Bir gün
Saat dilimi olmayan zaman 8 bayt 00:00:00 - 24:00:00 1 mikrosaniye / 14 basamak
Saat dilimi ile zaman 12 bayt 00:00:00 + 1459 için 24:00: 00-1459 1 mikrosaniye / 14 basamak
Aralık 12 bayt -178000000 ila 178000000 yıl 1 mikrosaniye / 14 basamak

Örnekler:

Giriş Açıklama
2025-09-07 Herhangi bir tarih stiliyle ISO 8601, 7 Eylül (önerilen biçim)
7 Eylül 2025 Herhangi bir tarih stilinde 7 Eylül
07.09.2025 MDY ile 7 Eylül, DMY ile 9 Temmuz
9/7/25 7 Eylül 2025, MDY ile
2025 Eylül 7 Herhangi bir tarih stilinde 7 Eylül
Eylül-7-2018 Herhangi bir tarih stilinde 7 Eylül
7-Eyl-25 7 Eylül 2025, YMD ile
20250907 ISO 8601,7 Eylül 20225 herhangi bir modda
2025.250 yıl ve yılın günü, bu durumda, 7 Eylül 2025
J25250 Julian tarihe

Zaman Dilimi Girişi ile Zaman / Saat

Giriş Açıklama
11: 19: 38.507 11:19:38 11:19 111938 ISO 8601
11:19 11:19 ile aynı
23:19 23:19 ile aynı
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, 23:19 EST ile aynı
23:19 EST EST olarak belirtilen saat dilimi, 23:19 EST ile aynı

Boole Türü

Bir Boole veri türü tutabilir

  • Doğru
  • Yanlış
  • boş

değerler.

Boolean veri türüne sahip bir sütun bildirmek için bir bool veya boolean anahtar sözcüğü kullanırsınız.

Bir boole sütununa değerler eklediğinizde, Postgre değerleri şu şekilde dönüştürür:

  • Evet
  • y
  • 1
  • t
  • doğru

1.

Değerler gibi iken

  • Hayır
  • N
  • 0
  • F
  • Yanlış

0'a dönüştürülür

Verileri seçerken değerler tekrar evet, doğru, y vb. Değerlere dönüştürülür.

Geometrik Veri Türleri

Geometrik veri türleri, iki boyutlu uzamsal nesneleri temsil eder. Döndürme, ölçekleme, çevirme vb. Gibi işlemleri gerçekleştirmeye yardımcı olurlar.

İsim Soyisim Depolama Boyutu Temsil Açıklama
Nokta 16 bayt Bir uçağa gelin (x, y)
Hat 32 bayt Sonsuz çizgi ((xl.yl). (x2.y2))
Lseg 32 bayt Sonlu çizgi parçası ((xl.yl). (x2.y2))
Kutu 32 bayt Dikdörtgen Kutu ((xl.yl). (x2.y2))
Yol 16n + 16n bayt Yolu Kapat ve Aç ((xl.yl),…)
Çokgen 40 + 16n bayt Çokgen [(xl.yl)….]
Daire 24 bayt Daire <(xy) .r> (merkez noktası ve yarıçap)

Numaralandırılmış Türler

Numaralandırılmış PostgreSQL veri türü, ülke kodu veya şube kimliği gibi nadiren değişen bilgileri temsil etmek için kullanışlıdır. Numaralandırılmış veri türü, veri bütünlüğünü sağlamak için yabancı anahtarlarla bir tabloda temsil edilir.

Misal:

Saç rengi, demografik bir veritabanında oldukça durağandır

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

Aralık Türü

Birçok iş uygulaması, aralıklarda veri gerektirir. Aralıklarla ilgilenmek için genellikle iki sütun (örnek: başlangıç ​​tarihi, bitiş tarihi) tanımlanır. Bu hem verimsizdir hem de sürdürülmesi zordur.

Postgre, aralık türlerini aşağıdaki gibi oluşturmuştur

  • int4range - Tamsayı aralığını görüntüler
  • int8range - Bigint aralığını görüntüler
  • numrange - Sayısal aralığı gösterir
  • tstrange - Saat dilimi olmadan zaman damgasını görüntülemenize yardımcı olur
  • garip - Saat dilimiyle birlikte zaman damgası görüntülemenizi sağlar
  • tarih aralığı - Tarih aralığı

UUID türü

Evrensel Olarak Benzersiz Tanımlar (UUID), bir algoritma tarafından oluşturulan 128 bitlik bir miktardır. Aynı tanımlayıcının dünyadaki başka bir kişi tarafından aynı algoritmayı kullanarak üretilmesi pek olası değildir. Bu nedenle, dağıtılmış sistemler için bu tanımlayıcılar, tek bir veritabanı içinde benzersizlik sunduğu için ideal bir seçimdir. Bir UUID, kısa çizgilerle ayrılmış çeşitli gruplarla küçük harfli onaltılık rakamlardan oluşan bir grup olarak yazılır.

PostgreSQL, 16 bayt depolama tüketen yerel bir UUID veri türüne sahiptir… UUID, birincil anahtarlar için ideal bir Veri türüdür.

Misal:

d5f28c97-b962-43be-9cf8-ca1632182e8e

Postgre ayrıca tüm büyük harf, tire, kaşlı ayraç vb. Gibi alternatif UUID girdileri biçimlerini de kabul eder.

XML türü

PostgreSQL, XML verilerini bir veri türünde saklamanıza izin verir, ancak bir metin veri türünün uzantısından başka bir şey değildir. Ancak avantajı, giriş XML'sinin iyi biçimlendirilmiş olup olmadığını kontrol etmesidir.

Misal:

XMLPARSE (DOCUMENT 'Data Type')

JSON Türü

JSON verilerini depolamak için PostgreSQL 2 veri türü sunar

  1. JSON
  2. JSONB
json Jsonb
JSON doğrulamalı bir metin veri türünün basit bir uzantısı JSON verilerinin ikili gösterimi
Ekleme hızlıdır ancak veri erişimi nispeten yavaştır. Ekleme yavaş ama seçin (veri alma hızlıdır)
Girilen verileri tam olarak boşlukları içerdiği şekilde kaydeder. İndekslemeyi destekler. Geri alma işlemini hızlandırmak için beyaz alanı optimize edebilir.
Veri alımında yeniden işleme Veri alımında yeniden işleme gerek yoktur

JSON veri türünü kullanmak için özel bir ihtiyaç olmadıkça, en yaygın olarak kullanılan JSON veri türü bizi jsonb kullandı.

Misal:

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}');

Sözde Türler

PostgreSQL, sözde türler adı verilen birçok özel amaçlı girdiye sahiptir. Sözde türleri PostgreSQL sütun türleri olarak kullanamazsınız. İşlevin argümanını veya dönüş türünü bildirmek için kullanılır.

Kullanılabilir sözde türlerin her biri, bir işlevin davranış belgelerinin yalnızca belirli bir SQL veri türünün bir değerini almaya veya döndürmeye karşılık gelmediği durumlarda yararlıdır.

İsim Soyisim Açıklama
Hiç Fonksiyon tüm girdi veri tiplerini kabul eder.
Bir dizi İşlev, herhangi bir dizi veri türünü kabul eder.
Herhangi bir öğe İşlev herhangi bir veri türünü kabul eder.
Herhangi bir sıralama İşlev, herhangi bir enum veri türünü kabul eder.
Düzensiz İşlev, dizi olmayan herhangi bir veri türünü kabul eder.
Cstring İşlev, boş sonlandırılmış C dizesini kabul eder veya döndürür.
İç Dahili işlev, sunucu dahili veri türünü kabul eder veya döndürür.
Language_handler Dil işleyicisini döndürdüğü bildirildi.
Kayıt Belirtilmemiş bir satır türü döndüren bir işlev bulun.
Tetikleyici Tetiği geri döndürmek için bir tetik işlevi kullanılır.

Bu işlevi kullanan kullanıcının, bağımsız değişken türü olarak sözde tür kullanıldığında işlevin güvenli bir şekilde davranacağından emin olması önemlidir.

Veri türlerini kullanan en iyi uygulamalar

  • Girişi sınırlamak istemediğiniz sürece "metin" veri türünü kullanın
  • Asla "char" kullanmayın.
  • Tamsayılar "int" kullanır. Bigint'i yalnızca gerçekten büyük sayılarınız olduğunda kullanın
  • Neredeyse her zaman "sayısal" kullanın
  • IEEE 754 veri kaynağınız varsa PostgreSQL'de float kullanın

Özet

  • PostgreSQL, kullanıcılar için zengin bir yerel veri türleri kümesi sunar
  • PostgreSQL, metin değerlerini depolamak için karakter veri türlerini destekler
  • PostgreSQL iki farklı sayı türünü destekler: 1. Tamsayılar, 2. Kayan noktalı sayılar
  • İkili dizge, bayt veya sekizli dizisidir
  • PostgreSQL, ağ verilerinin depolanmasını optimize etmenize yardımcı olacak Ağ adres türüne sahiptir
  • Metin arama PostgreSQL veri yapıları, tam metin aramayı desteklemek için tasarlanmıştır
  • Tarih / Saat PSQL veri türleri, çeşitli biçimlerde tarih ve saat bilgilerine izin verir
  • Boolean Postgres alan türleri üç değer tutabilir 1. Doğru 2. Yanlış 3. Boş
  • Geometrik PostgreSQL veri türleri iki boyutlu uzamsal nesneleri temsil eder
  • PostgreSQL'deki Numaralandırılmış Veri türleri, ülke kodu veya şube kimliği gibi nadiren değişen bilgileri temsil etmek için kullanışlıdır.
  • Evrensel Olarak Benzersiz Tanımlar (UUID), bir algoritma tarafından oluşturulan 128 bitlik bir miktardır
  • PostgreSQL, sözde türler adı verilen birçok özel amaçlı girdiye sahiptir.
  • Girişi sınırlamak istemediğiniz sürece "metin" veri türünü kullanmak en iyi uygulamadır