PostgreSQL Birlik, Birlik ALL Örneklerle

⚡ Akıllı Özet

PostgreSQL UNION, iki veya daha fazla SELECT sorgusunun sonuçlarını tek bir sonuç kümesinde birleştirir ve yinelenen satırları kaldırır; UNION ALL ise her satırı koruyarak, yinelenen satırların önemli olmadığı durumlarda daha hızlı bir seçenek sunar.

  • 🔗 birleştirin: UNION, birden fazla SELECT sorgusundan gelen satırları tek bir sonuç kümesinde birleştirir.
  • 🧹 çoğaltmaları: UNION yinelenen satırları kaldırırken, UNION ALL eşleşen tüm satırları korur.
  • 📐 Kurallar: Her SELECT sorgusu, uyumlu veri tiplerine sahip aynı sayıda sütun döndürmelidir.
  • ↕️ TARAFINDAN SİPARİŞ: En sondaki tek bir ORDER BY ifadesi, birleştirilmiş sonuç kümesini sıralar.
  • Performans: UNION ALL komutu, yinelenen kayıtları kaldırma adımını atladığı için daha hızlı çalışır.
  • 🤖 Yapay Zeka Yardımı: Yapay zekâ asistanları sütunları hizalar ve BİRLEŞTİR (UNION) veya TÜMÜNÜ BİRLEŞTİR (UNION ALL) seçeneklerinden birini seçer.

PostgreSQL BİRLİK ve BİRLİK HEPSİ

Nedir? PostgreSQL Birlik?

MKS PostgreSQL UNION operatörü, birden fazla SELECT ifadesinden gelen sonuç kümelerini tek bir sonuç kümesinde birleştirmek için kullanılır. SELECT ifadelerinin sonuçlarından gelen yinelenen satırlar ortadan kaldırılır. UNION operatörü iki koşul altında çalışır:

  • SELECT sorguları aynı sayıda sütun döndürmelidir.
  • İlgili tüm sütunların veri türleri uyumlu olmalıdır.

UNION operatörü normalde mükemmel şekilde normalleştirilmemiş ilgili tablolardaki verileri birleştirmek için kullanılır.

Sözdizimi

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Yukarıdaki parametreler için bir açıklama:

İfade_1, ifade_2, … ifade_n, almanız gereken hesaplamalar veya sütunlardır.

Tablolar, kayıtları almanız gereken tablolardır.

WHERE koşulları, kayıtların alınması için karşılanması gereken koşullardır.

Not: UNION operatörü yinelenen değerleri döndürmediğinden, UNION DISTINCT kullanımının sonuçlar üzerinde hiçbir etkisi olmayacaktır.

PostgreSQL sendika

UNION operatörü, tıpkı şu şekilde olduğu gibi, yinelenenleri kaldırır: AYRI SEÇ Evet, öyle. Bunu gösterelim. Demo adında, aşağıdaki tabloları içeren bir veritabanımız var:

Kitap:

PostgreSQL sendika

Fiyat:

PostgreSQL sendika

Aşağıdaki komutu çalıştıralım:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

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

PostgreSQL sendika

Kimlik sütunu hem Kitap hem de Fiyat tablolarında görünür. Ancak sonuçta yalnızca bir kez görünür. Sebebi şudur PostgreSQL UNION operatörü yinelenen değerleri döndürmez.

PostgreSQL Birlik Tümü

Bu operatör, birden fazla SELECT ifadesinin sonuç kümelerini kopyaları kaldırmadan birleştirir. Operatör, her SELECT ifadesinin benzer veri türlerinden oluşan sonuç kümelerinde benzer sayıda alana sahip olmasını gerektirir.

Sözdizimi:

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION ALL
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Yukarıdaki parametreler için bir açıklama:

İfade_1, ifade_2, … ifade_n, almanız gereken hesaplamalar veya sütunlardır.

Tablolar, kayıtları almanız gereken tablolardır.

WHERE koşulları, kayıtların alınması için karşılanması gereken koşullardır.

Not: Her iki SELECT sorgusu da eşit sayıda ifade içermelidir.

Aşağıdaki tabloları kullanacağız:

Kitap:

PostgreSQL Birlik Tümü

Fiyat:

PostgreSQL Birlik Tümü

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

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

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

PostgreSQL Birlik Tümü

Kopyalar kaldırılmadı.

TARAFINDAN SİPARİŞ

MKS PostgreSQL UNION operatörü, sorgu sonuçlarını sıralamak için ORDER BY ifadesiyle birlikte kullanılabilir. Bunu göstermek için aşağıdaki tabloları kullanacağız:

Fiyat:

TARAFINDAN SİPARİŞ

Fiyat2:

TARAFINDAN SİPARİŞ

UNION operatörünün ORDER BY yan tümcesiyle birlikte nasıl kullanılacağını gösteren komut:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price;

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

TARAFINDAN SİPARİŞ

Kayıtlar fiyat sütununa göre sıralandı. Madde, kayıtları varsayılan olarak artan sırada sıralar. Bunları azalan sırada sıralamak için DESC yan tümcesini aşağıda gösterildiği gibi ekleyin:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

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

TARAFINDAN SİPARİŞ

Kayıtlar fiyat sütununa göre azalan şekilde sıralanmıştır.

Union ne zaman, Union All ne zaman kullanılır?

Benzer yapıya sahip ancak bir nedenle ayrılmış birden fazla tablonuz olduğunda UNION operatörünü kullanın. Yinelenen kayıtları kaldırmanız veya ortadan kaldırmanız gerektiğinde faydalıdır.

Yinelenen kayıtları kaldırmanız veya ortadan kaldırmanız gerekmediğinde UNION ALL operatörünü kullanın.

pgAdmin'i kullanma

Şimdi bu üç işlemin pgAdmin kullanılarak nasıl gerçekleştirildiğine bakalım.

Nasıl Kullanılır? PostgreSQL pgAdmin'i Kullanarak Birlik

Aşağıda, nasıl kullanılacağına dair adım adım bir süreç yer almaktadır. PostgreSQL pgAdmin aracılığıyla BİRLİK:

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

) 2 Adım Soldaki gezinme çubuğundan Veritabanları'na, ardından Demo'ya tıklayın.

Kullanım PostgreSQL pgAdmin'i Kullanarak Birlik

) 3 Adım Sorgu düzenleyicisine sorguyu yazın:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

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

Kullanım PostgreSQL pgAdmin'i Kullanarak Birlik

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

Kullanım PostgreSQL pgAdmin'i Kullanarak Birlik

Birlik Tümü

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

) 2 Adım Soldaki gezinme çubuğundan Veritabanları'na, ardından Demo'ya tıklayın.

Kullanım PostgreSQL Union Tümü pgAdmin'i Kullanarak

) 3 Adım Sorgu düzenleyicisine sorguyu yazın:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

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

Kullanım PostgreSQL Union Tümü pgAdmin'i Kullanarak

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

Kullanım PostgreSQL Union Tümü pgAdmin'i Kullanarak

TARAFINDAN SİPARİŞ

UNION ALL operatörü, sonuç kümesindeki sonuçları sıralamak için ORDER BY deyimiyle birleştirilebilir. Örneğin:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price
ORDER BY id;

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

Kullanım PostgreSQL SİPARİŞ BY pgAdmin'i Kullanarak

Sonuçlar sipariş edildi.

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

SSS

UNION ALL, satırları basitçe birleştirdiği için daha hızlıdır. UNION ise yinelenenleri kaldırmak için birleştirilen satırları sıralamalı veya karma işlemine tabi tutmalıdır, bu da ek yük getirir. Yinelenenlerin önemi olmadığında, UNION ALL daha verimli bir seçenektir.

Evet. Bir UNION içindeki her SELECT sorgusu aynı sayıda sütun döndürmeli ve eşleşen sütunların aynı sırada uyumlu veri tiplerine sahip olması gerekir. Aksi takdirde PostgreSQL Bir hata oluşuyor ve sorgu başarısız oluyor.

Evet. Sütun adları farklı olabilir çünkü UNION işlemi sütunları adlarına göre değil, konumlarına göre eşleştirir. Veri türlerinin yine de uyumlu olması gerekir ve sonuç kümesi ilk SELECT ifadesindeki sütun adlarını kullanır.

UNION işlemi, iki sonuç kümesinin satırlarını dikey olarak tek bir sütun listesine yığar ve tekrarları kaldırır. JOIN işlemi ise farklı tablolardaki sütunları, ilişkili bir anahtar temelinde yatay olarak birleştirir; bu nedenle satırları eklemek yerine genişletir.

ORDER BY, nihai birleştirilmiş sonucu sıralar, bu nedenle PostgreSQL Bu, son SELECT ifadesinden sonra yalnızca bir ORDER BY ifadesine izin verir. Satırları birleştirildikten sonra, ayrı ayrı sorguları önce sıralamak anlamsız olacaktır.

GitHub Copilot gibi yapay zeka asistanları, her SELECT sorgusunun sütun listelerini hizalar, uyumsuz veri türlerini işaretler ve yinelenen kayıtların saklanıp saklanmayacağına bağlı olarak UNION veya UNION ALL önerir; böylece yaygın sorgu hataları azalır.

Evet. Yapay zekâ destekli bir asistan, tablolarınızı ve amacınızı inceleyerek yinelenen satırların mümkün ve anlamlı olup olmadığını belirleyebilir ve hız kazanmak için yinelenen satırlar kabul edilebilir olduğunda UNION ALL, kaldırılması gerektiğinde ise UNION önerebilir.

UNION, her iki sorguda da bulunan satırları döndürür. INTERSECT yalnızca her iki sorguda da bulunan satırları döndürür ve EXCEPT ise ilk sorguda bulunan ancak ikinci sorguda bulunmayan satırları döndürür. Her üçü de varsayılan olarak yinelenen kayıtları kaldırır.

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