MySQL Veritabanı Yönetimi-II

Kübra Çetin Erkan
Turk Telekom Bulut Teknolojileri
6 min readDec 1, 2022

Bu bölümde, veritabanlarının yönetimi hakkında temel komutları öğreneceğiz,

Veritabanı Oluşturma , Görüntüleme ve Silme

Öncelikle bir veritabanı oluşturarak başlayalım..

mysql> create database TurkTelekom;

Çıktı:
Query OK, 1 row affected (0.01 sec)

Var olan veritabanlarını görüntülemek “SHOW “komutunu kullanırız.Biz “ TurkTelekom “ isimli bir veritabanı oluşturduk.” information_schema,mysql,performance_schema ve sys “ veritabanları default olarak kurulu geldi.

mysql> SHOW DATABASES;

Çıktı:
+ — — — — — — — — — — +
| Database |
+ — — — — — — — — — — +
| TurkTelekom |
| information_schema |
| mysql |
| performance_schema |
| sys |
+ — — — — — — — — — — +
5 rows in set (0.00 sec)

Tablo Oluşturmak

Sıra geldi veritabanımız içerisinde bir tablo oluşturmaya: Bunun için öncelikle kullanacağımız veritabanını seçmeliyiz. “TurkTelekom” adındaki veritabanını seçmek için USE db_adi komutunu kullanırız.

mysql> USE TurkTelekom;

Çıktı:
Database changed

Böylelikle kullanacağımız veritabanını seçtik. PHP’de mysql_select_db() fonksiyonu bu iş için işimize yarayacaktır. Şimdi oluşturmak istediğimiz tabloyu hazırlayalım:

no isim yas email
1 Kubra 30 kubra.c@bbb
2 Gizem 26 Gizem.g@bbb
3 Sinem 27 Sinem.g@bbb

Oluşturacağımız tablo 4 sütun içerecektir. Bunlar no, isim, yaş, e-mail verilerinin barınacağı sütunlar. Burada kullandığımız no (id) tüm kayıtlar için ayrı olacak ve o tabloda ilgili veri ile ilgili işlem yapmamızı kolaylaştıracaktır. Bu sebeple no (id) kullanmamız gerekli. Tabiki bu olmak zorunda anlamına gelmiyor.

CREATE TABLE tablo_adi (sutunlar ); komutu yardımıyla bu tabloyu oluşturalım. Sütun adlarını yazarken virgül kullandığımıza (son sütun adı hariç) ve sütun adından sonra o sütunun özelliklerini sıraladığımıza dikkat edin!

mysql> CREATE TABLE calisanlar
(
no int unsigned not null auto_increment primary key,
isim varchar(45),
yas int,
email varchar(60)
);

Çıktı:
Query OK, 0 rows affected (0.02 sec)

Veri türleri ve tablo özelliği olarak adlandıracağımız (primary key, not null vs) kullanımları öğrendikten sonra kolaylıkla tablo oluşturacaksınız.

Tabloları Görüntüleme

Tabloları listelemek için SHOW TABLES komutu kullanılır.

mysql> show tables;
Çıktı:
+ — — — — — — — — — — — -+
| Tables_in_TurkTelekom |
+ — — — — — — — — — — — -+
| calisanlar |
+ — — — — — — — — — — — -+

Çıktı:
1 row in set (0.01 sec)

Oluşturduğumuz tablo listede görünmektedir. Şimdi bu tablo hakkında daha detaylı bilgi alalım. Bunun için DESCRIBE tablo_adi komutunu kullanacağız:

mysql> DESCRIBE calisanlar;

Çıktı:
+ — — — -+ — — — — — — — + — — — + — — -+ — — — — -+ — — — — — — — — +
| Field | Type | Null | Key | Default | Extra |
+ — — — -+ — — — — — — — + — — — + — — -+ — — — — -+ — — — — — — — — +
| no | int unsigned | NO | PRI | NULL | auto_increment |
| isim | varchar(45) | YES | | NULL | |
| yas | int | YES | | NULL | |
| email | varchar(60) | YES | | NULL | |
+ — — — -+ — — — — — — — + — — — + — — -+ — — — — -+ — — — — — — — — +
4 rows in set (0.00 sec)

Veri Eklemek

Bir tabloya veri eklemek için INSERT INTO tablo_adi komutu kullanılır.

mysql>INSERT INTO calisanlar (isim, yas, email) VALUES(“Kubra”, “30”, “kubra.c@bbb”);
mysql>INSERT INTO calisanlar (isim, yas, email) VALUES(“Gizem”, “26”, “Gizem.g@bbb”);
mysql>INSERT INTO calisanlar (isim, yas, email) VALUES(“Sinem”, “27”, “Sinem.g@bbb”);

Çıktı:
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)

Eğer bir tablodaki tüm sütunları seçeceksek yıldız (*) karakterini sütunları belirttiğimiz SELECT’ten sonraki kısma yazabiliriz.

mysql> SELECT * FROM calisanlar;

Çıktı:
+ — — + — — — -+ — — — + — — — — — — — — — — — — — — — — — — -+
| no | isim | yas | email |
+ — — + — — — -+ — — — + — — — — — — — — — — — — — — — — — — -+
| 1 | Kubra | 30 | kubra.c@bbb |
| 2 | Gizem | 26 | Gizem.g@bbb |
| 3 | Sinem | 27 | Sinem.g@bbb |
+ — — + — — — -+ — — — + — — — — — — — — — — — — — — — — — — -+
3 rows in set (0.01 sec)

Veri / Tablo / Veritabanı Silmek

Kayıt Silmek

Tablolarda yer alan kayıtların tamamını ya da WHERE koşul ile belirttiğimiz koşullara uyanları silmek için DELETE FROM tablo_adı komutunu kullanırız.

Yukarıdaki sorgu ile tablomuzda “yas” sütunundaki değer 30'in altında olan tüm kayıtlar silinecektir.

Eğer WHERE belirtmemiş olsaydık. İlgili tablodaki tüm veriler silinecekti.

mysql> select * from calisanlar;

Çıktı:
+ — — + — — — -+ — — — + — — — — — — — — — — — — — — — — — — -+
| no | isim | yas | email |
+ — — + — — — -+ — — — + — — — — — — — — — — — — — — — — — — -+
| 1 | Kubra | 30 | kubra.c@bbb |
| 2 | Gizem | 26 | Gizem.g@bbb |
| 3 | Sinem | 27 | Sinem.g@bbb |
+ — — + — — — -+ — — — + — — — — — — — — — — — — — — — — — — -+
3 rows in set (0.00 sec)
mysql> DELETE FROM calisanlar WHERE yas < 30;

Çıktı:
Query OK, 2 rows affected (0.00 sec)
mysql> select * from calisanlar;

Çıktı:
+ — — + — — — -+ — — — + — — — — — — — — — — — — — — — — — — -+
| no | isim | yas | email |
+ — — + — — — -+ — — — + — — — — — — — — — — — — — — — — — — -+
| 1 | Kubra | 30 | kubra.c@bbb |
+ — — + — — — -+ — — — + — — — — — — — — — — — — — — — — — — -+
1 row in set (0.00 sec)

Tablo Silmek

Bunun için DROP TABLE tablo_adı kullanılır. Tablo tamamen ortadan kalkar ve içerisindeki tüm veriler de silinir.

mysql> show tables;

Çıktı:
+ — — — — — — — — — — — -+
| Tables_in_TurkTelekom |
+ — — — — — — — — — — — -+
| calisanlar |
| envanter |
| uyeler |
+ — — — — — — — — — — — -+
3 rows in set (0.00 sec)
mysql> DROP TABLE calisanlar;

Çıktı:
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;

Çıktı:
+ — — — — — — — — — — — -+
| Tables_in_TurkTelekom |
+ — — — — — — — — — — — -+
| envanter |
| uyeler |
+ — — — — — — — — — — — -+
2 rows in set (0.01 sec)

Veritabanı Silmek

Bir veritabanını kaldırmak içerisinde barındırdığı tüm tabloları ve kayıtları da silmek anlamına gelmektedir. Bunun için de DROP DATABASE veritabanı_adı kullanılır.

DROP DATABASE TurkTelekom;
mysql> show databases;
Çıktı:
+ — — — — — — — — — — +
| Database |
+ — — — — — — — — — — +
| TurkTelekom |
| information_schema |
| mysql |
| performance_schema |
| sys |
+ — — — — — — — — — — +
5 rows in set (0.00 sec)
mysql> DROP DATABASE TurkTelekom;
Çıktı:
Query OK, 2 rows affected (0.02 sec)
mysql> show databases;
Çıktı:
+ — — — — — — — — — — +
| Database |
+ — — — — — — — — — — +
| information_schema |
| mysql |
| performance_schema |
| sys |
+ — — — — — — — — — — +
4 rows in set (0.00 sec)

Teşekkürler..

--

--