MySQL nedir?

+ Yorum Gönder
Webmaster ve Sorunlarınız ve İstekleriniz Bölümünden MySQL nedir? ile ilgili Kısaca Bilgi
  1. 1
    OR@L
    Usta Üye
    Reklam

    MySQL nedir?

    Reklam



    MySQL nedir?

    Forum Alev
    arkadaşlar biri bana biri mysql u tam olarak açıklayabilirmi. ne işe yarar. ve bunun gibi herşey.:confused:



  2. 2
    Hasan
    Özel Üye

    --->: mySQL nedir?

    Reklam



    PHP ve MySQL

    1. MySQL Nedir ?
    2. PHP ile MySQL'e Giriş.
    3. Veritabanı Oluşturma, Listeleme ve Silme
    4. Tablo Oluşturma, Listeleme ve Silme
    5. SQL İle Veri Girişi, Listeleme, Güncelleme ve Silme


    1. MySQL Nedir ?

    MySQL Nedir. MySQL'i tanımak için önce SQL'i tanımak gerekir. SQL veritabanlarında kullanılan bir prosedürdür. Çoğu veritabanı SQL komutları ile çalışır. SQL Sorguları ile veritabanlarına bilgiler eklenir, silinir ve güncellenir. Kısacası, SQL çoğu Veritabanlarında kullanılan komut dilidir. MySQL' de bir veritabanıdır. Unix tabanlı sistemler için geliştirilen ancak zaman içinde Win, Mac gibi pek çok sistemdede kullanılabilir hale gelen MySQL veritabanları arasındaki en hızlı dillerdendir. Oracle'dan sonra en hızlı veritabanı olan MySQL, Kullanımı, sistemleri adaptasyonu ve kullanım kolaylığı bakımından en çok tercih edilen veritabanı dilidir. MySQL, tüm interaktif diller tarafından desteklenir. Sorguları salt SQL kodları ile aıp gönderdiği için oldukça hızlıdır ve kullanıldığı interakif dili fazla zorlamaz. MySQL Veritabanı diğer veritabanlarındaki gibi salt bir dosya veya bir üniter yapı değildir. MySQL'de veriler sunucu üzerinde tutulur, size tahsis edilen şifre ile bu veritabanına erişerek veri akışı sağlanır. Bu avantajlarıyla güvenlik + hız MySQL'in popülaritesinin artmasına vesile olmuştur.

    PHP, MySQL için biçilmiş kaftan gibidir. Bunun içindirki PHP ve MySQL muhteşem ikili olarak adlandırılır. Her ikiside Unix tabanlı sistemler için geliştirildiği için birbirine son derece uyumludur ve hızlıdır. Bütün bu özelliklerine ek olarakta fevkalade hızlıdır.


    2. PHP ile MySQL'e Giriş.

    PHP ile MySQL çalıştırmak basit diğer fonksiyonları kullanmak kadar kolay ve pratiktir. Kodlama yapısı diğer fonksiyon ve prosedürlerden farklı olmayan MySQL fonksiyonları sorgularıda SQL komutu ile gerçekleştirerek dönen değerleri While, For gibi değerlerle alabilir. MySQL Programlarken yukarıdaki makaledede anlatıldığı üzere önce Veritabanı sunucusuna bağlanmamız gerekir. Bize tahsis edilen kullanıcı adı ve şifre ile sunucuya bağlandıktan sonra yetkilerimiz doğrultusunda işlemlerimizi gerçekleştirebiliriz. MySQL sunucusu ekseriyetle Web Sunucumuzdadır. PHP ve MySQL ile ilgili kodlamalarda MySQL sunucumuzun lokal sistemde olduğunu varsayarak hareket edeceğiz.

    Şimdi Aşağıdaki örnek kodlar ile Sunucumuza bağlanalım ;



    Kod:
    <? @mysql_connect("localhost","root",""); @mysql_select_db("Deneme"); ?>

    Yukarıdaki kodlar ile MySQL sunucumuza bağlanarak login oluyoruz. Yapı burada oldukça basitdir. MySQL ile ilgili gerçekleştireceğimiz işlemleri "@" işaretini kullanarak gerçekleştiriyoruz. "@mysql_connect()" fonksiyonu ile İlk tırnaklar arasına sunucumuzun konumunu veya IP'sini "localhost" yazıyoruz. İkinci tırnaklar arasında kullanıcı adımızı "root" üçüncü tırnaklar arasındada şifremizi yazıyoruz. "" Gerçekleştireceğimiz örneklerde sunucumuzun lokalde kurulu olduğunu ve bizden şifre istemediğini varsayıyoruz.

    Akabinde işlemlerimizi gerçekleştireceğmiz veri tabanını seçiyoruz. Bu işlemide "@mysql_select_db()" fonksiyonu ile gerçekleştiriyoruz. Bu fonksiyonun kullanımıda oldukça kolaydır. Parantezler içerisine üzerinde çalışacağımız veritabanının adını yazmamız yeterli olacaktır.

    Bu işlemler sonucunda veritabanına bağlantımız sağlanmış olacaktır. Artık veritabanı üzerinde işlemler yapabilir, yapılan işlemlerin sonucunu algoritma içerisinde değerlendirerek raportize edebiliriz.

    Daha öncede bahsettiğimiz gibi MySQL SQL String'leri ile yani SQL Komutları ile çalışır. Php ile MySQL'e göndereceğimiz talebi sorgu olarak SQL kodunu göndeririz. Bu sorgular aşağıdaki format ile gerçekleşir.


    Kod:
    <? $sorgu="SELECT * FROM Tablo1"; $degisken=mysql_query($sorgu); ?>

    Yukarıdaki örnekte MySQL sunucumuza bir sorgu gönderdik. $sorgu değişkenine basit bir SQL Sorgusu atadık ve $degisken değişkeni ile Sorguyu sunucuya göndermiş olduk. Dönen değeri $degisken değişkeninden ayıklıycaz. Bu örnekteki SQL Kodu ve sorguyu gönderdikten sonra dönen değerin ayıklanması işi aşağıdaki makalelerde detaylarıyla anlatılıyor. Yukarıdaki örnekten anlamamız gereken MySQL'e nasıl bağlanıldığı ve sorguların hangi biçim ve formatta gönderileceğidir.


    3. Veritabanı Oluşturma, Listeleme ve Silme

    MySQL ile veritabanı oluşturmak, silmek, tablo oluşturmak, veri akışını sağlamak ve diğer tüm işlemler, daha öncede bahsettiğimiz gibi SQL sorguları ile gerçekleşir. Bu sorgular "mysql_query()" fonksiyonu ile çalıştırılır. Şimdi örnek bir SQL sorgusu ile kendimize bi veritabanı oluşturalım.

    Not : Bu işlemi bir Web Sunucusunda gerçekleştirecek iseniz buna yetkinizin olduğundan emin olmalısınız. Sunucunuz size Her zaman yeni veritabanı oluşturma yetkisi verilmeyebilir.


    Kod:
    <? @mysql_connect("localhost","root",""); $sorgu=mysql_query("CREATE DATABASE Deneme"); echo $sorgu; ?>


    Yukarıdaki örnek kodlar bize "Deneme" adlı bir veritabanı oluşturacaktır. Kodlar görüldüğü üzere yukarıdaki paragraflarda anlatıldığı üzere standart SQL Sorgusu gönderim işlemi ile gerçekleşdi. $sorgu değişkenine atanan mysql sorgusundan dönen değer 1 olmalıdır. "echo $sorgu;" diyerek $sorgu değişkeninin değerini öğrenebiliriz. Sonuç bir hata ile karşılaşılmadığı takdirde 1 çıkacaktır. Sorgu ile ilgili bir hata olursa bu değer "0" olur. Bu değeri herzaman sınamamız gerekmiyor. Yukarıdaki örnekte yaptığımız işlemi teyid amacıyla $sorgu değişkeninden dönen değeri ekrana yazdırdık.

    PHP ile MySQL'de yeni bir veritabanı oluşturmayı öğrendik. Şimdi mevcut veritabanlarını listeleyelim. Bu işlemde yukarıdaki formatta gerçekleşecektir. Tek fark gönderilen sorgudur.


    Kod:
    <? @mysql_connect("localhost","root",""); $sorgu=mysql_query("SHOW DATABASES"); while ($listele=mysql_fetch_assoc($sorgu)): echo "$listele[Database]"; endWhile; ?>

    Yukarıdaki kodlar ile kullanabileceğimiz tüm veritabanlarını listeleyebiliriz. Burada yukarıdaki örneklerden farklı olarak bir işlem kullandık. Bu işlem $sorgu değişkeninden dönen değeri ayıklamak. "mysql_query" fonksiyonu ile sunucuya gönderdiğimiz SQL kodu bize bir yanıt verdi. Bu yanıtı "while" döngüsü ile aldık. Bu fonksiyonu biraz açıklayalım.

    While döngüsünün kullanımını önceki dökümanlarda görmüştük. Burada While() döngüsüne $listele adlı bir tampon değişken atadık. Bu değişkenede "mysql_fetch_assoc() fonksiyonu kullanarak $sorgu değişkenindeki sunucuya gönderdiğimiz sorgudan dönen değeri atadık. Akabinde döngü içerisine "echo $listele[Database] diyerek tampon değişkeninden dönen değeri ekrana yazdırmasını istedik. Bu yöntem PHP ile sorgu alışverişlerinde en sık kullanılan yöntemdir. Biz örneklerimizde While döngüsünü kullanacağız. Zaten diğer döngülerde aynı mantık ve prosedürle çalışır.

    Kullanmaya hakkımız olan veritabanlarını listeledik. Şimdi Veritabanları ile ilgili Silme işleminide öğrenmeye başlayabiliriz. Bu işlem için kullanacağımız sorgu ve kullanımı aşağıdaki gibi.


    Kod:
    <? @mysql_connect("localhost","root",""); $sorgu=mysql_query("DROP DATABASE Deneme"); echo $sorgu; ?>

    Yukarıdaki örnektede oluşturduğumuz "Deneme" adlı veritabanı'nı sildik. echo $sorgu dedik, dönen değer yine 1. Bu veritabanının silindiğini gösteriyor.

    Görüldüğü gibi MySQL'de PHP ile veritabanı oluşturmak, silmek ve listelemek standart'da aynı fonkisyonları kullanarak basit SQL kodlarıyla mümkün. Burdan sonraki konulardada aynı mantık ve pratik çalışma ile diğer işlemlerimizi gerçekleştirebiliyoruz.


    4. Tablo Oluşturma, Listeleme, Güncelleme ve Silme

    Tüm diğer veritabanı işlemleri gibi Tablo oluşturma, listeleme, güncelleme ve silme işlemleride standart prosedürlerle uygulanır. Çok fazla açıklamaya gerek yok aslında. Yukarıdaki örneklerde mantığı yeterince idrak ettik. Örneklerle pratik yapmaya devame delim ve yeni bir Tablo oluşturalım.


    Kod:
    <? @mysql_connect("localhost","root",""); @mysql_select_db("Deneme"); $sorgu=mysql_query(" CREATE TABLE `Tablo1` ( `no` INT NOT NULL, `adisoyadi` TEXT NOT NULL, `kullaniciadi` TEXT NOT NULL, `sifre` TEXT NOT NULL)" ); echo $sorgu; ?>

    Yukarıdaki örnekte veritabanımıza bağlandık, kullanacağımız veritabanını seçtik ve bir adet tablo ekledik. Örnek verdiğimiz kodlar biraz karışık gibi görünüyor, oysa çok basitdir ve önceki örneklerden hiçbi farkı yoktur. Örnek kodları biraz inceleyelim. Önce @mysql_connect() fonksiyonu ile sunucumuza bağlandık. Daha önce Deneme isimli bi veritabanı oluşturmuştuk. @mysql_select_db() fonksiyonu ile üzerinde çalışacağımız veritabanını seçtik ve $sorgu değişkenine göndereceğimiz sorguyu girmeye başladık. Bu sorgudaki yapı şu şekilde. no adisoyadi kullaniciadi sifre




    Burada tabloyu oluştururken şu kıstaslara dikkat edelim. Tablomuz 4 sütundan oluşuyor. Bir üyelik sistemi yaptığımızı varsayalım. Üyelerin bir üye numarası olacak, Ad ve Soyadları kayda girecek, ve bu kullanıcıya bi kullanıcı adı ve şifre atanacak. Burada SQL sorgusu olarak "CRATE TABLE" komutunu kullanıyoruz. Üye numarası bölümüne girilecek değerler için veri tibi olarak "INTEGER" yapıyoruz. Yani girilecek değere numerik nitelik veriyoruz. Diğer bölümler için Text özelliğini atıyoruz. Bu sorgu aşağıdaki şekilde olgunlaşıyor ;

    CREATE TABLE `Tablo1` (
    `no` INT NOT NULL,
    `adisoyadi` TEXT NOT NULL,
    `kullaniciadi` TEXT NOT NULL,
    `sifre` TEXT NOT NULL)"

    CRATE TABLE 'Tablo1' diyerek tablo oluştur ve bu tablonun adı "Tablo1" olsun diyoruz. Hemen altına geçerek ilk sütuna "no" başlığını veriyoruz ve Integer özelliğini "INT" tagıyla atıyoruz. Akabinde varsayılan değerini "NOT" diyerek boş bırakıyoruz ve NULL diyerek ilk veri değeri girmek istemediğimizi belirtiyoruz. Aynı prosedürü diğer sütunlardada uyguluyoruz ve alanların niteliklerini "Text" yani metin olarak biçimlendiriyoruz. Bu işlem bize yukarıdaki şablon gibi bir tablo oluşturuyor ve tablo içerisine veri girmemiz için gerekli alt yapıyı tahsis ediyor.

    Yukarıda örnek bir tablo oluşturmayı gördük. Bu tabloya bilgi girişi bir sonraki başlıkta detaylarıyla anlatılıyor. Konu dışına çıkmayalım ve Şimdi veritabanımızda bulunan tabloları listelemeyi görelim. Bu işlemide yine sorgular yardımıyla yapıyoruz.


    Kod:
     
    <? @mysql_connect("localhost","root",""); @mysql_select_db("Deneme"); $sorgu=mysql_query("SHOW TABLES"); while($listele=mysql_fetch_assoc($sorgu)): echo "$listele[Tables_in_Deneme]"; endWhile; echo $sorgu; ?>
    Yukarıdaki komtular bize Veritabanında mevcut tüm Tabloları listeleyecektir. Dikkat ederseniz bu örnektede While döngüsünü kullandık, çünki $sorgu değişkeni ile sorgudan dönen yanıtı ayıklamamız gerekiyordu. Burada dönen değeri $listele Tampon değişkenine atadık. Bu aslında bir dize değişkenidir. Bu değişkenden dönen yanıtı $listele dize değişkeninin içerisinde değeri [Tables_in_tabloadi] şeklinde çözüyoruz. Burada biçem hep aynıdır. "Tables_in_" takısından sonra tablo adını koymamız gerekiyor. Üzerinde çalıştığımız veritabanı "Deneme" olduğu için budize değerinin içerisindeki veriyi "Tables_in_Deneme" olarak ayıklıyoruz. Dönen değerlerin içerisinde birde "Resource id #" şeklinde bir im göreceksiniz. Bunu dikkate almayın, bu değer veri transferi sırasındaki istatistiki bilgileri içerir. Konu dışına çıkmamak için bunu anlatmıyoruz.

    Veritabanımız üzerinde temel işlemler olan tablo oluşturma, listeleme gibi işlemleri inceledik. Son olarak mevcut bir tabloyu nasıl sileceğimizide görelim.


    Kod:
    <? @mysql_connect("localhost","root",""); @mysql_select_db("Deneme"); $sorgu=mysql_query("DROP TABLE Tablo1"); echo $sorgu; ?>

    Görüldüğü üzere Mevcut bir tabloyu silmek oluşturmaktan çok daha kolay. Göndereceğimiz kısa bir SQL sorgusu ile tablomuzu silebiliyoruz. Yukarıdaki işlem bütün tabloyu komple silecektir. Kimi durumlarda bütün tabloyu değilde tablonun içerisindeki bir sütunu silmemiz gerekebilir. Böyle durumlardada aşağıdaki kodları kullanırız.


    Kod:
    <? @mysql_connect("localhost","root",""); @mysql_select_db("Deneme"); $sorgu=mysql_query("ALTER TABLE Tablo1 DROP `kullaniciadi`, DROP `sifre`"); echo $sorgu; ?>

    Yukarıdaki işlemde oldukça kolaydır. Sorgudaki fark gözümüze çarpmıştır. Burada daha önce kullanmadığımız bir komutu kullanıyoruz. "ALTER" bu komut vasıtası ile tablo içerisindeki sütunların niteliklerini değiştirip silebiliriz. Kullanımı oldukça basittir. "ALTER TABLE Tablo1" diyerek tabloda güncelleme yapacağımızı ve üzerinde çalışacağımız tabloyu belirtiyoruz. Akabinde yapacağımız işlemleri sıralıyoruz. "DROP 'kullaniciadi'," diyerek kullaniciadi sütununu silmek istediğimizi belirtiyoruz. Aynı şekilde "sifre" sütununu silmek istediğimizide hemen altına ekliyoruz. Sorgu çalıştırıldığında tablomuzdaki "kullaniciadi" ve "sifre" sütunları silinmiş olacaktır. Sorgunun sorunsuz çalıştığından emin olmak için yine sonuna $sorgu değişkenini echo ile yazdırabiliriz.


    5. SQL İle Veri Girişi, Listeleme, Güncelleme ve Silme

    Buraya kadar PHP ile MySQL'de veritabanı ve tablo işlemlerini inceledik. Şimdi son adım olarak mevcut tablolara nasıl veri girildiğini ve olan verilerin nasıl listelenip güncellendiğini inceleyelim.

    Bu işlemlere sırayı bozmadan önce veri girişini anlatarak başlayalım.


    Kod:
    <? @mysql_connect("localhost","root",""); @mysql_select_db("Deneme"); $sorgu=mysql_query("INSERT INTO `Tablo1` ( `no`, `adisoyadi`, `kullaniciadi`, `sifre`) VALUES ( '1', 'Sedat EKİNCİ', 'SHOPEN', '123') "); echo $sorgu; ?>
    Yukarıdaki örnekte Deneme adlı veritabanındaki "Tablo1" adlı tabloya bir değer girişi yapıyoruz. Örnek kodları inceleyelim. Sorgumuzu nasıl şekillendirdiğimiz üzerinde duralım. Sorgumuz "INSERT INTO" komutu ile başlıyor. Bu komutlarla veri girmek istediğimizi belirtiyoruz ve tablo adını giriyoruz. Akabinde parantez açarak tabloyapısındaki değerleri sırası ile giriyoruz. Tırnaklar içerisine sütun adlarını yazarak nokta bırakıyoruz ve parantezi kapatıyoruz. Akabinde VALUES() fonksiyon komutu ile sırayı takip ederek değerlerimizi giriyoruz. Bu değerler sonunda tablomuza bilgi girmiş oluyoruz. Tablo oluştururkende buna benzer bir prosedür uygulamıştık. Onun için bu yapıya aşinayız diyebiliriz.

    Mevcut tabloya bu formatla değerler girdiğimizi kabul edelim. Şimdi tablodaki verileri nasıl listeleyip sınamalara tabi tutacağımıza bakalım. Bu kullanacağımız işlem PHP ile MySQL programlamada en sık kullanacağımız işlem dizisi olacaktır. Yapı olarak diğerler anlattığımız işlemlerden bi farkı yoktur.


    Kod:
    <? @mysql_connect("localhost","root",""); @mysql_select_db("Deneme"); $sorgu=mysql_query("SELECT * FROM Tablo1"); while($listele=mysql_fetch_assoc($sorgu)): echo "$listele[no]-$listele[adisoyadi]-$listele[kullaniciadi]-$listele[sifre]"; endWhile; ?>
    Yukarıdaki örnek bize Tablo1 tablosu içerisindeki tüm değerleri listeleyecektir. Burada sorgu olarak "SELECT * FROM" diyerek bi tablo seçeceğimizi belirtiyoruz ve tablomuzun adını yazıyoruz. Tabloyu seçmemiz halinde $sorgu değişkeni tablo içerisindeki tüm verileri While döngüsüne alarak listeliyoruz. Görüldüğü gibi işlem oldukça sade ve basit.

    Şimdi bu örneği biraz niteliklendirelim. Tablodan bize dönen değerler verilerin son güncelleme tarihine göre listelenir. Yani sıralı olarak listelenmez. Bu işlem için sorguya bu seçeneği eklememiz gerekir. Bunu nasıl yaparız ? Yukarıdaki örnekdeki $sorgu değişkenine atanan MySQL sorgusunu değiştirmemiz yeterli.

    "SELECT * FROM Tablo1" dediğimiz alanı değiştirerek,

    "SELECT * FROM Tablo1 ORDER by no" yaparsak dönen değerlerin "no" sütunu baz alınarak sıralı olarak listelenmesini sağlarız. Aynı şekilde listeleme işlemini tersten yapmak istiyorsak, yani sondan başa doğru yapmak istiyorsak ;

    "SELECT * FROM Tablo1 ORDER by no DESC" yapmalıyız. Sorgu bölümüne bu kodu girmemiz halinde dönen değerler "no" sütunu baz alınarak sondan başa doğru listelenecektir.

    Herzaman bütün tablodaki verileri listelememiz gerekmeyebilir. Kimi zaman tablo içerisindeki tek bir bilgiyi almakta isteyebiliriz. Bunun içinde sorgumuzu;

    "SELECT * FROM Tablo1 WHERE no=2" Şeklinde değiştirmeliyiz. Buradaki sorguda "WHERE no=2" diyerek tablo içerisindeki "no" değeri 2 olan kaydı görüntüleriz.


    Tablo üzerindeki verileri girmeyi ve listelemeyi öğrendik. Kimi durumlarda mevcut bilginin güncellenmesi gerekebilir. Diyelimki Tablomuz içindeki Kayıtlardan birinin şifresini değiştirmek istiyoruz. Bu durumda aşağıdaki komutu kullanabiliriz ;


    Kod:
    <? @mysql_connect("localhost","root",""); @mysql_select_db("Deneme"); $sorgu=mysql_query("UPDATE Tablo1 SET sifre=1234 WHERE no=2"); echo $sorgu; ?>

    Bu örnekte sorgumuzu güncelleme için şekillendiriyoruz ve "UPDATE" komutu ile sorguya başlıyoruz. Değişkliği yapacağımız verinin bulunduğu tabloyu belirtiyoruz ve "SET sifre=1234" diyerek belirteceğimiz kayıtdaki "sifre" değerini 1234 yapacağımızı belirtiyoruz. Değişkliği yapacağımız kayıdın hangisi olduğunuda "WHERE no=2" diyerek no değeri 2 olan kaydı işaret ediyoruz.

    Evet, Bir MySQL veritabanı üzerinde gerçekleştirilebilecek temel işlemlerin hemen hepsini anlattık. Son olarak var olan tablodaki bir kaydı silmeyide aşağıdaki örnekle inceleyelim.


    Kod:
    <? @mysql_connect("localhost","root",""); @mysql_select_db("Deneme"); $sorgu=mysql_query("DELETE FROM Tablo1 WHERE no=2"); echo $sorgu; ?>

    Yukarıdaki kodlarda Tablomuzdaki no değeri 2 olan kaydı siler. Komutumuzu "DELETE" diyerek silme işlemi yapacağımızı ve "FROM Tablo1" diyerek veriyi sileceğimiz tablonun adını belirtiyoruz. "WHERE no=2" diyerekte no değeri 2 olan kaydı silmek istediğimizi belirtiyoruz.








  3. 3
    KemaaLL
    Emekli
    Alıntı ali oral Nickli Üyeden Alıntı Mesajı göster
    arkadaşlar biri bana biri mysql u tam olarak açıklayabilirmi. ne işe yarar. ve bunun gibi herşey.:confused:
    en basit tarifi bir veritabanıdır..genellikle php sitelerde kullanılan bilgilerin saklandığı veritabanıdır..altında çok detaylı işlemler ve kodlamalar vardır.her bilgi excel deki gibi tablolar içine ayrı değerlerle kaydedilir.işlem esnasında işlenen koda göre bu tablolar işleme girer.asp de access ile php de mysql benzer vazifeler görür ama güvenlik ve yaygınlık bakımından daha fazla tercih edilen bir veritabanıdır..







+ Yorum Gönder
5 üzerinden | Toplam : 0 kişi