PostgreSQL Dizi: İşlevler, Tür, Örnek

⚡ Akıllı Özet

PostgreSQL Array, bir tablo sütununu geçerli herhangi bir veri türünde bir dizi olarak tanımlamanıza olanak tanır. Dizi sütunları oluşturmayı, ARRAY yapıcı fonksiyonu veya süslü parantezlerle değer eklemeyi, öğeleri sorgulamayı ve değiştirmeyi ve ANY() ile arama yapmayı kapsar.

  • ???? Tanım: Farketmez PostgreSQL Veri türünün, integer[] gibi eşleşen bir dizi türü vardır.
  • 🧱 Oluştur ve Ekle: TEXT[] sütunlarını ve ARRAY yapıcıyı veya süslü parantezleri kullanın.
  • 🔎 Sorgu: Alt indisli öğelere erişin; ilk öğe 1. konumdadır.
  • ✏️ Değiştir ve Ara: ANY() fonksiyonu ile tek tek öğeleri ve arama değerlerini güncelleyin.
  • Expand: unnest() fonksiyonu dizi değerlerini ayrı satırlara böler.

PostgreSQL Dizi

Nedir? PostgreSQL Sıralamak?

In PostgreSQLBir sütunu geçerli veri türlerinden oluşan bir dizi olarak tanımlayabiliriz. Veri türü yerleşik, kullanıcı tanımlı veya numaralandırılmış bir tür olabilir. Bunun dışında, diziler önemli bir rol oynar. PostgreSQL.

Karşılık gelen her PostgreSQL Veri türü, ilgili bir dizi türüyle birlikte gelir. Örneğin, tamsayı veri türü integer[] dizi türüne, karakter veri türü character[] dizi türüne sahiptir ve benzer şekilde devam eder.

Oluşturma PostgreSQL Diziler

Aşağıdaki örnekte, iletişim sütunu metin dizisi olarak tanımlanmış Çalışanlar adında bir tablo oluşturacağız:

CREATE TABLE Employees (
   id int PRIMARY KEY,
   name VARCHAR (100),
   contact TEXT []
);

Komut başarıyla çalışmalıdır.

Oluşturma PostgreSQL Diziler

takma PostgreSQL Dizi Değerleri

Şimdi bize izin ver eklemek değerleri yukarıdaki tabloya ekleyin:

INSERT INTO Employees
VALUES
   (
      1,
      'Alice John',
      ARRAY [ '(408)-743-9045',
      '(408)-567-7834' ]
   );

Ekleme başarıyla çalışmalıdır.

takma PostgreSQL Dizi Değerleri

Üçüncü sütunun, yani iletişim bilgilerinin değerleri bir dizi olarak eklenmiştir. Bu, ARRAY yapıcı fonksiyonu kullanılarak gerçekleştirilmiştir. Bu örnekte, bunları köşeli parantezler [] içine aldık. Çalışan Alice John için iki iletişim bilgimiz var.

Aşağıda gösterildiği gibi süslü parantezleri {} kullanmamız hala mümkündür:

INSERT INTO Employees
VALUES
   (
    2,
      'Kate Joel',
      '{"(408)-783-5731"}'
   ),
   (
      3,
      'James Bush',
      '{"(408)-745-8965","(408)-567-78234"}'
   );

Komut başarıyla çalışmalıdır.

takma PostgreSQL Dizi Değerleri

Yukarıdaki ifadeler Employees tablosuna iki satır ekleyecektir. Kıvrımlı parantezler kullanıldığında, dizi tek tırnak işareti (') içine sarılırken, metin dizisi öğeleri çift tırnak işareti (") içine sarılır.

Dizi Verilerini Sorgulama

Bir dizinin elemanlarını sorgulamak için SELECT ifadesini kullanırız. Çalışanlar tablosunun içeriğini görmek için aşağıdaki komutu çalıştırırız:

SELECT * FROM Employees;

Bu, aşağıdakileri döndürür:

Dizi Verilerini Sorgulama

Dizi sütununun elemanları, yani "contact" (iletişim) elemanları, süslü parantezler {} içine alınmıştır. Dizi elemanlarına erişmek için, köşeli parantezler [] içine bir alt indis ekleriz. Bir dizinin ilk elemanı 1. konumdadır.

Örneğin, çalışanların adlarını ve birden fazla iletişim kişisi olan çalışanlar için yalnızca ilk iletişim kişisini almamız gerekiyor. Buna contact[1] olarak erişebiliriz. Bunu inceleyelim:

SELECT name, contact[1]
FROM Employees;

Aşağıdakini döndürecektir:

Dizi Verilerini Sorgulama

SELECT ifadesini WHERE yan tümcesiyle birlikte kullanarak, dizi sütununa göre satırları filtreleyebiliriz. Örneğin, ikinci kişi olarak (408)-567-78234'e sahip çalışanı görmek için aşağıdaki komutu çalıştırabiliriz:

SELECT
   name
FROM
   Employees
WHERE
   contact [ 2 ] = '(408)-567-78234';

Aşağıdakini döndürecektir:

Dizi Verilerini Sorgulama

Değiştirme PostgreSQL Dizi

Bir dizinin tüm öğelerini veya yalnızca bir öğesini güncelleyebilirsiniz. İşte Çalışanlar tablosunun içeriği:

Değiştirme PostgreSQL Dizi

Kimliği 3 olan çalışan James Bush'un ikinci telefon numarasını güncelleyelim:

Değiştirme PostgreSQL Dizi

Aşağıdaki komutu çalıştırın:

UPDATE Employees
SET contact [ 2 ] = '(408)-589-89347'
WHERE
   id = 3;

Komut başarıyla çalışmalıdır:

Değiştirme PostgreSQL Dizi

Değişikliğin başarılı olup olmadığını kontrol etmek için tabloyu sorgulayalım:

Değiştirme PostgreSQL Dizi

Değişiklik başarılı oldu.

Bir aramada PostgreSQL Dizi

Şu anda Çalışan tablomuz aşağıdaki gibidir:

Bir aramada PostgreSQL Dizi

Kişi dizisindeki konumundan bağımsız olarak (408)-783-5731 numaralı kişinin kime ait olduğunu bilmemiz gerektiğini varsayalım. Aşağıda gösterildiği gibi ANY() fonksiyonunu kullanabiliriz:

SELECT
   name,
   contact
FROM
   Employees
WHERE
   '(408)-783-5731' = ANY (contact);

Aşağıdakini döndürecektir:

Bir aramada PostgreSQL Dizi

Dizileri Genişletme

Bir dizinin değerlerini satırlara ayırabiliriz. Bu işleme dizi genişletme denir. Çalışanlar tablosu örneğinde, iletişim dizisinde iki kişiye ait iletişim bilgisi olan bazı çalışanlar bulunmaktadır. Bunları ayrı satırlara ayırabiliriz. PostgreSQL Bu işlem için kullanılabilecek unnest() fonksiyonunu sağlar. Örneğin:

SELECT
   name,
   unnest(contact)
FROM
   Employees;

Aşağıdakini döndürecektir:

Dizileri Genişletme

Çalışanlar Alice John ve James Bush'un iki iletişim bilgisi var. Bunları ayrı satırlara ayırabiliriz.

pgAdmin'i kullanma

Oluşturma PostgreSQL Diziler

Aynısını pgAdmin aracılığıyla gerçekleştirmek için şunu yapın:

) 1 Adım pgAdmin hesabınıza giriş yapın.

) 2 Adım

  1. Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
  2. Demo düğmesine tıklayın.

Oluşturma PostgreSQL pgAdmin Kullanan Diziler

) 3 Adım Çalışanlar tablosunu oluşturmak için sorgu düzenleyicisine sorguyu yazın:

CREATE TABLE Employees (
   id int PRIMARY KEY,
   name VARCHAR (100),
   contact TEXT []
);

) 4 Adım Yürüt düğmesine tıklayın.

Oluşturma PostgreSQL pgAdmin Kullanan Diziler

takma PostgreSQL Dizi Değerleri

) 1 Adım Sorgu düzenleyicisine aşağıdaki sorguyu yazın:

INSERT INTO Employees
VALUES
   (
      1,
      'Alice John',
      ARRAY [ '(408)-743-9045',
      '(408)-567-7834' ]
   );

) 2 Adım Yürüt düğmesine tıklayın:

takma PostgreSQL Dizi Değerleri

) 3 Adım Sorguda süslü parantez kullanmak için, sorgu düzenleyicisine aşağıdaki sorguyu yazın:

INSERT INTO Employees
VALUES
   (
    2,
      'Kate Joel',
      '{"(408)-783-5731"}'
   ),
   (
      3,
      'James Bush',
      '{"(408)-745-8965","(408)-567-78234"}'
   );

Ardından Yürüt düğmesine tıklayın:

takma PostgreSQL Dizi Değerleri

Dizi Verilerini Sorgulama

) 1 Adım Çalışanlar tablosunun içeriğini görmek için sorgu düzenleyicisine aşağıdaki sorguyu yazın:

SELECT * FROM Employees;

) 2 Adım Yürüt düğmesine tıklayın:

pgAdmin'i Kullanarak Dizi Verilerini Sorgulama

Aşağıdaki sonucu döndürmesi gerekir:

pgAdmin'i Kullanarak Dizi Verilerini Sorgulama

) 3 Adım Çalışanların ilk iletişim bilgilerini görmek için, sorgu düzenleyicisine aşağıdaki sorguyu yazın ve Yürüt düğmesine tıklayın:

SELECT name, contact[1]
FROM Employees;

pgAdmin'i Kullanarak Dizi Verilerini Sorgulama

Aşağıdaki sonucu döndürmesi gerekir:

pgAdmin'i Kullanarak Dizi Verilerini Sorgulama

) 4 Adım SELECT ifadesini WHERE yan tümcesiyle birleştirmek için, sorgu düzenleyicisine aşağıdaki komutu yazın ve Yürüt düğmesine tıklayın:

SELECT
   name
FROM
   Employees
WHERE
   contact [ 2 ] = '(408)-567-78234';

pgAdmin'i Kullanarak Dizi Verilerini Sorgulama

Aşağıdaki sonucu döndürmesi gerekir:

pgAdmin'i Kullanarak Dizi Verilerini Sorgulama

Değiştirme PostgreSQL Dizi

) 1 Adım Kimlik numarası 3 olan kullanıcının ikinci kişisini güncellemek için aşağıdaki komutu çalıştırın:

UPDATE Employees
SET contact [ 2 ] = '(408)-589-89347'
WHERE
   id = 3;

) 2 Adım Yürüt düğmesine tıklayın.

Değiştirme PostgreSQL pgAdmin'i Kullanarak Dizi

) 3 Adım Değişikliğin başarılı olup olmadığını kontrol etmek için sorgu düzenleyicisine aşağıdaki komutu yazın, ardından Yürüt düğmesine tıklayın:

SELECT * FROM Employees;

Değiştirme PostgreSQL pgAdmin'i Kullanarak Dizi

Aşağıdaki sonucu döndürmesi gerekir:

Değiştirme PostgreSQL pgAdmin'i Kullanarak Dizi

Bir aramada PostgreSQL Dizi

) 1 Adım Sorgu düzenleyicisine aşağıdaki sorguyu yazın:

SELECT
   name,
   contact
FROM
   Employees
WHERE
   '(408)-783-5731' = ANY (contact);

) 2 Adım Yürüt düğmesine tıklayın.

Bir aramada PostgreSQL pgAdmin'i Kullanarak Dizi

Aşağıdaki sonucu döndürmesi gerekir:

Bir aramada PostgreSQL pgAdmin'i Kullanarak Dizi

Dizileri Genişletme

) 1 Adım Sorgu düzenleyicisine aşağıdaki sorguyu yazın:

SELECT
   name,
   unnest(contact)
FROM
   Employees;

) 2 Adım Yürüt düğmesine tıklayın.

pgAdmin Kullanarak Dizileri Genişletme

Aşağıdaki sonucu döndürmesi gerekir:

pgAdmin Kullanarak Dizileri Genişletme

Bu Eğitimde kullanılan Veritabanını İndirin

SSS

Evet. Yapay zeka asistanları, dizi sütunlu CREATE TABLE ifadeleri, ARRAY veya süslü parantezler kullanan INSERT komutları ve unnest() veya ANY() gibi fonksiyonlar yazabilir. Oluşturulan SQL kodunu çalıştırmadan önce şemanızda test edin.

Evet. Yapay zeka araçları, verilerinize dizi sütunu mu yoksa normalleştirilmiş alt tablo mu daha uygun olduğunu önerebilir. Diziler küçük, sabit listeler için uygundur, ayrı tablolar ise büyük veya sık sorgulanan ilişkiler için uygundur. Sorgu kalıplarınızla doğrulayın.

array_length(array, dimension) fonksiyonunu kullanın. Örneğin, array_length(contact, 1) ifadesi, contact dizisinin birinci boyutundaki eleman sayısını döndürür.

Evet. array_append(array, value) fonksiyonunu veya birleştirme operatörü ||'yi kullanın. Örneğin, UPDATE Employees SET contact = array_append(contact, '(408)-000-0000') yeni bir öğe ekler.

Bu yazıyı şu şekilde özetleyin: