SORU
11 ŞUBAT 2010, PERŞEMBE


MySQL sorgularda, neden kullanın katılmak yerine nerede?

İki veya daha fazla tabloyu birleştirmek için, ya da katılmak ya da nerede kullanabiliriz gibi görünüyor. Diğer bir avantajları nelerdir?

CEVAP
11 ŞUBAT 2010, PERŞEMBE


Herhangi bir sorgu birden fazla tablo içeren Derneği çeşit tablo sonuçlarını bağlantısı gerektirir "" tablo "B". Bunu yapmanın (ANSI-89) geleneksel anlamına gelir

  1. Yan tabloları virgülle ayrılmış bir liste dahil liste
  2. WHERE tablolar arasındaki ilişkiyi yazma

    SELECT *
      FROM TABLE_A a,
           TABLE_B b
     WHERE a.id = b.id
    

Burada yeniden yazılmış ANSI-92 kullanarak sorgu sözdizimi KATILIN:

SELECT *
  FROM TABLE_A a
  JOIN TABLE_B b ON b.id = a.id

Bir Performans açısından:


(Oracle 9i , 3.23 , SQL Server 2000 7.2 MySQL , PostgreSQL) desteklediği, ya da sözdizimi kullanarak performans yararı yoktur. Doktoru aynı sorgu gibi görüyor. Ama daha karmaşık sorgular ANSI-92 sözdizimi kullanarak yararlanabilir:

  • Sipariş kontrol KATILMAK için yeteneği - tablo taranır olan düzen
  • Yetenek katılmadan önce bir tabloda süzme ölçütleri uygulamak için

Bakım açısından:


Orada ANSI-92 kullanmak için birçok sebep ANSI-89: sözdizimi KATIL

  • Daha okunaklı olarak KATILMAK ölçüt WHERE yan tümcesi ayrıdır
  • Daha az kriterleri Bayan KATILMAK için
  • Tutarlı sözdizimi türleri İÇ dışında KATILMAK için, sorguları ve diğer veritabanı kullanımı kolay destekler
  • Sadece tabloların kartezyen ürünün filtrasyon olarak hizmet katıldı

Tasarım Bakış açısından:


ANSI-92 sözdizimi desen KATIL, anti-deseni:

  • Sorgu amacı daha belirgin; sütunlar uygulama tarafından kullanılan açık
  • Mümkün olduğunca sıkı yazarak kullanarak ilgili modüler kuralı izler. Açık neredeyse evrensel olarak daha iyi.

Sonuç


Benzerlik ve/veya konfor kısa, ANSI-89 kullanmaya devam etmek için herhangi bir fayda sözdizimi yerine ANSI-92 sözdizimi KATILIN görmüyorum. Bazı ANSI-92 sözdizimi daha ayrıntılı şikayet olabilir, ama bu onu açık kılan da bu. Daha açık, daha kolay anlamak ve korumak için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • InfinityWard

    InfinityWard

    19 EYLÜL 2006
  • KSI

    KSI

    25 Temmuz 2009
  • oHeymarvin

    oHeymarvin

    11 Temmuz 2013