Birleşimler hakkında her şey

PostgreSQL'de Sorgu Performansını İyileştirme

Amy McCarty

Instructor

Kurs özeti

  • Sorgu yapısı: birleşimler, alt sorgular, geçici tablolar
  • Veriyi sınırlama ve özetleme
  • Depolama özellikleri ve iyileştirme araçları
  • Sorgu planlama ve yürütme
PostgreSQL'de Sorgu Performansını İyileştirme

Sorgu planlayıcı

Sorgu

  • SQL talimatları

Bir restoran garsonu

Sorgu (yürütme) planı

  • Gerçek adımlar

Büyük bir tencerenin etrafında birden çok şef

PostgreSQL'de Sorgu Performansını İyileştirme

Sorgu planlayıcı

Yemek getiren garson

İçecek getiren garson

PostgreSQL'de Sorgu Performansını İyileştirme

 

Birleşim nedir?

  • Birden çok tabloyu birleştirir
PostgreSQL'de Sorgu Performansını İyileştirme

 

Birleşim nedir?

  • Birden çok tabloyu birleştirir

Neden birleşim kullanılır?

  • Bakış tabloları
  • Verileri birleştirme

Nasıl?

  • İç ve dış

 

Satış ID Sipariş Trh Tutar Müş No
01 2019-02-02 145.30 911

 

ID Ad Müşteri Ol.
911 Jim Smith 2019-01-01

 

Satış ID Sipariş Trh Tutar Ad
01 2019-02-02 145.30 Jim Smith
PostgreSQL'de Sorgu Performansını İyileştirme

İç birleşimler

Dört kaydı olan bir atlet tablosu: atlet ve ülke. Jack - AUT. Aditya - IND. Mikhail - RUS. Javier - MEX. Dört kaydı olan bir ülke tablosu: ülke, ad, nüfus (milyon). AUT - Avusturya - 9. IND - Hindistan - 1.339. RUS - Rusya - 145. BRA - Brezilya - 209

SELECT *
FROM athletes a
INNER JOIN countries c
ON a.country = c.country

 

 

 

Atlet Ülke Ülke1 Ad Nüfus (mn)
Jack AUT AUT Avusturya 9
Aditya IND IND Hindistan 1.339
Mikhail RUS RUS Rusya 145
PostgreSQL'de Sorgu Performansını İyileştirme

İç birleşimler

Dört kaydı olan bir atlet tablosu: atlet ve ülke. Jack - AUT. Aditya - IND. Mikhail - RUS. Javier - MEX. Son kayıt kalın. Dört kaydı olan bir ülke tablosu: ülke, ad, nüfus (milyon). AUT - Avusturya - 9. IND - Hindistan - 1.339. RUS - Rusya - 145. BRA - Brezilya - 209. Son kayıt kalın.

SELECT *
FROM athletes a
INNER JOIN countries c
ON a.country = c.country

 

 

 

Atlet Ülke Ülke1 Ad Nüfus (mn)
Jack AUT AUT Avusturya 9
Aditya IND IND Hindistan 1.339
Mikhail RUS RUS Rusya 145
PostgreSQL'de Sorgu Performansını İyileştirme

USING ile iç birleşim

Dört kaydı olan bir atlet tablosu: atlet ve ülke. Jack - AUT. Aditya - IND. Mikhail - RUS. Javier - MEX. Dört kaydı olan bir ülke tablosu: ülke, ad, nüfus (milyon). AUT - Avusturya - 9. IND - Hindistan - 1.339. RUS - Rusya - 145. BRA - Brezilya - 209

SELECT *
FROM athletes
INNER JOIN countries
USING (country)

 

 

 

Atlet Ülke Ad Nüfus (mn)
Jack AUT Avusturya 9
Aditya IND Hindistan 1.339
Mikhail RUS Rusya 145
PostgreSQL'de Sorgu Performansını İyileştirme

USING ile iç birleşim

Dört kaydı olan bir atlet tablosu: atlet ve ülke. Jack - AUT. Aditya - IND. Mikhail - RUS. Javier - MEX. Son kayıt kalın. Dört kaydı olan bir ülke tablosu: ülke, ad, nüfus (milyon). AUT - Avusturya - 9. IND - Hindistan - 1.339. RUS - Rusya - 145. BRA - Brezilya - 209. Son kayıt kalın.

SELECT *
FROM athletes
INNER JOIN countries
USING (country)

 

 

 

Atlet Ülke Ad Nüfus (mn)
Jack AUT Avusturya 9
Aditya IND Hindistan 1.339
Mikhail RUS Rusya 145
PostgreSQL'de Sorgu Performansını İyileştirme

Sol dış birleşim

Dört kaydı olan bir atlet tablosu: atlet ve ülke. Jack - AUT. Aditya - IND. Mikhail - RUS. Javier - MEX. Dört kaydı olan bir ülke tablosu: ülke, ad, nüfus (milyon). AUT - Avusturya - 9. IND - Hindistan - 1.339. RUS - Rusya - 145. BRA - Brezilya - 209

SELECT *
FROM athletes a
LEFT JOIN countries c
ON a.country = c.country

 

 

Atlet Ülke Ülke1 Ad Nüfus (mn)
Jack AUT AUT Avusturya 9
Aditya IND IND Hindistan 1.339
Mikhail RUS RUS Rusya 145
Javier MEX
PostgreSQL'de Sorgu Performansını İyileştirme

Sol dış birleşim

Dört kaydı olan bir atlet tablosu: atlet ve ülke. Jack - AUT. Aditya - IND. Mikhail - RUS. Javier - MEX.  Dört kaydı olan bir ülke tablosu: ülke, ad, nüfus (milyon). AUT - Avusturya - 9. IND - Hindistan - 1.339. RUS - Rusya - 145. BRA - Brezilya - 209. Son kayıt kalın.

SELECT *
FROM athletes a
LEFT JOIN countries c
ON a.country = c.country

 

 

Atlet Ülke Ülke1 Ad Nüfus (mn)
Jack AUT AUT Avusturya 9
Aditya IND IND Hindistan 1.339
Mikhail RUS RUS Rusya 145
Javier MEX
PostgreSQL'de Sorgu Performansını İyileştirme

Sağ dış birleşim

Dört kaydı olan bir atlet tablosu: atlet ve ülke. Jack - AUT. Aditya - IND. Mikhail - RUS. Javier - MEX. Dört kaydı olan bir ülke tablosu: ülke, ad, nüfus (milyon). AUT - Avusturya - 9. IND - Hindistan - 1.339. RUS - Rusya - 145. BRA - Brezilya - 209

SELECT *
FROM athletes a
RIGHT JOIN countries c
ON a.country = c.country

 

 

Atlet Ülke Ülke1 Ad Nüfus (mn)
Jack AUT AUT Avusturya 9
Aditya IND IND Hindistan 1.339
Mikhail RUS RUS Rusya 145
BRA Brezilya 209
PostgreSQL'de Sorgu Performansını İyileştirme

Sağ dış birleşim

Dört kaydı olan bir atlet tablosu: atlet ve ülke. Jack - AUT. Aditya - IND. Mikhail - RUS. Javier - MEX.  Son kayıt kalın. Dört kaydı olan bir ülke tablosu: ülke, ad, nüfus (milyon). AUT - Avusturya - 9. IND - Hindistan - 1.339. RUS - Rusya - 145. BRA - Brezilya - 209.

SELECT *
FROM athletes a
RIGHT JOIN countries c
ON a.country = c.country

 

 

Atlet Ülke Ülke1 Ad Nüfus (mn)
Jack AUT AUT Avusturya 9
Aditya IND IND Hindistan 1.339
Mikhail RUS RUS Rusya 145
BRA Brezilya 209
PostgreSQL'de Sorgu Performansını İyileştirme

Tam dış birleşim

SELECT *
FROM athletes a
FULL OUTER JOIN countries c
ON a.country = c.country
  • Sorgu (yürütme) planı

Büyük bir tencerenin etrafında birden çok şef

  • Sorgu planlayıcıyı sınırlar
Atlet Adı Ülke Ülke1 Ad Nüfus (mn)
Jack AUT AUT Avusturya 9
Aditya IND IND Hindistan 1.339
Mikhail RUS RUS Rusya 145
Javier MEX
BRA Brezilya 209
PostgreSQL'de Sorgu Performansını İyileştirme

Hadi pratik yapalım!

PostgreSQL'de Sorgu Performansını İyileştirme

Preparing Video For Download...