ben

OMÜ , Bilgisayar Mühendisliği, 13'

3 Mart 2022 Perşembe

Sorgu analiz şeması

 Bize verilen sorguyu analiz ederken hangi tabloları kullanıcaz, hangi where şartları var, hangi sorgu çeşidini kullanıcaz varsa hangi joinleri kullanızca gibi sorularla boğuşurken sorguyu yanlış analiz edebiliz.  Bunun için güzel bir analiz şeması tasarladım. Şermaya göre yazamayacağınız sorgu yok gibi. Zaten buradan sonrası artık sql programlama kısmına girecek.




Sorguyu ilk okuduğunuzda karışıklığı gözünüze çarpmasın, sorgu üzerinde matematiksel işlemler, tarihsel where koşulları, in select yapıları, alt sorguda kümelere sorguları, group by, order by, join left ve right join gibi yapıların hepsi bulunabilir. Sizin yapmanız gereken sorguyu adım adım analiz etmektir.
 
·  Sorguya bakıp kullanacağınız tabloları diyagram üzerinden bulun.
·  Eğer tablolarınız birbirine direk bağlı değilse, hangi tablo/tabloları eksersem tablolar birbirine bağlanır? Sorusunun cevabı olan tabloları tespit edin.
·  Sorgunuzun türüne karar verin. (Update, delete, select)
·  Eğer sorgunuz select ise bu konuya kadar sorguyu nasıl yazıyorsanız öyle sorgunuzu yazıp çalıştırabilirsiniz.
·  Eğer sorgunuz update/delete ise;
        * Hangi tabloda update/ delete işlemi yapılacak? Bu sorunun cevabı olan tabloyu belirleyin
        *Belirlediğiniz tablodan çıkan tüm bağlantı yollarının in select olduğunu hatırlayın
        *Belirlediğiniz tabloyla direk bağlantısı olmayan diğer tüm bağlantılar inner join, left join ya da right join olabilir. Sorguda sizden istenilen veriye göre join türüne karar verin
·  Buraya kadar sorguda hiçbir where koşulu eklemeyin. Her zaman where koşullarını en son sorgu yapınıza ekleyin.
·  İstenilen where koşulunda kullanılacak olan column adı hangi tabloda olduğunu tespit edin
· Yazdığınız sorgu iskeletinde tablonun yerini bulun. Ana tabloda ise where koşulu ana tabloda, in select yapısındaki subquery sorgusunda ise alt sorguya where koşulu yerleştirin.
· Update ve delete sorgularında order by ya da group by kullanılması doğru olmaz, zaten böyle bir sorguda istenmez.

Hiç yorum yok: