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

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ış tür olabilir. Bunun dışında diziler önemli bir rol oynamaktadır. PostgreSQL.

Karşılık gelen her PostgreSQL veri türü ilgili dizi türüyle birlikte gelir. Örneğin, tamsayı veri türü tamsayı[] dizi türüne sahiptir, karakter veri türü ise karakter[] dizi türüne sahiptir, vb.

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şimin değerleri bir dizi olarak eklenmiştir. Bu, ARRAY yapıcısının kullanılmasıyla başarılmıştır.

Bu örnekte, bunları köşeli parantez [ ] içine aldık. Alice John adlı çalışan için iki kişimiz 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 deyimini kullanırız.

Employees tablomuzun içeriğini görmek için aşağıdaki komutu çalıştırıyoruz:

SELECT * FROM Employees;

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

Dizi Verilerini Sorgulama

Dizi sütununun elemanları, yani temas, küme parantezleri {} içine alınmıştır.

Dizi elemanlarına erişmek için köşeli parantez [] içinde bir alt simge ekleriz. Dizideki ilk eleman 1. konumdadır.

Örneğin, birden fazla bağlantısı olan çalışanlar için çalışanların adlarını ve yalnızca ilk iletişim bilgilerini almamız gerekiyor. Buna kişi[1] olarak erişebiliriz.

Şunu görelim:

SELECT name, contact[1]
FROM Employees;

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

Dizi Verilerini Sorgulama

Dizi sütununa göre satırları filtrelemek için SELECT deyimini WHERE deyimiyle birlikte kullanabiliriz.

Örneğin, (408)-567-78234 numaralı çalışanı ikinci kişi olarak 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ünü veya tek bir öğesini güncelleyebilirsiniz.

Çalışanlar tablosunun içeriği şunlardır:

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 dizisi içindeki konumdan bağımsız olarak (408)-783-5731 bağlantısının kime ait olduğunu bilmemiz gerektiğini varsayalım, aşağıda gösterildiği gibi ANY() işlevini 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 bölebiliriz. Bu işleme dizi genişletme adı verilir.

Çalışanlar tablosu örneğinde, kişi dizisinde iki kişi bulunan bazı çalışanlar vardır. Bunları ayrı satırlara bölebiliriz.

PostgreSQL bunun 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 bağlantısı var. Ayrı satırlara bölebiliriz.

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 rbase'lere 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 küme parantezleri kullanmak için

) 1 Adım 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"}'
   );

Adım 2) 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üzenleyicisinde 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şimlerini görmek için:

  1. Sorgu düzenleyicisine aşağıdaki sorguyu yazın:
    SELECT name, contact[1]
    FROM Employees;
    
  2. 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

) 4 Adım SELECT deyimini WHERE deyimiyle birleştirmek için:

  1. Sorgu düzenleyicide aşağıdaki komutu yazın:
    SELECT
       name
    FROM
       Employees
    WHERE
       contact [ 2 ] = '(408)-567-78234';
    
  2. 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

Değiştirme PostgreSQL Dizi

) 1 Adım 3 kimlikli 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

1.Değişikliğin başarılı olup olmadığını kontrol etmek için sorgu düzenleyicide aşağıdaki komutu yazın:

SELECT * FROM Employees;

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

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

ÖZET

  • PostgreSQL bir tablo sütununu dizi türü olarak tanımlamamızı sağlar.
  • Dizi geçerli bir dizi olmalıdır veri tipi tamsayı, karakter veya kullanıcı tanımlı türler gibi.
  • Bir dizi sütununa değer eklemek için ARRAY yapıcısını kullanırız.
  • Bir dizi sütununun aynı satırında birden fazla öğe varsa ilk öğe 1 konumundadır.
  • Her değere, köşeli parantez [ ] içinde bir alt simge geçirilerek erişilebilir.
  • Dizinin elemanları SELECT deyimi kullanılarak alınabilir.
  • Dizi sütununun değerleri köşeli parantez [] veya süslü parantez {} içine alınabilir.
  • ANY() fonksiyonunu kullanarak dizi sütun değerlerini arayabiliriz.

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