MySQL’de Tablolar

Bilgilerimizi saklamak için veritabanlarını kullandığımızı daha önce belirtmiştim. Sakladığımız bilgileri daha kolay bir şekilde işleyebilmek için sınıflandırmamız gerekir. Bu sınıflandırma işlemi için tabloları kullanırız. Tablolar sütunlar ve satırlardan oluşur. Aşağıda veritabanında kayıtlı “kullanicilar” isimli bir tablo görünüyor (Tabloların nasıl oluşturulacağını ilerideki bölümlerde aklayacağım).
scription">PHP- Kodu:
mysqlselect from   kullanicilar;+----+--------------+---------+------------------------+-------+|   no Ad           Soyad   |  eposta                bolum   |+----+--------------+---------+------------------------+-------+|  |   Fehmi Noyan  ISI     fni18444@gantep.edu.tr eee   ||  Mehmet        Korkmaz kormkaz@linux.org.tr   pe    ||  Adem         |  Sarnici a_sarnici@yahoo.com    pe    ||  Seckin Fatih Solgun   sf_solgun@freebsd.org  me     |+----+--------------+---------+------------------------+-------+4 rows  in set (0.05 sec)mysql

Yukarıdaki tabloda dört sütun ve dört satır var. Tablodaki verileri ekrana basmak için select * from kullanicilar; komutunu kullandım. Aynı komutu select Ad from kullanicilar; şeklinde verince
description">PHP- Kodu:
mysqlselect Ad from  kullanicilar;+--------------+| Ad            |+--------------+| Fehmi  Noyan  || Mehmet       || Adem         ||  Seckin Fatih  |+--------------+4 rows in set (0.03  sec)mysql
Yukarıdaki gibi bir tablo elde ederiz. MySQL ile MS-DOS ve UNIX işletim sistemlerinde olduğu gibi joker karakterler kullanılabilir. İlk komut satırında kullandığım “*” karakteri de bu joker karakterlere bir örnek. İlk tablodaki no, Ad, Soyad ve eposta adlı bölümler tablonun sütunlarının isimlerini gösterir. Komut satırında kullandığım “*” karakteri bu sütunların hepsinin görüntülenmesini istediğimi belirtir. Aslında daha önceden komut satırından işlem yönetenler için fazla yabancı bir ifade olmasa da ilk kez karşılaşacaklar için biraz karışıktır fakat zamanla kavranacaktır. Kısacası veritabanından bilgi almak için
select istenen_bilgi from tablo_adı;
gibi bir kalıp kullanılır. Veritabanından alınan sorgu belli koşulları gerektirebilir. Mesela yukarıdaki kullanicilar adlı tabloda ismi Mehmet olan kullanıcıları ekrana görüntülemek istersem
PHP- Kodu:
mysqlselect Ad from kullanicilar where Ad=’Mehmet’

gibi bir komut kullanmam gerekirdi.
Örnekleri çoğaltmak mümkün. Yapılan sorgu isteğe ve gereksinime göre değişik koşullar dahilinde gerçekleştirilebilir. where kalıbı ile olmasını istediğimiz bir özelliği belirtiyoruz. Peki elimizdeki verilerde olmasını istemediğimiz bir bilgiyi nasıl belirteceğiz? Bu iş için not kalıbı kullanılır.
PHP- Kodu:
mysqlselect eposta from kullanicilar where not bolum=’pe’

Yukarıdaki sorgu kalıbı kullanicilar adlı tablodan bolum bilgisi pe olmayan tüm kullanıcıların e-posta adreslerini ekrana basacaktır. not kalıbı ile or kalıbı da kullanılır. or kalıbı çift istekli durumlarda not işleçinin tam tersi işlev görür. Yani kullanicilar adlı tablodan Ad bilgisi Mehmet olan ve bölümü eee olmayan kullanıcıların listesi için kullanılması gereken SQL komutu aşağıdaki gibidir.
PHP- Kodu:
mysqlselect Ad from kullanicilar where not bolum=’pe’ or Ad=’Mehmet’

Buraya kadar hep tablolar üzerinde işlemlerden bahsettim. Sıra üzerinde işlem yaptığımız bu tabloları nasıl oluşturduğumuza geldi.
SQL’de tablo oluşturma işi aynen veritabanı oluşturma gibidir. Sadece tablo oluştururken tabloda tanımlı alanların özelliklerinin belirtilmesi gerekir. Yukarıda tüm örneklerimde kullandığım kullanicilar adlı tabloyu oluşturmak için kullanılacak SQL satırı aşağıdaki gibidir.
PHP- Kodu:
mysqlcreate table kullanicilar->(no int   auto_incrementAd varchar(13), Soyad varchar(12),-> eposta   varchar(25), bolum varchar(5), primary key(no));mysql

Tabloda kullanılan sütunların veri tiplerini ve en fazla kaç baytlık veri saklayabileceklerini belirttim. int terimi kullanılacak verinin sayısal bir değer olacağını simgeler, diğer sütunlar için kullandığım varchar terimi ise girilecek dizinin karakter kümesi olduğunu ve parantez içindeki sayısal değer ise bu kümenin maksimum alabileceği karakter sayısını belirler. Eğer girilen veri belirtilen maksimum değerden fazla ise belirtilen değer kadar karakter işleme alınır. Bunun için tablo oluştururken girilecek verilerin uzunluğunu göz önünde bulundurmanızda fayda vardır. Bunların dışında -> karakteri de dikkatinizi çekmiştir. SQL’de bir komutu ; ile sonlandırmadığınız sürece o komut ENTER tuşun bassanız bile bitmiş sayılmaz ve sizden bitirici karakteri (“;” ya da \g) girmeniz beklenir. Komutu üç satır halinde yazmamın sebebi sadece uzun ve karmaşık bir satır yazmaktan kaçınmak içindi. Aynı komutu tek satır yazmanız halinde de sonuçta herhangi bir değişiklik olmayacaktır. no sütunu için kullandığım auto_increment ve en sonda kullandığım primary key(no) kalıpları tabloda no ile belirtilen kısmın otomatik olarak her veri girdiğinde bir arttırılmasını sağlar. Bu özelliğin kullanılabilmesi için kullanılacak sütuna primary key özelliğinin atanması gerekir.
Diyelim ki tablomuzu oluşturduk ve web üzerinden bilgilerimizi kaydediyoruz. Bir gün, tablomuzu oluştururken kullandığımız sütun özelliklerini görmek istersek ne yapacağız? Bunun için describe komutu kullanılır. Komutun kullanımı
PHP- Kodu:
describe tablo_adi
şeklindedir.
Şimdi sıra boş olarak oluşturduğumuz kullanicilar adlı tabloya bilgi girişinde. Bilgi girişi için insert komutu kullanılır.
PHP- Kodu:
mysqlinsert into kullanicilar-> values (“”,”Fehmi Noyan”,”ISI”,-> “fni18444@gantep.edu.tr”,”eee”); 

Yukarıdaki komut kümesi kullanicilar adlı tabloya belirtilen bilgileri sırası ile girer. Bilgi girişi için
PHP- Kodu:
insert into tablo_adi values ("alan1_değeri""alan2_değeri",  ..., "alanN_değeri"); 
kalıbı kullanılır. İlk sütuna gelecek bolume sadece “” karakterlerini bırakmam bu bölümün auto_increment özelliğinden dolayı SQL tarafından otomatik olarak doldurulacak olmasındandır. Girilen her değer tırnak içinde yazılır ve birbirlerinden virgül ile ayrılır.
Bazen bir tablodaki verileri herhangi bir sebepten dolayı yenilememiz gerekebilir. Mesela yukarıdaki tabloda Fehmi Noyan adlı kullanıcının e-posta adresi değişmişse ve biz yeni adresi tablomuzda eski adresle değiştirmek istiyorsak kullanacağımız komut update komutudur.
PHP- Kodu:
mysqlupdate kullanicilar set eposta=’yeni_adresim@adres.com’    -> where no=’1’

Bu reklam sadece misafirlere görünüyor. Oturum açar veya üye olursan, bu reklamdan kurtulursun.


Yukarıdaki SQL satırı kullanicilar adlı tablodan no bilgisi 1 olan kullanıcının eposta bilgisini [email protected] olarak değiştirilmesi için kullanılır. Komutun kullanımında
PHP- Kodu:
update tablo_adı set sütun_adı=’yeni değer’ where  koşul
kalıbı uygulanır. where koşulundan sonra herhangi bir koşul satırı kullanılabilir (ben no bilgisini kullandım).
Girilen bilgileri silmek için delete komutu kullanılır.
PHP- Kodu:
mysqldelete from kullanicilar where bolum=’eee’

Yukarıdaki SQL komutu kullanicilar tablosundaki bolum bilgisi eee olan tüm kullanıcılar ile ilgili satırları silecektir. Komutun kullanımı
PHP- Kodu:
delete from tablo_adı where koşul
şeklindedir.
Son olarak da, MySQL’den çıkış için quit komutu kullanılır.

MySQL hakkında yazacaklarım bu kadar. Tabi benim bu belgeye dahil etmediğim daha birçok komut ve kullanım mevcut. Fakat ben bir sonraki bölümde PHP ile tablo işlemlerinde genelde bu komutları (bilgi ekleme, bilgi silme, bilgi alma ve bilgi yenileme) kullanacağım için sadece gerekli komutları verdim. Tabii yapacağınız çalışmanın amacına göre kullanacağınız veritabanlarının niteliği farklı olacaktır ama buradaki bilgilerin, en azından, MySQL hakkında hiç bilgisi olmayan bir kullanıcı için yararlı olabileceğini düşünüyorum.

Alıntı: https://webmasterlord.net/showthread.php?t=788