• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Duyuru

Gizle
No announcement yet.

MySQL Rehberi !!!! vBulletin Edition !!

Gizle
Bu konu kapalıdır.
X
Bu konu sabit bir konudur.
X
X
 
  • Filtrele
  • Zaman
  • Göster
Hepsini Sil
new posts

  • MySQL Rehberi !!!! vBulletin Edition !!

    MySQL Rehberi


    Kaynak : www.pcakademi.com

    vBulletin 'e Göre ve Genel Düzenleme : organik81


    Not : Altta vBulletin 'e göre verdiğim örnekler SQL mantığına göre teorik örneklerdir. Her ihtimale karşı yedek almadan forum üzerinde uygulamamanızı tavsiye ederim. Veya imkanınız varsa önce "local hostunuzda" deneyin.. Bu tip işlemler içinse tercihen PhpMyAdmin 'i kullanabilirsiniz.. Çoğu işlem daha basite indirgenip sihirbazlar ile gerçekleştirilebilmektedir...



    SQL'e Giriş

    Tanımı : SQL : Structured Query Language (Yapılandırılmış Sorgu Dili)

    SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veri tabanı ortamında kullanılan bir alt dildir. (sub language) SQL ile yalnızca veri tabanı üzerinde işlem yapabiliriz. SQL cümleceikleri kullanarak veri tabanına kayıt ekleyebilir, olan kayıtları değiştirebilir silebilir ve bu kayıtlardan listeler oluşturabiliriz. SQL cümlecikleri genellikle aynı olmakla birlikte farklı veri tabanı ortamlarında değişebilmektedir. Ayrıca veri tabanlarının kendilerine özgü sql komutlarıda vardır. Biz burada her ortamda geçerli olan temel sql komutları işleyeceğiz.Şimdi örnekler kullanacağımız bir database tanımlayalım. Aşağıdaki Örnekler Microsoft SQL Server 6.5 'da denenmiştir.


    Kod:
    Tablo adı : personel
    Kolon : sicil_no:text (8)
    Kolon : ad:text (8)
    Kolon : soyad:text (8)
    Kolon : dogum_tarihi:date
    Kolon : dogum_yeri:text (8)
    Kolon : cinsiyeti:text(1)
    Kolon : medeni_hali:binary
    Kolon : meslek_id:smallint
    Kolon : egitim_durumu:binary
    Kolon : adres:text (50)
    
    Tablo adı : ucretler
    Kolon : per_sicil_no:text (8)
    Kolon : baslama_tarihi:date
    Kolon : aylık_ucret:numeric
    Kolon : aile_yardimi:numeric
    Kolon : egitim_yardimi:numeric
    Kolon : kesinti:numeric:
    
    Tablo adı : meslekler
    Kolon : meslek_id:smallint
    Kolon : aciklama:text (23)
    Kolon : taban_ücret:numeric
    vBulletin açısından benzer örnek;

    Kod:
    Tablo adı : user
    Kolon : userid:int(10) 
    Kolon : usergroupid:smallint(5)
    Kolon : membergroupids:varchar(250)
    Kolon : displaygroupid:smallint(5)
    Kolon : username:varchar(100)
    Kolon : password:varchar(32)
    şeklinde devam eder...........

    From

    İlk önce bu komut ile başlayalım. Bu komut bütün SQL cümleciklerinde bulunması gerekli bir komuttur.Bu komut ile hangi tablolar üzerinde çalışacağımı veri tabanına söylüyoruz. Eğer aynı sql cümleciği ile bir kaç tablo üzerinde işlem yapmak istersek tablo isimleri arasına virgül koymalıyız. aşagıdaki örnekleri SELECT komutundan sonra açıklayacağım.

    Örnek 1 :

    Kod:
    SELECT * FROM personel;
    Örnek 2 :
    Kod:
    SELECT * FROM personel,ucretler;
    vBulletin açısından benzer örnek;
    Kod:
    SELECT * FROM user;
    Select

    Bu komut ile database üzerindeki tablonun hangi kolonları alacağımız veritabanına söyleriz.Tablonun bütün kolonlarını görmek istiyorsak '*' karekterini kullanırız. Sadece belli kolonları görmek istiyorsak kolon isimlerini aralarına virgül koyarak yanyana yazmalıyız.Yukarıdaki örnekleri açıklayacak olursak birinci örnek personel tablosundaki bütün kayıtları getirecektir. İkinci örnekte ise persenol ve ücretler tablosundaki bütün kayıtlar çekilecektir.

    Örnek 3 :

    Kod:
    SELECT * FROM meslekler ;
    Bütün meslek bilgilerini almak istersek yukarıdaki gibi bir query yazmalıyız.

    Örnek 4 :

    Kod:
    SELECT ad,soyad FROM personel ;
    Bu query ise bize firmamızda çalışan bütün personeli listeler.

    vBulletin açısından benzer örnek;

    Kod:
    SELECT username,password FROM user ;
    Bu query ise tüm üyelerin kullanıcı adı ve şifrelerini listeler.
  • #2

    SQL'de Veri Tabanı Oluşturma

    SQL komutları yalnızca bir veri tabanı üzerinde geçerli olduğu için veri tabanı oluşturma işlemlerinide anlatmanın yararlı olacağına inanıyorum. Aşağıda anlatılan işlemler SQL Server 6.5 üzerinde gerçekleştirilmiştir.Database oluşturmak için aşagıdaki komutu yazabiliriz.

    Kod:
    CREATE DATABASE database_name
    [ON {DEFAULT | database_device} [= size]
    [, database_device [= size]]...]
    [LOG ON database_device [= size]
    [, database_device [= size]]...][FOR LOAD]
    database_name : Bu olışturulacak olan veri tabanının ismidir.

    ON : Bu ise oluşturulacak olan veri tabanın hangi device üzerinde yer alacağını belirten bir parametredir. Burada aynı zamanda bu device üzerinde size parametresi ile database'in ne kadar yer kaplayacağını belirmiş oluyoruz. Eğer device tanımlamaz isek SQL server default device üzerinde 5 mb bir veri tabanı yaratacaktır.Bu parametre içinde birkaç device ismi kullanarak veri tabanını bir kaç device üzerinde yer almasını sağlayabiliriz.

    LOG ON : Bu ise oluşturulacak olan veri tabanın log'unun hangi device üzerinde yer alacağını belirten bir parametredir. Burada aynız zamanda bu device üzerinde size parametresi ile database'in log'unun ne kadar yer kaplayacağını belirmiş oluyoruz. Eğer device tanımlamaz isek SQL server default device üzerinde bir log tutacaktır.Bu parametre içinde birkaç device ismi kullanarak veri tabanı log'unun bir kaç device üzerinde yer almasını sağlayabiliriz.

    Örnek 1 :


    Kod:
    CREATE  DATABASE fat123
    Bu komut ile SQL Server üzerinde fat123 isimli boş bir database oluşturmuş oluyoruz. (Dönen mesaj :CREATE DATABASE: allocating 2560 pages on disk 'a1v1')

    Örnek 2 :


    Kod:
    CREATE DATABASE fat123
    ON master = 10
    Bu komut ile SQL Server'da master device'ı üzerinde 10 mb'lık fat123 isimli boş bir database oluşturmuş oluyoruz.


    Örnek 3 :



    Kod:
    CREATE DATABASE fat123
    ON fat123 = 10
    LOG ON fat123log = 5
    Bu komut ile SQL Server'da fat123 device'ı üzerinde 10 mb'lık fat123 isimli boş bir database ve fat123log device'ı üzerinde 5 mb bir log oluşturmuş oluyoruz.


    Örnek 4 :


    Kod:
    CREATE DATABASE fat123
    ON fat=10 , fat1 = 10 , fat2=10 , fat3=10 
    LOG ON fat123log = 20
    Bu komut ile ise fat123 isimli veri tabanını 4 farklı device üzerinde oluşturuyoruz.



    Not : Genellikle oluşturulan database'in yarısı kadar bir alanda log için oluşturulur.

    Not 2 : vBulletin'de sadece bir adet veritabanı mevcut ve bunu da kurulum öncesi cPanel veya Plesk'ten veya PhpMyAdmin'deki sihirbazdan kolayca oluşturulabileceği için bu tipte bir örnek vermeye gerek duymadım.

    Yorum yap

    • #3

      SQL Komutları



      Order By

      Bu komut ile belirtilen kolona göre artan veya azalan bir sıralama ile sorgulama yapabiliriz.

      ASC : kullanarak küçükten büyüğe doğru artan sıralama yapabiliriz.
      DESC : kullanarak büyükten küçüğe doğru azalan sıralama yapabiliriz.

      Ancak ASC kullanmak zorunlu değildir. Çünki default sıralama tipi ASC'dir. Aynı anda birkaç kolon üzerindende sıralama yapabiliriz.


      Örnek 1 :



      Kod:
      SELECT * FROM personel ORDER BY ad ASC;
      Bu query ile personel tablosundaki bütün kayıtları ad'a göre küçükten büyüğe dogru sıralarız.

      vBulletin açısından benzer örnek :


      Kod:
      SELECT * FROM user ORDER BY posts ASC;
      Bu query ile, forumdaki üyeler mesaj sayısına göre küçükten büyüğe doğru sıralanır.

      Örnek 2 :



      Kod:
      SELECT * FROM personel ORDER BY soyad DESC;
      Bu query da yukarıdakinin tersine kayıtları büyükten küçüğe dogru sıralar.


      vBulletin açısından benzer örnek :


      Kod:
      SELECT * FROM user ORDER BY reputation DESC;
      Bu query ile, forumdaki üyeler rep puanına göre büyükten küçüğe doğru sıralanır.


      Örnek 3 :



      Kod:
      SELECT * FROM personel ORDER BY ad,soyad;
      Bu query kayıları ad göre artan bir sıralama yapar. Ancak aynı ad ile yaratılmış birden fazla kayıt varsa ise bunlarıda soyad sırasına göre artan bir şekilde sıralar. Eğer her iki kolnda aynı ise o zaman okuduğu sırada sıralar.


      Örnek 4 :



      Kod:
      SELECT * FROM personel ORDER BY dogum_tarihi DESC,ad,soyad ;
      Bu query'de ise personel kayıtları büyükten küçüğe doğru sıralanıyor. Yani en genç eleman'dan başlanarak en yaşlı elemana doğru bir liste yapılıyor. Doğum tarihleri aynı olanlarda ise ad ve soyad'a göre bir sıralama yapılmaktadır.


      Where


      Yukarıda yaptığımız sorgulamaların hepsinde hiç bir koşul belirtmedik.Yani bütün kayıtları tablolardan çektik. Ancak gerçek hayat'ta bu kayıtların sadece bir kısmına ihtiyaç duyarız.Bize gerekli olan dataları diğerlerinden ayıran bazı özellikleri vardır. İşte bu özellikleri bu komut yardımı ile kullanarak gerekli datalara ulaşabiliriz.

      Örnek 5 :

      Adı ahmet olan personeli listelemek istersek ne yapacağız. Aşagıdaki gibi bir sorgulama yapacağız.



      Kod:
      SELECT * FROM personel WHERE ad='ahmet';

      vBulletin açısından benzer örnek :

      Kod:
      SELECT * FROM user WHERE posts<'1000';
      Bu query ile, forumdaki mesaj sayısı 1000 'in altında olan &#252;yeler listelenir.

      Yorum yap

      • #4

        Operat&#246;rler

        Her programlama dilinde olduğu gibi SQL'de de operat&#246;rler bulunur. &#220;&#231; &#231;eşit operat&#246;r mevcuttur. Karşılaştırma oparat&#246;rleri , mantıksal operat&#246;rler ve k&#252;meleme operat&#246;rleri.Bu karşılaştırma operat&#246;rleri aşağıdaki gibidir ;
        operat&#246;r anlamı

        Kod:
        a>X          ... X... a'dan k&#252;&#231;&#252;k
        a<X          ... X... a'dan b&#252;y&#252;k
        a=X          ... X... a'ya eşit
        a=>X        ... X... a'dan k&#252;&#231;&#252;k eşit
        a<=X        ... X... a'dan b&#252;y&#252;k eşit
        a<>X        ... X... a'ya eşit değil
        Mantıksal operat&#246;rler ise AND,OR,NOT olarak verilebilir. Bu operat&#246;rler burada anlatmayacağız. Bunlar standart b&#252;t&#252;n dillerde aynı olan operat&#246;rlerdir.K&#252;meleme operat&#246;rleri ise datalar &#252;zerinde gruplama yapmamızı sağlayan operat&#246;rlerdir.Bu operat&#246;rler Between , In , Like operat&#246;rleridir. Bu operat&#246;rlerin hepsini where ile birlikte kullanmalıyız.

        Between : Aralıklı sorgulama yapmak istersek kullanabilecegimiz bir operat&#246;rd&#252;r.

        &#214;rnek 1 :


        Kod:
        SELECT * FROM ucretler WHERE aylik_ucret BETWEEN 200000000 AND 300000000
        Bu c&#252;mlecik ile 200 ile 300 milyon arasında maaş alanlar listelenecektir.


        vBulletin a&#231;ısından benzer &#246;rnek :



        Kod:
        SELECT * FROM user WHERE posts BETWEEN 1200 AND 3000
        Bu query ile, mesaj sayısı 1200 - 3000 arasında olan forum &#252;yeleri listelenecektir. Aynı mantık ve &#246;rneklere dayanarak, alttaki &#246;rnekler ce vBulletin 'e g&#246;re uyarlanabilir.



        In : Bu komut ile belli bir kolonun k&#252;mesini vererek işlemimizi daha kolay bir şekilde yapabiliriz.

        &#214;rnek 3 :


        Kod:
        SELECT * FROM personel WHERE meslek_id IN (1,2,3)
        Buradaki &#246;rnek 'te 1,2 veya 3 meslek grubundan herhangi birine dahil olan personel listelenemektedir.Bu &#246;rnek aşagıdaki şekildeki gibide yapabiliriz;

        Kod:
        SELECT * FROM personel 
        WHERE meslek_id=1 OR meslek_id=2 OR meslek_id=3
        Like : Bu ise i&#231;inde belli bir karakter dizisi bulunan datalara ulaşmak istersek kullanabileceğimiz bir operat&#246;rd&#252;r.

        &#214;rnek 4 :
        Kod:
        SELECT * FROM personel WHERE adres LIKE '%İstanbul%'
        Bu sorgulama ile adres alanında İstanbul ge&#231;en kayıtları listelemiş oluruz.

        &#214;rnek 5 :

        Kod:
        SELECT * FROM personel WHERE adres LIKE '%İstanbul'
        Bu sorgulama ile adres alanının sonunda İstanbul ge&#231;en kayıtları listelemiş oluruz.

        &#214;rnek 6 :

        Kod:
        SELECT * FROM personel WHERE adres LIKE 'İstanbul%'
        Bu sorgulama ile adres alanının başında İstanbul ge&#231;en kayıtları listelemiş oluruz

        Yorum yap

        • #5

          SQL'de Yeni Bir Kayıt Eklemek


          Tabloya yeni bir satır eklemek istersek INSERT INTO s&#246;zc&#252;ğ&#252;n&#252; kullanırız. Genel kullanım şekli aşağıdaki bi&#231;imdedir ;


          Kod:
          INSERT INTO tablo adı VALUES (deger1,deger2,deger3,...)

          vBulletin a&#231;ısından benzer &#246;rnek :

          Kod:
          INSERT INTO user VALUES (deger1,deger2,deger3,...)
          Bu yolla, elinizdeki SQL yedeğinden (yedek dosyası bozuk bile olsa), silinmiş yada hacklenmiş forumunuzu sıfırdan kurarak &#252;yelerinizi geri getirebilirsiniz. &#214;rneğin SQL yedek dosyasında "user" tablosu kısmından bir &#252;yenin (organik81) geri y&#252;klenişi; (zamanında bir deneme yaparken kendi &#252;yeliğimi silmiştim ve bu yolla geri getirdim..)
          Kod:
          INSERT INTO user VALUES('1', '6', '', '0', 'organik81', '3e15849beaf6de24d89b38b7eb1b72f4', '1988-12-09', '[email protected]', '0', '', '', '', '', '', '2', 'Administrator', '0', '597633168', '0', '598228328', '598238078', '598151263', '4', '10', '1', '', '0', '0', '0', '0', '2135', '', '0000-00-00', '-1', '1', '', '0', '0', '', '0', '0', '-1', '0', '0', '.mk');
          Eğer sadece belirli sahalara değer girmek istersek INSERT INTO'yu aşağıdaki şekildeki gibide kullanabiliriz.

          Kod:
          INSERT INTO tablo adı(kolon1,kolon3,kolon9,kolon7) VALUES (deger1,deger3,deger9,deger7)
          &#214;rnek :

          Yeni bir personel eklemek istersek ;


          Kod:
          INSERT INTO personel VALUES ('asdf2345','Ahmet','Yıldırım','01.01.1960','Ankara','E',1,7,1,'ebuziya cad. Bakırk&#246;y')


          vBulletin a&#231;ısından benzer &#246;rnek :

          Kod:
          INSERT INTO user(username,password,posts,reputation) VALUES (organik81,123456,1228,5400)
          Bu &#252;stte yaptığım d&#246;ng&#252;n&#252;n anlamı şudur : Sıfır kurulmuş bir foruma "organik81" isminde bir &#252;ye ekleyecek, şifresi "123456" olacak, mesaj sayısı "1228" olacak, rep puanı da "5400" olacak. Diğer &#252;yelik bilgileri default yani sıfır (boş) olacak.

          Yorum yap

          • #6

            SQL Tablo'dan Kayıt Silmek


            Tablodan bir satır silmek istersek DELETE s&#246;zc&#252;ğ&#252;n&#252; kullanırız. Genel kullanım şekli aşağıdaki bi&#231;imdedir ;


            Kod:
            DELETE FROM tablo adı

            Eğer yukarıdaki gibi bir sorgulama yazıp &#231;alıştırırsak tablodaki b&#252;t&#252;n kayıtları sileriz. Bunun i&#231;in DELETE c&#252;mleciğini kullanırken dikkat edilmelidir.

            &#214;rnek : Sicil nosu 12345678 olan kayıt silinmek istenirse;


            Kod:
            DELETE FROM personel WHERE sicil_no='12345678'
            &#214;rnek : Doğum tarihi 1940'dan &#246;nce doğmuş personel kayıtları silinmek istenirse ;

            Kod:
            DELETE FROM personel WHERE dogum_tarihi<'0'


            vBulletin a&#231;ısından benzer &#246;rnek :

            Mesaj sayısı 20 'nin altında olan &#252;yelerin &#252;yeliğini forumdan komple silelim;


            Kod:
            DELETE FROM user WHERE posts<'20'

            Yorum yap

            • #7

              SQL'de Kayıt Değişikliği


              Tablodan bir kayıtı değiştirmek istersek UPDATE s&#246;zc&#252;ğ&#252;n&#252; kullanırız. Genel kullanım şekli aşağıdaki bi&#231;imdedir ;


              Kod:
              UPDATE tablo adı SET kolon1=deger1,kolon2=deger2,... WHERE koşul;
              &#214;rnek : Sicil nosu 12345678 olan kayıtın adresi değiştirlmek istenirse ;


              Kod:
              UPDATE personel SET adres='Bronz Sok. Teşvikiye' WHERE sicil_no='12345678'
              &#214;rnek : B&#252;t&#252;n personele uygulanan kesinti &#252;creti 10.000.000 sabit olarak belirlenirse ;


              Kod:
              UPDATE ucretler SET kesinti=10000000
              &#214;rnek : B&#252;t&#252;n personelin maaşına %20 zam yapılırsa ;

              Kod:
              UPDATE ucretler SET aylik_ucret=aylık_ucret*1.20


              vBulletin a&#231;ısından benzer &#246;rnek :

              &#220;ye nicki "organik81" olan bir kişinin &#246;nce email adresini değiştirelim ([email protected] şeklinde), sonra da rep puanını % 50 oranında arttıralım ;


              Kod:
              UPDATE user SET email='[email protected]' WHERE username='organik81'
              Kod:
              UPDATE user SET reputation*1.50 WHERE username='organik81'

              Yorum yap

              Hazırlanıyor...
              X