Merhaba Arkadaşlar,
SQL ile ilgili konuları tamamladık. Şimdi bazı temel PL/SQL kavramlarını öğrenmeye çalışacağız. Elbette PL/SQL uzmanı olmak için uğraşmıyoruz :) Ancak bizim için çok yararlı olabilecek komutları öğrenmek durumundayız. Ki Oracle sertifikasyon sınavlarını başarmak isteyen biriyseniz; bu kavramların da sınav konularına dahil olduğunu bilmenizi isterim.
Bu kez, daha önceden öğrendiğimiz GROUP BY ifadesini yeni kavramlarla zenginleştireceğiz. Bunlar ROLLUP ve CUBE kavramları.
Biliyoruz ki Oracle'ın, iş dünyasında tercih edilmesinin önemli nedenleri arasında; "çok özel istatistiksel bilgi sunma kabiliyeti" sayılır. Hatta öyle ki bu yetkinliklerden OLAP uygulamasını kullanmadan da faydalanabilirsiniz. Biliyorsunuz ki OLAP çok boyutlu bir raporlama sistemi ve veritabanızdaki verilerle oluşturacağınız raporlamalarda size inanılmaz kolaylık sağlayan bir sistem. Ancak OLAP kullanmak istemediğinizi yada sisteminizde OLAP sisteminin aktif olmadığını düşünelim. Verilerinizi nasıl istatistiksel olarak görüp değerlendireceğiz?
Konuya geçmeden önce hemen GROUP BY ifadeli olan SQL cümlemizin son halini kısaca hatırlayalım:
Her insan kendi içinde koca birer veri okyanusudur. Bu okyanusta küçük bir gezintiye ne dersiniz?
24 Ocak 2013 Perşembe
22 Ocak 2013 Salı
HR Şeması İle Uygulamalı SQL(Şema Nesneleri)
Merhaba Arkadaşlar!
Bu yazıda tablolardan sonraki diğer şema nesneleriyle ilgileneceğiz. Böylelikle SQL konusunu bitirmiş oluyoruz. Ancak daha sertifika sınavları sadece SQL'den ibaret değil. Bu sınavlar için PL/SQL'in bazı konularını daha bilmeniz gerekiyor. Bunları da mümkün oldukça burada işleyeceğiz.
1. Görüntüler(Views)
Görüntüler hayali, aslında fiziksel olarak var olmayan tablolardır. Sanal bir tablo olarak düşünebilirsiniz. Bu tabloları bir veya birden fazla gerçek yani fiziksel olarak var olan tabloların birleşiminden oluşturursunuz. Böylelikle aşağıdaki avantajları yakalarsınız:
Bu yazıda tablolardan sonraki diğer şema nesneleriyle ilgileneceğiz. Böylelikle SQL konusunu bitirmiş oluyoruz. Ancak daha sertifika sınavları sadece SQL'den ibaret değil. Bu sınavlar için PL/SQL'in bazı konularını daha bilmeniz gerekiyor. Bunları da mümkün oldukça burada işleyeceğiz.
1. Görüntüler(Views)
Görüntüler hayali, aslında fiziksel olarak var olmayan tablolardır. Sanal bir tablo olarak düşünebilirsiniz. Bu tabloları bir veya birden fazla gerçek yani fiziksel olarak var olan tabloların birleşiminden oluşturursunuz. Böylelikle aşağıdaki avantajları yakalarsınız:
- Çok sık kullanılan ve aynı tabloda bulunmayan verilerin bir tabloda birleşimi ile kullanım kolaylığı sağlar.
- Veriyi tablodan bağımsız hale getirir ve kullanım esnekliği sağlar.
- Erişimini kısıtlamak istediğiniz verileri bu yöntemle kısıtlarsınız.
- Karmaşık sorguların (çok fazla JOIN içeren v.b.) kolaylaştırılmasını sağlar.
Bu faydalarla görüntüler işinizi gerçekten kolaylaştıracaktır. Tablo oluştururken kullandığımız DDL komutları bütün şema nesneleri için kullanılır. Oluşturmak için CREATE VIEW, değiştirmek için CREATE OR REPLACE VIEW, düşürmek/kaldırmak için DROP VIEW şeklinde kullanılır.
Etiketler:
DDL,
HR Şeması,
SQL,
SQL Sertifika,
Şema Nesneleri
20 Ocak 2013 Pazar
HR Şeması İle Uygulamalı SQL(DDL)
Merhaba arkadaşlar!
SQL'e ait son konularla devam ediyoruz. DML komutlarından sonra sıra DDL komutlarında. DDL'e geçmeden neden DDL komutlarına ihtiyaç duyuluyor kısaca bahsedelim:
Bildiğiniz gibi DDL-Data Definiton Language yani Veri Tanımlama Dili, veritabanı nesnelerini oluşturmak ve yönetmek maksadıyla kullanılır. Peki nedir bu veritabanı nesneleri:
SQL'e ait son konularla devam ediyoruz. DML komutlarından sonra sıra DDL komutlarında. DDL'e geçmeden neden DDL komutlarına ihtiyaç duyuluyor kısaca bahsedelim:
Bildiğiniz gibi DDL-Data Definiton Language yani Veri Tanımlama Dili, veritabanı nesnelerini oluşturmak ve yönetmek maksadıyla kullanılır. Peki nedir bu veritabanı nesneleri:
- Tablolar: Verilerin saklandığı satır ve sütunlardan oluşan yapılar.
- Görüntüler: Tabloların kullanıcı ihtiyacına göre şekillendirilerek hayali tablolar oluşturmayla meydana gelen tablo benzeri yapılar. Kullanım kolaylığı için tercih edilirler.
- İndeksler: Verilere erişim hızınızı ve sorgu performansınızı artıran, verilerin bir bakıma adreslerini tutan yapılar.
- Eş Anlamlılar: Herhangi bir veritabanı nesnesine kullanım kolaylığı için farklı isimler verilebilir.
- Sekanslar: Özel durumlarda sayısal değerler üretmeniz gerekebilir. Bu durumda sekanslara ihtiyacınız olacak.
Etiketler:
DDL,
HR Şeması,
Kısıtlar,
SQL,
SQL Sertifika
19 Ocak 2013 Cumartesi
HR Şeması İle Uygulamalı SQL(DML ve Veri Tutarlılığı)
Merhaba arkadaşlar!
Biliyoruz ki SQL deyimleri, kendi içerisinde komutların amaçlarına göre bir kaç başlık altında incelenirler. Bu başlıklardan SQL için olanları iki şekilde inceleriz:
Biliyoruz ki SQL deyimleri, kendi içerisinde komutların amaçlarına göre bir kaç başlık altında incelenirler. Bu başlıklardan SQL için olanları iki şekilde inceleriz:
- DML-Data Manipulation Language: Ver işleme dili
- DDL-Data Definiton Language: Veri tanımlama dili
Neden özellikle SQL için diye belirttim çünkü özelleşmiş SQL versiyonlarında (PL/SQL- T-SQL v.b.) eklenen diğer komut ve deyimlerle bu maddeler çoğalmaktadır. Örneğin COMMIT ve ROLLBACK komutları DDL yada DML komutları değildir. Veri kontrol dili (Data Control Language) başlığı altında incelenen bu komutlarla birlikte, kullanıcıya haklar tanıma, rol oluşturma gibi diğer özel işlemler gerçekleştirilir. Şimdilik SQL ile çalıştığımızdan bunlar ile işimiz yok. Ancak burada bir kaç DCL komutu ile ilgili bilgi vereceğiz. Çünkü DCL Oracle ile çalışmanın püf noktalarından ve veri tutarlılığı için büyük önem arz etmekte.
Bu yazıda DML komutlarını ele alıp uygulayarak açıklamaya çalışacağız. Bir sonraki yazı da DDL ile ilgili olacak. Başlayalım:
18 Ocak 2013 Cuma
HR Şeması İle Uygulamalı SQL(Küme Operatörleri)
Merhaba arkadaşlar!
Aslında SQL'in zorlu kısımlarını bitirdik sayılır. JOIN, alt sorgular en karmaşık gelebilecek konulardı. Geriye bazı küme operatörleri, DDL, DML ve diğer şema nesneleri ile ilgili işlemler kaldı. Tabi eğer PL/SQL'den bahsediyorsak daha çok konu var demektir. Ama biz burada SQL'i temel alıyoruz.
Bugün küme operatörlerini inceleyeceğiz. Neden küme operatörü diyorum? Çünkü ilkokuldan tanıdığımız küme mantığını tablolar arasında uygulayan basit bir işlemdir. Gerçekte ise "set operatörleri" olarak geçiyor. Burada üç adet operatör tanıyacağız:
Aslında SQL'in zorlu kısımlarını bitirdik sayılır. JOIN, alt sorgular en karmaşık gelebilecek konulardı. Geriye bazı küme operatörleri, DDL, DML ve diğer şema nesneleri ile ilgili işlemler kaldı. Tabi eğer PL/SQL'den bahsediyorsak daha çok konu var demektir. Ama biz burada SQL'i temel alıyoruz.
Bugün küme operatörlerini inceleyeceğiz. Neden küme operatörü diyorum? Çünkü ilkokuldan tanıdığımız küme mantığını tablolar arasında uygulayan basit bir işlemdir. Gerçekte ise "set operatörleri" olarak geçiyor. Burada üç adet operatör tanıyacağız:
- UNION/UNION ALL: Birleşim işlemi
- INTERSECT: Kesişim işlemi
- MINUS: Fark işlemi
17 Ocak 2013 Perşembe
HR Şeması İle Uygulamalı SQL(Alt Sorgular)
Merhaba Arkadaşlar,
SQL çalışmalarımız tüm hızıyla sürüyor :) Yazılar biraz uzun oluyor ama bunun sebebi uygulamalı olarak deyimleri incelememiz. Eğer siz de bu deyimleri uygulayarak yapıyorsanız sonuçlarınızı karşılaştırabilmeniz adına sorguların çıktılarını da veriyorum.
Şimdi bugün de alt sorguları işleyeceğiz. Hemen kısaca giriş yapalım. Diyelim ki yöneticiniz sizden X kişisinin çalıştığı ülkede çalışan kişilerin maaşlarını görüntüleyen bir rapor istedi. Bu durumda tek bir sorgu ile işin içinden çıkmanız gerçekten zor. İç içe iki sorgu ile çalışmak durumundasınız. Bu gibi durumlarda sorgular hiyerarşik olarak dizilmelidir. Yani içteki sorgudan dönen sonucu dıştaki sorgu işleyerek asıl amaca dair çıktıyı size vermelidir. Mesela verdiğimiz örnekte içteki sorgu X kişisinin çalıştığı ülkeyi çekmelidir. Ana sorgu ise bu şehirde çalışan kişilerin maaşlarını görüntüler.
Alt sorguların amacını açıkladıktan sonra konuya başlayabiliriz.
SQL çalışmalarımız tüm hızıyla sürüyor :) Yazılar biraz uzun oluyor ama bunun sebebi uygulamalı olarak deyimleri incelememiz. Eğer siz de bu deyimleri uygulayarak yapıyorsanız sonuçlarınızı karşılaştırabilmeniz adına sorguların çıktılarını da veriyorum.
Şimdi bugün de alt sorguları işleyeceğiz. Hemen kısaca giriş yapalım. Diyelim ki yöneticiniz sizden X kişisinin çalıştığı ülkede çalışan kişilerin maaşlarını görüntüleyen bir rapor istedi. Bu durumda tek bir sorgu ile işin içinden çıkmanız gerçekten zor. İç içe iki sorgu ile çalışmak durumundasınız. Bu gibi durumlarda sorgular hiyerarşik olarak dizilmelidir. Yani içteki sorgudan dönen sonucu dıştaki sorgu işleyerek asıl amaca dair çıktıyı size vermelidir. Mesela verdiğimiz örnekte içteki sorgu X kişisinin çalıştığı ülkeyi çekmelidir. Ana sorgu ise bu şehirde çalışan kişilerin maaşlarını görüntüler.
Alt sorguların amacını açıkladıktan sonra konuya başlayabiliriz.
16 Ocak 2013 Çarşamba
HR Şeması İle Uygulamalı SQL(JOIN)
Merhaba Arkadaşlar!
Şimdiye kadar sorgularımızda hep bir tablodan veri çektik. Yani FROM "tabloismi" ifadesini sadece bir tablo ile kullandık. Oysa buradaki tablo sayısını artırmak mümkündür. Çoğu zaman gelişmiş sorgularda tek tablo ile değil belki de üç tablo ile çalışmanız gerekecek. Bu gibi durumları bugün ele alalım. Öncelikle işi karmaşıklaştırmadan FROM ile nasıl birden fazla tablolarla çalışırız ona bakalım.
Konuya böyle giriş yaptık ama şöyle bir izlenim verdi sanki: İstediğimiz sorguda istediğimiz tabloyu kullanırız ve kafamıza göre takılabiliriz. Hayır. Maalesef durum böyle değil. Çoklu tablolarla çalıştığınız sorgularda tablolar arasındaki ilişkileri ön plana çıkarırsınız. Bu yüzden tablolar arasındaki bağlantıları gösteren şemaların her zaman gözünüzün önünde durması gerekir. O yüzden burada bir kez daha HR şemasını paylaşmak gerekecek:
Şimdiye kadar sorgularımızda hep bir tablodan veri çektik. Yani FROM "tabloismi" ifadesini sadece bir tablo ile kullandık. Oysa buradaki tablo sayısını artırmak mümkündür. Çoğu zaman gelişmiş sorgularda tek tablo ile değil belki de üç tablo ile çalışmanız gerekecek. Bu gibi durumları bugün ele alalım. Öncelikle işi karmaşıklaştırmadan FROM ile nasıl birden fazla tablolarla çalışırız ona bakalım.
Kaydol:
Kayıtlar (Atom)