MySql
MySql,; Oracle, Progress, MsSql, PostgreSql gibi veri tabanı programıdır. Kullanılan dil SQL (Structured Query Language) yapısal sorgulama dilidir. Lisansı GNU General Public License olarak bilinen genel kullanıcı lisansıdır.
İndirebileceğiniz ve bilgi alabileceğiniz MySql'in resmi sitesi http://www.mysql.com dur. Mysql'i açık işletim sistemleride kullanabilecğiniz gibi Microsoft işletim sisteminde de kullanabilirsiniz.
Aslında Microsoft kendi işletim sisteminde kullanılmak üzere bir veri tabanı programı oluşturmuş olmasına karşın size tavsiyem MySql olacaktır. MySql ile ücret ödemeden bir geliştirme yapabileceğiniz halde. MsSql' de bunu bir takım şartlara bağlı olarak üstelik kısıtlı olarak yapabilmektesiniz.
Komut ekranından verilen MySql komutları aşağısaki gibidir. mysql> SELECT kolon_adı FROM veritabanı_adı.tablo_adı;
mysql> SELECT kolon_adı FROM veritabanı_adı.tablo_adı; Burada mysql hangi komut satırında çalıştığınızı bize göstermektedir. Select seçim anlamındadır. Burada hangi kolon ya da kolonları seçtiğimizi belilermemizi sağlar. From yapılan bu işlemleri nereden olduğuna dair bir yönlendirme yapmamız sağlanır.
mysql> SELECT kolon_adı FROM veritabanı_adı.tablo_adı; veritabanı_adı ; hangi veri tabanına bağlama isteğimizin belirtilmesi sağlanır. tablo_adı; hangi tabloya bağlanma isteğimizin belirtilmesi sağlanır.
Bu bilgilerden sonra bir veri tabanının yapısı en basit şekli ile aşağıda ki gibidir. Veri Tabanı Adı Tablo Adı Kolon adı Şeklindedir.
Örnek; Bir öğrenci işlerine ait veri tabanında bit not tablosu birde öğrencinin kimlik bilgileri tablosunun yer aldığını var sayalım. Bu tablolarda yer alan kolonlar da ise; Not tablosunda; öğrenci numarası, vize, final, bütünleme, Öğrenci kimlik bilgilerini içeren tabloda ise öğrenci öğrenci numarası, adı, soyadı, ana ve baba isimlerine ait bilgilerin yer aldığını varsayalım.
Bu durumda şekil aşağıdaki gibi olacaktır. Öğrenci İşleri Veri Tabanı Öğrenci Not Bilgileri Tablosu Öğrenci No (Kolon İsmi) Öğrenci Vize Notu (Kolon İsmi) Öğrenci Final Notu (Kolon İsmi) Öğrenci Bütünleme Notu (Kolon İsmi) Öğrenci Kimlik Bilgileri Tablosu Öğrenci No (Kolon İsmi) Öğrenci Adı (Kolon İsmi) Öğrenci Soyadı (Kolon İsmi) Öğrenci Ana Adı (Kolon İsmi) Öğrenci Baba Adı (Kolon İsmi)
Örnek; mysql> SELECT ogrenci_adi,, ogrenci_soyadi -> FROM ogrenci_notu -> WHERE ogrenci_vize> 30 AND ogrenci_final > 50;
İnternet üzerinden derlemiş olduğum SQL komutlarını veriyorum. DISTINCT: Birbirinin aynı olan satırların listelenmemesi için bu ifade kullanılır. "select distinct uyeadi from uyeler"
IN: Kosul belirtirken kullaniriz. Mesela ismi netrobin, ali veya mehmet olan isçilerin bilgilerini listelemek için. "select * from uyeler where uyeadi in ( netrobin, ali, mehmet )"
LIKE: Eger aradigimiz kayitin bulunmasi için tam bir karsilastirma yapamiyorsak "select * from uyeler where uyeadi like %a "
BETWEEN: Kosul belirtirken iki deger arasini belirtmek için kullanilir. Örnek: Yasi 30 ile 40 arasindaki isçilerin kayitlarini listelemek için "select * from uyeler where yas between 30 and 40"
SUM: Seçilen degerlerin toplamini bulur. Isçilerin aldigi toplam ücreti görmek için "select sum(ucret ) from uyeler"
MAX, MIN, AVG: Verilen degerin en büyügünü, en küçügünü ve ortalamasini bulur. MAX en büyük degeri, MIN en küçük degeri, AVG ise seçilen degerlerin ortalmasini bulur. "select MAX(UCRET ), MIN(UCRET ), AVG(UCRET ) from uyeler where tarih> 01.01.1999 "
ORDER BY ASC: Tablodan seçtigimiz kayitlari alfabetik siralamak için kullanilir. "select * from uyeler order by asc"
ORDER BY DESC: Tablodan seçtigimiz kayitlari son kayıt sırasına göre siralamak için kullanilir. "select * from uyeler order by desc"
GROUP BY: Genelde istatistik amaçlar için kullanilir. Mesela hangi tarihte kaç isçinin ise alindigini bulmak için.
ALIAS: Genelde tablonun veya kolonun adını başka bir şeymiş gibi değişirebiliriz. Uyeler tablosundaki uyeadi kolonunun adını isim yaptık yani isim olarak çağırabiliriz. "SELECT uyeadi AS isim FROM uyeler"
JOIN: Bazen iki yada daha fazla tablodan veri cekmemiz gerekebilir, bu gibi durumlarda bu methodu kullanırız. Birbiri ile ilişkilendirilmiş iki tablomuz var biri uyeler diğeride detaylar olsun. İki tablodanda aynı anda sorgulama veya veri çekeceğiz. Uyeler tablosunda id=1 ise detaylar tablosundaki karşılğı ise uyeno=1 olarak yapıyoruz.
"SELECT * FROM uyeler,detaylar WHERE uyeler.id=detaylar.uyeno" INNER JOIN OLARAK "SELECT * FROM uyeler INNER JOİN detaylar ON uyeler.id=detaylar.uyeno" LEFT JOIN OLARAK "SELECT * FROM uyeler LEFT JOİN detaylar ON uyeler.id=detaylar.uyeno"
UNION ve UNION ALL : Join methoduna benzer ama sadece aynı kolonlara sahip tabloları birbirine bağlar. Uyeler ve Detylar tablosundaki uyeadlarını sorgular. "Select uyeadi from uyeler UNION Select uyeadi from detaylar" Sadece UNION kullanırsak iki tabloa aynı isimler olsa bile tekrarlar. UNION ALL kullanırsak iki tabloda aynı isimler olsa bile sadece tekini sorgular. "Select uyeadi from uyeler UNION ALL Select uyeadi from detaylar"
Bazı SQL FONKSİYONLARI AVG(kolon ): girilen kolondaki sayıların aritmetik ortalama degerini geri yollar COUNT(kolon ): Boş degerler haric, girilen kolondaki satır sayısını yollar COUNT(* ): Verilen tablodaki satır sayısını yollar AVG(kolon ): girilen kolondaki sayıların aritmetik ortalama degerini geri yollar