Arkadaslar Merhaba,

Visual Basic 2008'de yapılmış soru cevap oyununu sunuyorum. Takıldıgınız yer veya sormak istediğiniz birşey olursa aşağıdan sorabilirsiniz.


Soruların yüklendigi ekranda sağ click yaptıgımızda bu şekilde soru ekleme formu geliyor, buradan direkt veritabanına sorular ekleyerek, yeni soruların gelmesini sağlayabilirsiniz.
 Bu kısımda veritabanında sorular gelmektedir. Cevaplanan sorular sorular tablosunda cevaplandı sutununa 1 yazarak, cevaplanan soruların bir daha önümüze gelmesi engellenmiştir. Herhangi bir süre felan koymadım bir arkadasım için hazırlamıstım bunu zaten.

Baslangıçta kullanıcı giriş formu vardır, projeyi indirdikten sonra veritabanı yolunu webconfigden değiştirmeyi unutmayınız.

İndirmek için Tıklayınız

Visual Basic 2008 Soru Cevap Oyunu Hazir Proje

Bloglarda adsense onaylanırmı gibi sorular herkes tarafından çok merak ediliyor.

Onaylanmaması için hiçbir neden yok arkadaşlar. Sadece sitenizin biraz eski olması gerek. Yani ben hemen blog açayım adsense başvuru yapayım felan yok. Google amcamız böyle olursa onaylamaz. Ama blogunuz eskiyse adsense başvuru yaptıysanız içeriğinizde iyiyse onaylanmaması için hiçbir neden yok.

Bloglarda Adsense Onay Alır Mı?

Merhaba,

Bu yazıda gruplamak istediğimiz bir veriyi performanslı olarak, GROUP BY kullanmadan nasıl çekebilirizi örnekler ile anlatmaya çalışacağım.

Personel_id, departman_no ve departman bazında toplam verecek bir sorgu çekmemiz gerekirse nasıl yazabiliriz.OVER dan sonra yazdığımız PARTITION BY ile aslında COUNT işlemini hangi kolon bazında yapmak istediğimizi belirtiyoruz. Bu kullanım hız ve performans açısından çok daha verimlidir.

SELECT personel_id, departman_no, COUNT(*) 
OVER (PARTITION BY departman_no) DEPT_COUNT
FROM personel

PERSONEL_ID         DEPARTMAN_NO  DEPT_COUNT
1                                      10                             3 --10 numaralı departmandaki kişi sayısı
2                                      10                             3 --10 numaralı departmandaki kişi sayısı
3                                      10                             3 --10 numaralı departmandaki kişi sayısı
4                                      20                             2 --20 numaralı departmandaki kişi sayısı
5                                      20                             2 --20 numaralı departmandaki kişi sayısı


Eğer sorguyu aşağıdaki gibi yazacak olsaydık, 
SELECT personel_id, departman_no, COUNT(*) 
OVER () DEPT_COUNT
FROM personel

PERSONEL_ID DEPARTMAN_NO DEPT_COUNT
1                              10                               5 --toplam kişi sayısı
2                              10                               5 --toplam kişi sayısı
3                              10                               5 --toplam kişi sayısı
4                              20                               5 --toplam kişi sayısı
5                              20                               5 --toplam kişi sayısı

 İşinize yaraması dileğiyle,


Referans : http://stackoverflow.com/questions/561836/oracle-partition-by-keyword

Tuning : OVER ( PARTITION BY ) nedir, nasıl kullanılır?

Merhaba,

Bu yazıda PL/SQL'de koşul kontrollerinin nasıl yapıldığını anlatmaya çalışacağım.


IF THEN ELSE KULLANIMI

Bu kullanımda sadece tek bir koşula girebilir. Sıra ile koşulları kontrol eder.

SET SERVEROUTPUT ON
DECLARE
  l_gun VARCHAR2(10);
BEGIN
  l_gun := TRIM(TO_CHAR(SYSDATE,'DAY'));

  IF l_gun IN ('SATURDAY', 'SUNDAY') THEN
    DBMS_OUTPUT.PUT_LINE('Haftasonu');
  ELSIF l_gun = 'MONDAY' THEN
    DBMS_OUTPUT.PUT_LINE('Haftabaşı');
  ELSE
     DBMS_OUTPUT.PUT_LINE('Haftaiçi');
  END IF;
END;
/

CASE KULLANIMI

SET SERVEROUTPUT ON
DECLARE
   l_gun VARCHAR2(10);
BEGIN
   l_gun := TRIM(TO_CHAR(SYSDATE,'DAY'));
   
   CASE l_gun
   WHEN 'SATURDAY' THEN
     DBMS_OUTPUT.PUT_LINE('Haftasonu');
   WHEN 'SUNDAY' THEN
     DBMS_OUTPUT.PUT_LINE('Haftasonu');
   WHEN 'MONDAY' THEN
     DBMS_OUTPUT.PUT_LINE('Haftabaşı');
   ELSE
     DBMS_OUTPUT.PUT_LINE('Haftaiçi');
   END CASE;

END;
/

LOOP KULLANIMI

 LOOP kullanılırken EXIT yazılmazda sonsuz döngüye girecektir.

SET SERVEROUTPUT ON
DECLARE
  i NUMBER := 1;
BEGIN
  LOOP 
     EXIT WHEN i>5;
    DBMS_OUTPUT.PUT_LINE('i:'||i);
     i := i+1;
  END LOOP;
END;
/

WHILE LOOP KULLANIMI

SET SERVEROUTPUT ON
DECLARE
   i NUMBER := 1;
BEGIN
    WHILE i<=5 LOOP 
       DBMS_OUTPUT.PUT_LINE('i:'||i);
       i := i+1;
     END LOOP;
END;
/

GOTO KULLANIMI

SET SERVEROUTPUT ON
DECLARE
   i NUMBER := 1;
BEGIN
   LOOP 
       IF i>5 THEN 
           GOTO looptan_cik;
       END IF;
       DBMS_OUTPUT.PUT_LINE('i:'||i);
       i := i+1;
    END LOOP;
    <<looptan_cik>>
    NULL;
END;
/

Faydalı olması dileğiyle,


Alıntıdır

PL/SQL'de Koşul Kontrolü Nasıl Yapılır? IF, LOOP, WHILE , GOTO Kullanımı

Paketler, mantıksal olarak ilişkili PL/SQL tipleri, alt programları gruplayan bir şema nesnesidir. Çoğu zaman sıklıkla ya da belirli bir işlem için kullanılan birden fazla veri tabanı işlemimiz var ise (procedure, function vb.) bu işlemlerin hem kullanımı hem de kolay takibi için paket yapısı kullanılır. Bize avantajları modülerlik, kolay uygulama dizaynı, bilgi saklama, iyi performans ve fonksiyonellik ekleme olarak sıralanabilir. Paketler genellikle iki kısımdan oluşur.Bunlar gövde(body) ve paket spec(specification) ifadeleridir. Spec, uygulamalarımız için ara yüzdür ve tipler, değişkenler, sabitler, aykırı durumlar, imleçler ve alt programlar için kullanılabilir. Gövde bölümü ise imleç ve alt programların tanımlandığı bölümdür.
Sistemde kayıtlı paketler bulunmaktadır. Bunlar:
·         DBMS_OUTPUT – en çok bilinen, verileri ekranda göstermek için gerekli paket.
·         DBMS_PIPE – PIPE ile haberleşmeyi sağlar
·         DBMS_LOCK – Kullanıcı kilitlerini yönetir.
·         DBMS_ALERT—Spesifik veri tabanı değerleri değiştiğinde veri tabanı tetikleyicileri için alert kullanabilirsiniz..
·         UTL_FILE – PL/SQL kodlarını İşletim sistemi dosyalarına yazmak ve okumak için.
·         UTL_HTTP – PL/SQL kodlarıyla http protokolü belirtme çizgileri oluşturmak.
Paket yapısının söz dizimi aşağıdaki gibidir.
 CREATE [OR REPLACE] PACKAGE isim
  [AUTHID {CURRENT_USER | DEFINER}]
 {IS | AS}
 [PRAGMA SERIALLY_REUSABLE;
   [collection_type_tanımlama ...]
 [record_type_ tanımlama ...]
 [subtype_ tanımlama ...]
 [collection_ tanımlama ...]
 [constant_ tanımlama...]
 [exception_ tanımlama ...]
 [object_ tanımlama ...]
[record_ tanımlama ...]
 [variable_ tanımlama ...]
 [cursor_spec ...]
 [function_spec ...]
 [procedure_spec ...]
 [call_spec ...]
[PRAGMA RESTRICT_REFERENCES(assertions) ...]
END [paket_ismi];
 [CREATE [OR REPLACE] PACKAGE BODY paket_ismi {IS | AS}
 [PRAGMA SERIALLY_REUSABLE;]
 [collection_type_tanımlama ...]
[record_type_tanımlama ...]
 [subtype_ tanımlama ...]
 [collection_ tanımlama ...]
 [constant_ tanımlama ...]
[exception_ tanımlama ...]
 [object_ tanımlama ...]
 [record_ tanımlama ...]
 [variable_ tanımlama ...]
[cursor_body ...]
 [function_spec ...]
 [procedure_spec ...]
 [call_spec ...]
[BEGIN
--Cümlelerin sırası
END [paket_ismi];]
 ·         Örnek: İçerisinde iki değer ve işlem girilip toplama ve çıkarma işlemi yapılan paket kodunu yazınız.
 /* Paket Spec tanımlanıyor. */

PL-SQL'de Paketler(Packages)

View Nedir?

SQL de,  View temel olarak sanal tablo(geçici ile sanal tablo farklı kavramlar lütfen karıştırmayın) diye geçiyor. Satır ve sütunları olan gerçek tablo gibidir. İçerisinde sadece SQL Fonksiyonlarını, Join, Group By ve Where ifadelerini kullanabilirsiniz.


Bir ya da daha fazla tablonun mantıksal alt kümelerini oluşturmak için görünümlerden yararlanılır.
Görünümler, bir tabloya dayalı mantıksal bir tablo olarak değerlendirilir.
Görünüm, tablolar gibi veriyi fiziksel olarak saklamaz. Görünümler, saklanmış (depolanmış) SELECT deyimi olarak değerlendirilir. Bir SELECT deyiminin defalarca kullanılması söz konusu ise, onu bir görünüm biçiminde tanımlayarak, bu görünümün çalıştırılması mümkündür.
Görünümler aşağıda sıralanan nedenlerle tercih edilir:
Görünümler, veri tabanına erişimi sınırlayan olanaklardır çünkü görünüm, tabloların sadece seçilen bir kısmını görüntüleyebilir.
Karmaşık sorguların kolayca yapılmasını sağlar.
Aynı veriyi kullanan çok sayıda görünüm tanımlanabilmektedir.


Oluşturulan View ler veritabanınız içerisinde “Viewsseçeneceğinin altında yer almaktadır.
Genel tanımı:
    create view view_adi
    as
    select sutun_adlari
    from base_tablo_adi


Dükkan veritabanı içinde urun tablosu içinde USD ile satılan ürünlerin; urunkod, urunad,listefiyat sutunlarını içeren bir tablonun görevini yerine getirecek bir vwdolarurunler adında view oluşturalım




Bir görünümün yaratılabilmesi için CREATE VIEW deyimi kullanılır. Bu deyimin kullanımı aşağıda gösterildiği gibidir:
CREATE VIEW görünüm
AS altsorgu;
Bir görünümün yaratılması esnasında kullanılacak alt sorgu içinde
ORDER BY sözcüğü yer alamaz.
Var olan bir görünümü yok etmek amacıyla DROP VIEW deyimi kullanılır. Bu deyimin kullanımı aşağıda gösterildiği gibidir:
DROP VIEW  görünüm;
Var olan herhangi bir görünümün güncelleştirilmesi amacıyla,
CREATE OR REPLACE VIEW deyimi kullanılır. Bu deyimin kullanımı aşağıda gösterildiği gibidir:
CREATE OR REPLACE VIEW görünüm [(görünüm sütunları)]
AS altsorgu;

SQL View Nedir ? Neden Kullanılır ?