{"id":194,"title":"SQL Notlar\u0131: Komut Sat\u0131r\u0131 \u0130\u015flemleri ve Ge\u00e7ici Tablolar","content":"<p>### MySQL'de Komut Sat\u0131r\u0131 \u0130\u015flemleri ve Ge\u00e7ici Tablolar<\/p><p>MySQL, komut sat\u0131r\u0131 \u00fczerinden veritaban\u0131 y\u00f6netimi ve sorgulama i\u015flemleri i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar. Bu yaz\u0131da, **MySQL komut sat\u0131r\u0131 ara\u00e7lar\u0131** ve **ge\u00e7ici tablolar** ile ilgili temel bilgileri ve kullan\u0131m \u00f6rneklerini ele alaca\u011f\u0131z.<\/p><p>---<\/p><p>### MySQL Komut Sat\u0131r\u0131 Ara\u00e7lar\u0131<\/p><p>MySQL komut sat\u0131r\u0131 arac\u0131 (`mysql`), veritaban\u0131na ba\u011flanmak ve sorgular \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131l\u0131r. Bu ara\u00e7, \u00f6zellikle otomasyon ve betik yaz\u0131m\u0131 i\u00e7in olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r.<\/p><p>#### Temel Ba\u011flant\u0131 ve Sorgu \u00c7al\u0131\u015ft\u0131rma<br>MySQL'e ba\u011flanmak ve sorgu \u00e7al\u0131\u015ft\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p><p>```bash<br>mysql --user=username --password=pwd --host=hostname test_db<br>```<\/p><p>Bu komut, `test_db` veritaban\u0131na ba\u011flan\u0131r. \u015eifreyi komut sat\u0131r\u0131nda belirtmek yerine, \u015fifreyi interaktif olarak girmek i\u00e7in `-p` se\u00e7ene\u011fini kullanabilirsiniz:<\/p><p>```bash<br>mysql -u username -p -h hostname test_db<br>```<\/p><p>#### Sorgu Sonu\u00e7lar\u0131n\u0131 Formatlama<br>Sorgu sonu\u00e7lar\u0131n\u0131 tablo format\u0131nda g\u00f6stermek i\u00e7in `-s` se\u00e7ene\u011fini kullanabilirsiniz:<\/p><p>```bash<br>mysql -uroot -proot test -s -e 'select * from people'<br>```<\/p><p>Bu komut, sorgu sonu\u00e7lar\u0131n\u0131 tablo format\u0131nda g\u00f6sterir. Ba\u015fl\u0131klar\u0131 kald\u0131rmak i\u00e7in `-ss` se\u00e7ene\u011fini kullanabilirsiniz:<\/p><p>```bash<br>mysql -uroot -proot test -ss -e 'select * from people'<br>```<\/p><p>#### Betik Dosyas\u0131 \u00c7al\u0131\u015ft\u0131rma<br>Bir SQL betik dosyas\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p><p>```bash<br>mysql -uroot -proot test &lt; my_script.sql<br>```<\/p><p>Bu komut, `my_script.sql` dosyas\u0131ndaki SQL komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131r.<\/p><p>---<\/p><p>### Ge\u00e7ici Tablolar<\/p><p>Ge\u00e7ici tablolar, oturum s\u00fcresince var olan ve oturum sonland\u0131\u011f\u0131nda otomatik olarak silinen tablolard\u0131r. Bu tablolar, \u00f6zellikle ge\u00e7ici veri depolama ve ara hesaplamalar i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p><p>#### Ge\u00e7ici Tablo Olu\u015fturma<br>Ge\u00e7ici bir tablo olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p><p>```sql<br>CREATE TEMPORARY TABLE tempTable1 (<br>&nbsp; &nbsp;id INT NOT NULL AUTO_INCREMENT,<br>&nbsp; &nbsp;title VARCHAR(100) NOT NULL,<br>&nbsp; &nbsp;PRIMARY KEY (id)<br>);<br>```<\/p><p>Bu komut, `tempTable1` ad\u0131nda ge\u00e7ici bir tablo olu\u015fturur.<\/p><p>#### Var Olan Tablodan Ge\u00e7ici Tablo Olu\u015fturma<br>Var olan bir tablodan ge\u00e7ici tablo olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p><p>```sql<br>CREATE TEMPORARY TABLE tempTable1<br>SELECT ColumnName1, ColumnName2 FROM table1;<br>```<\/p><p>Bu komut, `table1` tablosundan `ColumnName1` ve `ColumnName2` s\u00fctunlar\u0131n\u0131 se\u00e7erek `tempTable1` ad\u0131nda ge\u00e7ici bir tablo olu\u015fturur.<\/p><p>#### Ge\u00e7ici Tabloyu Silme<br>Ge\u00e7ici bir tabloyu silmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p><p>```sql<br>DROP TEMPORARY TABLE tempTable1;<br>```<\/p><p>Bu komut, `tempTable1` adl\u0131 ge\u00e7ici tabloyu siler.<\/p><p>---<\/p><p>### NULL De\u011ferlerle \u00c7al\u0131\u015fma<\/p><p>MySQL'de `NULL` de\u011ferler, \u00f6zel durumlar i\u00e7in kullan\u0131l\u0131r ve sorgularda dikkatli bir \u015fekilde ele al\u0131nmal\u0131d\u0131r.<\/p><p>#### NULL De\u011ferleri \u0130\u00e7eren Sorgular<br>\u00d6rne\u011fin, `end_date` s\u00fctununda `NULL` de\u011ferleri olan bir tabloda, belirli bir tarihten sonraki kay\u0131tlar\u0131 ve `NULL` de\u011ferleri i\u00e7eren kay\u0131tlar\u0131 getirmek i\u00e7in a\u015fa\u011f\u0131daki sorguyu kullanabilirsiniz:<\/p><p>```sql<br>SELECT * FROM example WHERE end_date &gt; '2016-01-01' OR end_date IS NULL;<br>```<\/p><p>Bu sorgu, `end_date` de\u011feri `2016-01-01`'den b\u00fcy\u00fck olan veya `NULL` olan t\u00fcm kay\u0131tlar\u0131 getirir.<\/p><p>#### NULL De\u011ferlerle Gruplama<br>`NULL` de\u011ferlerle gruplama yaparken, `CASE WHEN` ifadesini kullanarak \u00f6zel durumlar\u0131 ele alabilirsiniz:<\/p><p>```sql<br>SELECT<br>&nbsp; &nbsp;applicant_id,<br>&nbsp; &nbsp;CASE WHEN MAX(end_date IS NULL) = 1 THEN 'present' ELSE MAX(end_date) END AS max_date<br>FROM example<br>GROUP BY applicant_id;<br>```<\/p><p>Bu sorgu, her `applicant_id` i\u00e7in en son `end_date` de\u011ferini getirir ve `NULL` de\u011ferleri `'present'` olarak i\u015faretler.<\/p><p>---<\/p><p>### Sonu\u00e7<\/p><p>MySQL komut sat\u0131r\u0131 ara\u00e7lar\u0131 ve ge\u00e7ici tablolar, veritaban\u0131 y\u00f6netimi ve sorgulama i\u015flemlerini kolayla\u015ft\u0131ran g\u00fc\u00e7l\u00fc \u00f6zelliklerdir. Bu ara\u00e7lar\u0131 do\u011fru bir \u015fekilde kullanarak, veritaban\u0131 i\u015flemlerinizi daha verimli hale getirebilir ve ge\u00e7ici veri depolama ihtiya\u00e7lar\u0131n\u0131z\u0131 kar\u015f\u0131layabilirsiniz.<\/p>","excerpt":"MySQL komut sat\u0131r\u0131 ara\u00e7lar\u0131 ve ge\u00e7ici tablolar, veritaban\u0131 y\u00f6netimi ve sorgulama i\u015flemlerini kolayla\u015ft\u0131ran g\u00fc\u00e7l\u00fc \u00f6zelliklerdir. Bu ara\u00e7lar\u0131 do\u011fru bir \u015fekilde kullanarak, veritaban\u0131 i\u015flemlerinizi daha verimli hale getirebilir ve ge\u00e7ici veri depolama ihtiya\u00e7lar\u0131n\u0131z\u0131 kar\u015f\u0131layabilirsiniz.","created_at":"2025-01-13 15:54:12","updated_at":"2026-09-07 02:57:04","category_id":9,"view_count":609,"reading_time":4,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-01-13 15:54:12","featured_image":"resimyok.jpg","slug":"sql-notlari-komut-satiri-islemleri-ve-gecici-tablolar","category_name":"Yaz\u0131l\u0131m","category_slug":"yazilim"}