MySQL Danışmanlığı

NoSQL teknolojisi kullanılmaya başlanmadan önce web üzerindeki en hızlı veri tabanlarından biriydi!

Mysql açık kaynak bir proje olarak 1995’de yayınlandı. altı milyondan fazla sistemde yüklü bulunan çoklu iş parçacıklı (İmulti-threaded), çok kullanıcılı (İmulti-user), hızlı ve sağlam (İng. İngilizce: robust) bir veri tabanı yönetim sistemidir. Veri tabanı motoru ( Storage Engine ) olarak olarak MyISAM ve InnoDB kullanmaktadır. Yeni versiyonlar InnoDB mimarisi üzerinde inşa edilmektedir. NoSQL teknolojisi kullanılmaya başlanmadan önce web üzerindeki en hızlı veri tabanlarından biriydi!

Geliştiriciler ne diyor

Geliştiricileri, 500’den fazla 7M kayıt içeren 10K tablodan oluşan kendi veritabanlarını (100 gigabyte civarında veri) MySQL’de tuttuklarını söylüyorlar. Web sunucularında en çok kullanılan veri tabanı olup ASP, PHP gibi birçok Web programlama dili ile kullanılabilir. MySQL, tuttuğu tablolarla çok kullanıcılı sistemlerde söz konusu olan erişim hakları sorununu başarılı bir şekilde çözmektedir. MySQL’in 4.0 sürümü ile birlikte “İngilizce: transaction” desteği, 4.1 sürümüyle birlikte de alt sorgu desteği eklenmiştir.

Satın Alma

Oracle, 27 Ocak 2010’da Sun Microsystems’i satın aldı.

Oracle’ın Sun’ı satın aldığını duyurduğu gün, Michael Widenius MySQL’i forklayarak MariaDB’yi başlattı ve beraberinde MySQL geliştiricilerinin bir kısmını aldı.

Oracle Satın Almasından Sonra

Mysql Enterprise Edition’ı Duyurdu Storage Management ve InnoDB Cluster gibi özellikler kazandı.

MySQL iki farklı sürüm altında sunulur: açık kaynaklı MySQL Community Server ve tescilli Enterprise Server . MySQL Enterprise Server, sunucu eklentileri olarak yüklenen bir dizi tescilli uzantı ile farklılık gösterir, ancak bunun dışında sürüm numaralandırma sistemini paylaşır ve aynı kod tabanından oluşturulur.

Tablo oluşturulurken kullanılan bazı alan türleri:

  • Int: Sayısal veri tipidir. Negatif ve pozitif değerler alabilir.
  • Char(değer): değer büyüklüğünde string ifade saklanabilecek tiptir.
  • Varchar(değer): değer büyüklüğünde string ifade saklanabilecek tiptir. Değişken boyutta olabilir.
  • Date: Tarih bilgisini tutan tiptir.
  • Time: Zaman bilgisini tutan tiptir.
  • DateTime: Tarih ve zaman bilgisini bir arada tutan tiptir.
  • Timestamp: O anki tarih ve saat bilgisini tutan tiptir.
  • Enum(değer1,değer2,..,değerN): Metin olarak aynı anda doğru olamayacak bilgileri depolar.
  • Set(değer1,değer2,..,değerN): Enum tipine benzer, ancak birden çok değeri aynı anda alabilir.

Bu alanlar dışında mevcut bazı tiplerde vardır. Fakat en sık kullanılan tipler bunlardır. Eğer bu tipleri incelemek isterseniz mysql manual’ini incelemeniz yeterli olacaktır.

Bir Database’nin Logical Yedeğini Almak

Phpmyadmin ile bir database’in yedeğini almak demek o database’in başka yerde kullanılabilmesi için sql şekline tablolarının çevrilmesidir. İki şekilde alınabilir. Phpmyadmin’de herhangi bir database’i sol frame’den seçip sağ frame’de “View dump (schema) of database” bölümünü kullanabiliriz. Burada 3 seçenek vardır.

Burada ;

Structure only: Sadece alanları ve tabloları tutar.

Structure and data: Hem meta dataları hemde alanlara kayıtlı data verileri tutar.

Data only: Sadece tablolara kayıtlı alanları tutar.

Eğer herhangi birini seçip sorunsuz şekilde çalışırsa karşımıza söyle bir görüntü gelir.

CREATE TABLE `isim` (
  `ad` varchar(10) NOT NULL default '',
  `soyad` varchar(10) NOT NULL default '',
  `posta` varchar(50) NOT NULL default ''
) TYPE=MyISAM;
 

Eğer bunu herhangi bir text dosyasına kaydedip saklarsanız ilerde tekrar oluşturmaya gerek kalmadan direkt database oluşturulduktan sonra PhpMyAdmin’deki “Run sql query” bölümü kullanılarak tablo oluşturulabilir.

SQL

Select Deyimi

Bir tablodan kayıt çekmek için select deyimi kullanılır.

Kullanım şekli:

Select (alan adi) from (tablo adı);

Örnekler:

Select * from isim;

İsim adlı tablodaki tüm kayıtları çeker.

Where Deyimi:

Sql cümleciği içinde arama kriteri belirtmek için kullanılır.

Kullanım şekli:

DELETE [Alan Adi] FROM [Tablo Adı] WHERE [Seçilen Kriter]
SELECT [Alan Adi] FROM [Tablo Adı] WHERE [Seçilen Kriter]
UPDATE [Tablo Adi] SET [Yeni Değer] WHERE [Seçilen Kriter]

Örnekler:

Select * from isim where adi=’nevlex’;

adi=’nevlex’ olan kayitlari tablodan çeker.

Select * from nevlex where nevlex>50;

nevlex tablosundaki plaka alanı 60’den büyük olan kayıtları çeker.

Group By Deyimi:

Tablodan çekilen kayıtları belli kriterlere göre sıralamak için kullanılır.

Kullanım şekli:

SELECT [Alan Adi] FROM [Tablo Adı] WHERE [Seçilen Kriter] Group By [Alan Adı];

Örnekler:

Select * from isim group by ad;

İsim adlı tablodaki tüm kayıtlar çekilir bu sırada ad alanına göre’de sıralanırlar.

Order By Deyimi:

Tablodan çekilen alanları sıralamak için kullanılır. Group by deyimi ile benzer yapıdadırlar.

Kullanım Şekli:

SELECT [Alan Adi] FROM [Tablo Adı] WHERE [Seçilen Kriter] Order By [Alan Adı];

Örnekler:

Select ad from isim order by ad;

İsim adlı tablodan ad alanı çekilerek gene ad alanına göre sıralanıyor.

And ve Or Deyimleri:

Where kalıbını kullanırken birden çok kritere göre cümle yazılması gereken durumlarda kullanılır.

Kullanım Şekli:

… where kriter1 and kriter2

… where kriter1 or kriter2

Örnekler

Select * from isim where adi=’ali’ and soyadi=’mehmet’;

İsim adlı tablodan adı ali ve soyadı mehmet olan tüm kayıtlar çekilir.

Select * from isim where adi=’ali’ or adi=’mehmet’;

İsim adlı tablodan adi ali veya mehmet olan tüm kayıtlar çekilir.

Like Deyimi:

Where kalıbı içerisinde kullanılan bu yapı bir alan içindeki kayıtlarda baş harfe veya belli yere kadar olan harf veya harflere göre arama yaphpmyadmink gibi işlerde işimize yarayabilir.

Kullanım Şekli:

… where alan adı like kriter

Örnekler:

Select * from egg where renk like “%a?ı”;

Burada egg isimli tablodan renk alanına göre ilk başı önemli olmayan sonunda 3 harfinden ilki a sonraki önemli olmayan son harfi de ı olan tüm kayıtlar çekilir. Mesela “ayarı” gibi bir kayıt olsa bu kritere uyacaktır.

Select * from egg where renk like “be%”;

Burada egg isimli tablodan renk alanına göre ilk iki harfi be olan tüm kayıtlar çekilecektir.

Insert Into Deyimi:

Bir tabloya kayit eklemek için kullanılır.

Kullanım şekli:

Insert Into Tablo adı (alan1,alan2,..,alanN) values (‘değer1’, ‘değer2’,.., ‘değerN’);

Örnekler:

Insert Into isim (ad,soyad) values (‘ali’,’rizeli’);

İsim adlı tabloya sadece ad ve soyad alanlarına olmak üzere kayıt yapar.

Insert Into isim values (‘ali’,null,’[email protected]’);

Bu kullanım şeklinde alanlar belirtilmediğinden tüm alanların değeri belirtilmek zorundadır. Eğer girilecek alanlar belirtilmiş olsa idi boş kayıtlar belirtilmek zorunda kalmazdı.

Update Deyimi

Bir alanı güncellemek için kullanılır.

Kullanım şekli:

Update [Tablo Adı] Set alan=yeni deger Where aranan alan= alan değeri

Örnekler:

Update isim set ad=’murat’ where soy=’yüce’;

Soyadı yüce olan kayıtların adını murat yapar.

Update isim set posta=’[email protected]’ where ad=’murat’ or soy=‘yüce’;

Ad değeri murat veya soy değeri yüce olan kayıtların posta alanını [email protected] olarak günceller.

Delete Deyimi

Arama şartı belirtilen kayıtları siler.

Kullanım şekli:

Delete * From [tablo] where arama şartı;

Örnekler:

Delete * from isim where adi=’murat’;

Adi alani murat olan tüm kayitlari siler.

Delete * from isim where posta=null;

Posta alanı boş olan tüm kayıtları siler.

Leave a Reply

Your email address will not be published. Required fields are marked *