SQL Notları: Komut Satırı İşlemleri ve Geçici Tablolar

### MySQL’de Komut Satırı İşlemleri ve Geçici Tablolar

MySQL, komut satırı üzerinden veritabanı yönetimi ve sorgulama işlemleri için güçlü araçlar sunar. Bu yazıda, **MySQL komut satırı araçları** ve **geçici tablolar** ile ilgili temel bilgileri ve kullanım örneklerini ele alacağız.

### MySQL Komut Satırı Araçları

MySQL komut satırı aracı (`mysql`), veritabanına bağlanmak ve sorgular çalıştırmak için kullanılır. Bu araç, özellikle otomasyon ve betik yazımı için oldukça kullanışlıdır.

#### Temel Bağlantı ve Sorgu Çalıştırma
MySQL’e bağlanmak ve sorgu çalıştırmak için aşağıdaki komutu kullanabilirsiniz:

“`bash
mysql –user=username –password=pwd –host=hostname test_db
“`

Bu komut, `test_db` veritabanına bağlanır. Şifreyi komut satırında belirtmek yerine, şifreyi interaktif olarak girmek için `-p` seçeneğini kullanabilirsiniz:

“`bash
mysql -u username -p -h hostname test_db
“`

#### Sorgu Sonuçlarını Formatlama
Sorgu sonuçlarını tablo formatında göstermek için `-s` seçeneğini kullanabilirsiniz:

“`bash
mysql -uroot -proot test -s -e ‘select * from people’
“`

Bu komut, sorgu sonuçlarını tablo formatında gösterir. Başlıkları kaldırmak için `-ss` seçeneğini kullanabilirsiniz:

“`bash
mysql -uroot -proot test -ss -e ‘select * from people’
“`

#### Betik Dosyası Çalıştırma
Bir SQL betik dosyasını çalıştırmak için aşağıdaki komutu kullanabilirsiniz:

“`bash
mysql -uroot -proot test < my_script.sql
“`

Bu komut, `my_script.sql` dosyasındaki SQL komutlarını çalıştırır.

### Geçici Tablolar

Geçici tablolar, oturum süresince var olan ve oturum sonlandığında otomatik olarak silinen tablolardır. Bu tablolar, özellikle geçici veri depolama ve ara hesaplamalar için kullanışlıdır.

#### Geçici Tablo Oluşturma
Geçici bir tablo oluşturmak için aşağıdaki komutu kullanabilirsiniz:

“`sql
CREATE TEMPORARY TABLE tempTable1 (
   id INT NOT NULL AUTO_INCREMENT,
   title VARCHAR(100) NOT NULL,
   PRIMARY KEY (id)
);
“`

Bu komut, `tempTable1` adında geçici bir tablo oluşturur.

#### Var Olan Tablodan Geçici Tablo Oluşturma
Var olan bir tablodan geçici tablo oluşturmak için aşağıdaki komutu kullanabilirsiniz:

“`sql
CREATE TEMPORARY TABLE tempTable1
SELECT ColumnName1, ColumnName2 FROM table1;
“`

Bu komut, `table1` tablosundan `ColumnName1` ve `ColumnName2` sütunlarını seçerek `tempTable1` adında geçici bir tablo oluşturur.

#### Geçici Tabloyu Silme
Geçici bir tabloyu silmek için aşağıdaki komutu kullanabilirsiniz:

“`sql
DROP TEMPORARY TABLE tempTable1;
“`

Bu komut, `tempTable1` adlı geçici tabloyu siler.

### NULL Değerlerle Çalışma

MySQL’de `NULL` değerler, özel durumlar için kullanılır ve sorgularda dikkatli bir şekilde ele alınmalıdır.

#### NULL Değerleri İçeren Sorgular
Örneğin, `end_date` sütununda `NULL` değerleri olan bir tabloda, belirli bir tarihten sonraki kayıtları ve `NULL` değerleri içeren kayıtları getirmek için aşağıdaki sorguyu kullanabilirsiniz:

“`sql
SELECT * FROM example WHERE end_date > ‘2016-01-01’ OR end_date IS NULL;
“`

Bu sorgu, `end_date` değeri `2016-01-01`’den büyük olan veya `NULL` olan tüm kayıtları getirir.

#### NULL Değerlerle Gruplama
`NULL` değerlerle gruplama yaparken, `CASE WHEN` ifadesini kullanarak özel durumları ele alabilirsiniz:

“`sql
SELECT
   applicant_id,
   CASE WHEN MAX(end_date IS NULL) = 1 THEN ‘present’ ELSE MAX(end_date) END AS max_date
FROM example
GROUP BY applicant_id;
“`

Bu sorgu, her `applicant_id` için en son `end_date` değerini getirir ve `NULL` değerleri `’present’` olarak işaretler.

### Sonuç

MySQL komut satırı araçları ve geçici tablolar, veritabanı yönetimi ve sorgulama işlemlerini kolaylaştıran güçlü özelliklerdir. Bu araçları doğru bir şekilde kullanarak, veritabanı işlemlerinizi daha verimli hale getirebilir ve geçici veri depolama ihtiyaçlarınızı karşılayabilirsiniz.