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.
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.
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.
Üçü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.
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 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:
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:
Değiştirme PostgreSQL Dizi
Bir dizinin tüm öğelerini veya yalnızca bir öğesini güncelleyebilirsiniz. İşte Çalışanlar tablosunun içeriği:
Kimliği 3 olan çalışan James Bush'un ikinci telefon numarasını güncelleyelim:
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şikliğin başarılı olup olmadığını kontrol etmek için tabloyu sorgulayalım:
Değişiklik başarılı oldu.
Bir aramada PostgreSQL Dizi
Şu anda Çalışan tablomuz aşağıdaki gibidir:
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:
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:
Ç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
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo düğmesine tıklayın.
) 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.
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:
) 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:
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:
Aşağıdaki sonucu döndürmesi gerekir:
) 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;
Aşağıdaki sonucu döndürmesi gerekir:
) 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';
Aşağıdaki sonucu döndürmesi gerekir:
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.
) 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;
Aşağıdaki sonucu döndürmesi gerekir:
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.
Aşağıdaki sonucu döndürmesi gerekir:
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.
Aşağıdaki sonucu döndürmesi gerekir:
Bu Eğitimde kullanılan Veritabanını İndirin































