MySQL, açık kaynak kodlu, bilgilerin depolandığı bir veritabanı yönetimi yazılımıdır. MySQL basit olmasına rağmen güçlü bir programdır, bu eğitim ile MySQL'i öğrenmeye başlayalım.
Ubuntu ve CentOS üzerine MySQL nasıl kurulur?
Sunucunuzda MySQL kurulu değilse kolayca indirip kurabilirsiniz.
sudo mysql-server install apt-get
sudo yum install mysql-server /etc/init.d/mysqld start
MySQL kurulumunu tamamladıktan sonra terminal ekranınızda aşağıdaki komutu yazarak komut satırına giriş yapabilirsiniz.
mysql -u root -p
MySQL komut satırına root kullanıcısıyla giriş yaptıktan sonra ilk veritabanımızı oluşturabiliriz.
Aklınızda tutmanız gereken iki önemli nokta var:
• Birincisi; MySQL'de kullanılan komutların tümü ";" noktalı virgül ile biter, noktalı virgül kullanmadığınız taktirde komut hiç bir anlam ifade etmez.
• İkincisi; MySQL komutları büyük harf olarak kullanılır ancak tablo isimleri, kullanıcı adları ve veritabanı isimleri küçük harf olarak yazılır. Bunun nedeni komutları ve girilen verileri birbirinden ayırt etmek içindir. Ayrıca MySQL komut satırı küçük harfe girilen komutlara duyarlı değildir. MySQL komut satırı küçük harfe girilen komutlara duyarlı değildir.
MySQL veritabanı girilen bilgileri organize ederek belirlenen tablolarda saklar.
Aşağıdaki komutu kullanarak MySQL'de kayıtlı bulunan veritabanlarını görüntüleyebilirsiniz.
SHOW DATABASES;
Girilen komut sonrasında aşağıdaki gibi bir ekran görüntülenir:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.01 sec)
MySQL'de aşağıdaki komutu kullanarak kolayca bir veritabanı oluşturabilirsiniz:
CREATE DATABASE database name;
Örneğin "events" adında bir veritabanı oluşturduğumuzda ve SHOW DATABASES; komutu ile aşağıdaki şekilde görüntü almalıyız.
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| events |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
MySQL'de veritabanı silmek için kullanılan komut DROP komutudur. Aşağıdaki komutu kullanarak istediğiniz veritabanını(DB) silebilirsiniz:
DROP DATABASE database name;
Yeni bir veritabanı oluşturduk, şimdi verilerimizi girmeye başlayabiliriz.
Öncelikle veritabanımızda bir tablo oluşturmamız gerekiyor:
Şimdi kullanmak istediğimiz veritabanını seçelim:
USE events;
Seçmiş olduğunuz veritabanı içerisindeki tablolara göz atmak için aşağıdaki komutu kullanın:
SHOW tables;
Bu yeni boş bir veritabanı olduğu için komut çıktısı "Empty set" şeklinde bir mesaj olabilir.
En iyi arkadaşınızla bir parti planlandığınızı hayal edin. Vereceğiniz partinin planını detaylandırmak için MySQL'i kullanabilirsiniz.
Bunun için işlem yapmak istediğimiz veritabanını seçtikten sonra, yeni bir tablo oluşturalım:
CREATE TABLE parti (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
isim VARCHAR(20),
yiyecek VARCHAR(30),
onaylandi CHAR(1),
kayit_tarihi DATE);
Bu komutla tablomuz içinde yer alacak sütunları oluşturduk ve özelliklerini belirledik:
1. Öncelikle dizin içerisinde parti adında bir tablo oluşturduk.
2. Sonra masa_id, isim, yiyecek, onaylandi ve kayit_tarihi başlıklı 5 sütunu oluşturduk.
3. (INT NOT NULL PRIMARY KEY AUTO_INCREMENT) bu komutla "Id" sütununu boş bırakmamasını ve otomatik olarak sayı atamasını söyledik.
4. VARCHAR komutu ile "isim" sütununa girilen kaydın karakter uzunluğunu 20 karakterle sınırlandırdık.
5. "yiyecek" sütunu kişilerin getirecekleri yiyecekleri belirler VARCHAR karakter limitini 30 karakterle sınırlandırır.
6. "Tarih" sütunu girilen kayıtların hangi tarihde girildiğinin kaydını tutacaktır. MySQL tarihleri yyyy-aa-gg olarak yazılır.
Şimdi "SHOW TABLES;" komutuyla tablomuza bir göz atalım:
mysql> SHOW TABLES;
+------------------+
| Tables_in_events |
+------------------+
| parti |
+------------------+
1 row in set (0.01 sec)
Bu komutla tablo içeriğini izleyebilirsiniz:
DESCRIBE parti;
MySQL komut satırı büyük küçük harfe duyarlıdır bu nedenle dikkatli olmak gerekir, parti ile Parti aynı şey değildir(!).
mysql>DESCRIBE plan;
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| isim | varchar(20) | YES | | NULL | |
| yiyecek | varchar(30) | YES | | NULL | |
| onaylandi | char(1) | YES | | NULL | |
| giris_tarihi| date | YES | | NULL | |
+-------------+-------------+------+-----+---------+----------------+ 5 rows in set (0.01 sec)
Elimizde partimize ait bir çalışma tablosu var. Şimdi detayları tablomuza işlememizin zamanı geldi.
Her sütuna veri girmek için aşağıdaki formatı kullanmalısınız:
INSERT INTO `parti` (`id`,`isim`,`yiyecek`,`onaylandi`,`kayit_tarihi`) VALUES (NULL, "Ali", "Ayran","Y", '2016-01-01');
Veri girişini yaptıktan sonra aşağıdaki gibi bir çıktı göreceksiniz:
Query OK, 1 row affected (0.00 sec)
Şimdi tablomuza bir kaç veri daha girelim:
INSERT INTO `parti` (`id`,`isim`,`yiyecek`,`onaylandi`,`kayit_tarihi`) VALUES (NULL, "Derya", "Limonlu Kek","N", '2016-01-01');
INSERT INTO `parti` (`id`,`isim`,`yiyecek`,`onaylandi`,`kayit_tarihi`) VALUES (NULL, "Berk", "Mangal","Y", '2016-01-01');
INSERT INTO `parti` (`id`,`isim`,`yiyecek`,`onaylandi`,`kayit_tarihi`) VALUES (NULL, "Tamer", "Et","Y", '2016-01-01');
Şimdi "SHOW TABLES;" komutuyla tablomuza tekrar bakalım:
mysql> SELECT * FROM parti;
+----+-------+----------------+-----------+-------------+ | id | isim | yiyecek | onaylandi | kayit_tarihi| +----+-------+----------------+-----------+-------------+ | 1 | Ali | Ayran | Y | 2016-01-01 | | 2 | Derya | Limonlu Kek | N | 2016-01-01 | | 3 | Berk | Mangal | Y | 2016-01-01 | | 4 | Tamer | Et | Y | 2016-01-01 | +----+-------+----------------+-----------+-------------+ 4 rows in set (0.00 sec)
Şimdi parti listemizdeki olası değişiklikleri ele alalım. Örneğin: Yukarıdaki tabloda Derya partiye katılamayacağını söylemiş son anda değişiklik yaparak katılabileceğini söyledi, şimdi tabloda bu güncellemeyi yapalım.
UPDATE `parti` SET `onaylandi` = 'Y' WHERE `parti`.`name` ='Derya';
Ayrıca boş olsalar bile, belirli hücrelere bilgi eklemek için yukarıdaki komutu kullanabilirsiniz.
Tablomuzu biraz daha kullanışlı ve detaylı hale getirmek için ekstra bir sütun ekleyelim. Partiye katılacak arkadaşların e-posta adreslerini ekleyelim.
Bunu kolay bir şekilde yapabiliriz:
ALTER TABLE parti ADD e-posta VARCHAR(40);
Bu komut tablomuzun sonuna e-posta isimli bir sütun oluşturur, VARCHAR ile de karakter sayısını 40 karakter ile sınırlandırıyoruz.
Tabloda belirli bir yere veya iki sütun arasına bir sütun yerleştirmeniz gerektiğinde aşağıdaki komutu kullanabilirsiniz:
ALTER TABLE parti ADD e-posta VARCHAR(40) AFTER isim;
Bu komutla isim sütununu tablomuzda e-posta sütunundan sonra oluşturduk.
Bir sütun silmek istediğinizde ise aşağıdaki komutla istediğiniz sütunu silebilirsiniz:
ALTER TABLE parti DROP e-posta;
Eğer tablonuzadan bir satır silmeniz gerekiyorsa, aşağıdaki komutla satır silebilirsiniz:
DELETE from [tablo adı] where [sütun adı]=[satır];
Örneğin, Derya aniden fikir değiştirdi ve partiye katılmaktan vazgeçti, ilgili satırı silmek için:
mysql> DELETE from parti where isim='Derya';
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM parti;
+----+------+-----------+-----------+-------------+
| id | isim | yiyecek | onaylandi | kayit_tarihi|
+----+------+-----------+-----------+-------------+
| 1 | Ali | Ayran | Y | 2016-01-01 |
| 3 | Berk | Mangal | Y | 2016-01-01 |
| 4 | Tamer| Et | Y | 2016-01-01 |
+----+------+-----------+-----------+-------------+
3 rows in set (0.00 sec)
Bu işlemi isim yerine id sütunu ile de gerçekleştirebilirsiniz.
Basitçe MySQL işlemlerini bu şekilde kullanabilirsiniz. Geliştirmek ve çeşitlendirmek çok zor değil, kolay gelsin.