PostgreSQL Dizisi nedir?
PostgreSQL'de, bir sütunu geçerli veri türleri dizisi olarak tanımlayabiliriz. Veri türü yerleşik, kullanıcı tanımlı veya numaralandırılmış tür olabilir. Bunun dışında diziler PostgreSQL'de önemli bir rol oynar.
Karşılık gelen her PostgreSQL veri türü, ilgili bir dizi türü ile birlikte gelir. Örneğin, tamsayı veri türü tamsayı [] dizi türüne sahiptir, karakter veri türü [] dizi türüne vb. Sahiptir.
Bu PostgreSQL eğitiminde şunları öğreneceksiniz:
- PostgreSQL Dizisi nedir?
- PostgreSQL Dizileri Oluşturma
- PostgreSQL Dizi Değerlerini Ekleme
- Dizi Verilerini Sorgulama
- PostgreSQL Dizisini Değiştirme
- PostgreSQL Dizisinde Arama
- Genişleyen Diziler
- PgAdmin'i kullanma
PostgreSQL Dizileri Oluşturma
Aşağıdaki örnekte, metin dizisi olarak tanımlanan kişi sütunu ile Çalışanlar adlı 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.
PostgreSQL Dizi Değerlerini Ekleme
Şimdi yukarıdaki tabloya değerler ekleyelim:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Ekleme başarıyla çalışmalıdır.
Üçüncü sütunun değerleri, yani temas, bir dizi olarak eklenmiştir. Bu, ARRAY yapıcısı kullanılarak elde edilmiştir.
Bu örnekte, onları köşeli parantezler [] içine aldık. Çalışan Alice John için iki bağlantımız var.
Aşağıda gösterildiği gibi küme parantezi {} kullanmamız yine de mümkündür:
INSERT INTO EmployeesVALUES(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, Çalışanlar tablosuna iki satır ekleyecektir. Küme parantezi kullanılırken, metin dizisi öğeleri çift tırnak (") içine alınırken dizi tek tırnak (') içine alınır.
Dizi Verilerini Sorgulama
Bir dizinin elemanlarını sorgulamak için SELECT deyimini kullanırız.
Çalışanlar 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:
Temas olan dizi sütununun öğeleri, kaşlı ayraçlar {} içine alınmıştır.
Dizi elemanlarına erişmek için, köşeli parantezler [] içine bir alt simge ekleriz. Bir dizideki ilk öğe 1. konumdadır.
Örneğin, çalışanların adlarını ve birden fazla kişisi olan çalışanlar için yalnızca ilk temaslarını almamız gerekiyor. Buna kişi [1] olarak erişebiliriz.
Şuna bir bakalım:
SELECT name, contact[1]FROM Employees;
Bu, aşağıdakileri döndürecektir:
Satırları dizi sütununa göre filtrelemek için SELECT deyimini WHERE yan tümcesi ile birlikte kullanabiliriz.
Örneğin, ikinci kişi olarak (408) -567-78234 olan çalışanı görmek için aşağıdaki komutu çalıştırabiliriz:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
Bu, aşağıdakileri döndürecektir:
PostgreSQL Dizisini Değiştirme
Bir dizinin tümünü veya tek bir öğesini güncelleyebilirsiniz.
Çalışanlar tablosunun içeriği şunlardır:
Kimliği 3 olan çalışan James Bush'un ikinci telefon numarasını güncelleyelim:
Aşağıdaki komutu çalıştırın:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 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.
PostgreSQL Dizisinde Arama
Şu anda Çalışanlar tablomuz aşağıdaki gibidir:
Temas dizisi içindeki konumdan bağımsız olarak (408) -783-5731 kişisine kimin sahip olduğunu bilmemiz gerektiğini varsayalım, ANY () işlevini aşağıda gösterildiği gibi kullanabiliriz:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Bu, aşağıdakileri döndürecektir:
Genişleyen Diziler
Bir dizinin değerlerini satırlara bölebiliriz. Bu işlem, dizi genişletme olarak bilinir.
Çalışanlar tablosu örneğinde, kişi dizisinde iki kişisi olan bazı çalışanlar vardır. Bunları ayrı sıralara ayırabiliriz.
PostgreSQL bunun için kullanılabilecek unnest () işlevini sağlar.
Örneğin:
SELECTname,unnest(contact)FROMEmployees;
Bu, aşağıdakileri döndürecektir:
Çalışanlar Alice John ve James Bush'un iki bağlantısı var. Ayrı sıralara ayrılabiliriz.
PgAdmin'i kullanma
PostgreSQL Dizileri Oluşturma
Aynısını pgAdmin aracılığıyla gerçekleştirmek için şunu yapın:
Adım 1) pgAdmin hesabınıza giriş yapın.
Adım 2)
- Soldaki gezinme çubuğundan rbases'i tıklayın.
- Demo düğmesine tıklayın
Adım 3) Çalışanlar tablosunu oluşturmak için sorguyu sorgu düzenleyicisine yazın:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Adım 4) Yürüt düğmesini tıklayın.
PostgreSQL Dizi Değerlerini Ekleme
Adım 1) Sorgu düzenleyicisine aşağıdaki sorguyu yazın:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Adım 2) Yürüt düğmesini tıklayın:
Aşama 3)
Sorguda küme parantezi kullanmak için
Adım 1) Sorgu düzenleyicisine aşağıdaki sorguyu yazın:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Adım 2) Yürüt düğmesini tıklayın:
Dizi Verilerini Sorgulama
Adım 1) Çalışanlar tablosunun içeriğini görmek için sorgu düzenleyicisine aşağıdaki sorguyu yazın:
SELECT * FROM Employees;
Adım 2) Yürüt düğmesini tıklayın:
Aşağıdakileri döndürmelidir:
Adım 3) Çalışanların ilk temaslarını görmek için:
- Sorgu düzenleyicisine aşağıdaki sorguyu yazın:
SELECT name, contact[1]FROM Employees;
- Yürüt düğmesini tıklayın.
Aşağıdakileri döndürmelidir:
Adım 4) SELECT deyimini WHERE yan tümcesi ile birleştirmek için:
- Sorgu düzenleyicisine aşağıdaki komutu yazın:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- Yürüt düğmesini tıklayın.
Aşağıdakileri döndürmelidir:
PostgreSQL Dizisini Değiştirme
Adım 1) 3 numaralı kullanıcının ikinci kişisini güncellemek için aşağıdaki komutu çalıştırın:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Adım 2) Yürüt düğmesini tıklayın.
Aşama 3)
1. Değişikliğin başarılı olup olmadığını kontrol etmek için sorgu düzenleyicisine aşağıdaki komutu yazın:
SELECT * FROM Employees;
2. Yürüt düğmesine tıklayın.
Aşağıdakileri döndürmelidir:
PostgreSQL Dizisinde Arama
Adım 1) Sorgu düzenleyicisine aşağıdaki sorguyu yazın:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Adım 2) Yürüt düğmesini tıklayın.
Aşağıdakileri döndürmelidir:
Genişleyen Diziler
Adım 1) Sorgu düzenleyicisine aşağıdaki sorguyu yazın:
SELECTname,unnest(contact)FROMEmployees;
Adım 2) Yürüt düğmesini tıklayın.
Aşağıdakileri döndürmelidir:
Özet:
- PostgreSQL, bir tablo sütununu bir dizi türü olarak tanımlamamıza izin verir.
- Dizi, tamsayı, karakter veya kullanıcı tanımlı türler gibi geçerli bir veri türünde olmalıdır.
- 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. konumdadır.
- Her değere, köşeli parantezler [] içinde bir alt simge geçirilerek erişilebilir.
- Dizinin öğeleri, SELECT ifadesi kullanılarak alınabilir.
- Dizi sütununun değerleri köşeli parantezler [] veya küme parantezleri {} içine alınabilir.
- ANY () işlevini kullanarak dizi sütun değerlerini arayabiliriz.
Bu Eğitimde kullanılan Veritabanını indirin