Posted in MySQL

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).
mysql> select * from kullanicilar;

+—-+————–+———+————————+——-+
| no | Ad | Soyad | eposta | bolum |
+—-+————–+———+————————+——-+
| 1 | Fehmi Noyan | ISI | fni18444@gantep.edu.tr | eee |
| 2 | Mehmet | Korkmaz | kormkaz@linux.org.tr | pe |
| 3 | Adem | Sarnici | a_sarnici@yahoo.com | pe |
| 4 | 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
mysql> select 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
mysql> select 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.
mysql> select 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.
mysql> select 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.
mysql> create table kullanicilar
->(no int auto_increment, Ad 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ı
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.
mysql> insert 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
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.
mysql> update kullanicilar set eposta=’yeni_adresim@adres.com’
-> where no=’1’;
Yukarıdaki SQL satırı kullanicilar adlı tablodan no bilgisi 1 olan kullanıcının eposta bilgisini yeni_adresim@adres.com olarak değiştirilmesi için kullanılır. Komutun kullanımında
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.
mysql> delete 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ı
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 yaralı olabileceğini düşünüyorum.

Müəllif:

Graphic Designer

Bir cavab yazın

Sistemə daxil olmaq üçün məlumatlarınızı daxil edin və ya ikonlardan birinə tıklayın:

WordPress.com Loqosu

WordPress.com hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Twitter rəsmi

Twitter hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Facebook fotosu

Facebook hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Google+ foto

Google+ hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

%s qoşulma