{"id":222,"title":"SQL Notlar\u0131: MySQL ile Ba\u015flang\u0131\u00e7","content":"<p># SQL Notlar\u0131: MySQL ile Ba\u015flang\u0131\u00e7<\/p><p>SQL (Structured Query Language), veritabanlar\u0131yla etkile\u015fim kurmak i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir dildir. Bu yaz\u0131da, MySQL \u00fczerinden SQL'in temel kavramlar\u0131na ve komutlar\u0131na bir g\u00f6z ataca\u011f\u0131z. E\u011fer SQL'e yeni ba\u015fl\u0131yorsan\u0131z, bu notlar tam size g\u00f6re!<\/p><p>## MySQL'e Giri\u015f<\/p><p>MySQL, a\u00e7\u0131k kaynakl\u0131 bir ili\u015fkisel veritaban\u0131 y\u00f6netim sistemidir (RDBMS). \u0130lk s\u00fcr\u00fcm\u00fc 1995 y\u0131l\u0131nda piyasaya s\u00fcr\u00fclen MySQL, o g\u00fcnden bu yana bir\u00e7ok g\u00fcncelleme ve iyile\u015ftirme ge\u00e7irdi. \u0130\u015fte MySQL'in baz\u0131 \u00f6nemli s\u00fcr\u00fcmleri ve \u00e7\u0131k\u0131\u015f tarihleri:<\/p><p>- **1.0**: 1995-05-23<br>- **3.19**: 1996-12-01<br>- **5.0**: 2005-10-01<br>- **5.7**: 2015-10-01<\/p><p>MySQL, geni\u015f bir kullan\u0131m alan\u0131na sahiptir ve \u00f6zellikle web uygulamalar\u0131nda s\u0131kl\u0131kla tercih edilir.<\/p><p>## Veritaban\u0131 ve Tablo Olu\u015fturma<\/p><p>### Veritaban\u0131 Olu\u015fturma<\/p><p>MySQL'de yeni bir veritaban\u0131 olu\u015fturmak i\u00e7in `CREATE DATABASE` komutunu kullan\u0131r\u0131z:<\/p><p>```sql<br>CREATE DATABASE mydb;<br>```<\/p><p>Bu komut, `mydb` ad\u0131nda yeni bir veritaban\u0131 olu\u015fturacakt\u0131r. Komut ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131nda, `Query OK, 1 row affected (0.05 sec)` gibi bir \u00e7\u0131kt\u0131 al\u0131rs\u0131n\u0131z.<\/p><p>### Veritaban\u0131n\u0131 Kullanma<\/p><p>Olu\u015fturdu\u011funuz veritaban\u0131n\u0131 kullanmak i\u00e7in `USE` komutunu kullanabilirsiniz:<\/p><p>```sql<br>USE mydb;<br>```<\/p><p>Bu komut, art\u0131k `mydb` veritaban\u0131 \u00fczerinde i\u015flem yapaca\u011f\u0131n\u0131z\u0131 belirtir.<\/p><p>### Tablo Olu\u015fturma<\/p><p>Veritaban\u0131nda yeni bir tablo olu\u015fturmak i\u00e7in `CREATE TABLE` komutunu kullan\u0131r\u0131z. \u00d6rne\u011fin, `mytable` ad\u0131nda bir tablo olu\u015ftural\u0131m:<\/p><p>```sql<br>CREATE TABLE mytable (<br>&nbsp; &nbsp;id int unsigned NOT NULL auto_increment,<br>&nbsp; &nbsp;username varchar(100) NOT NULL,<br>&nbsp; &nbsp;email varchar(100) NOT NULL,<br>&nbsp; &nbsp;PRIMARY KEY (id)<br>);<br>```<\/p><p>Bu komut, `id`, `username` ve `email` s\u00fctunlar\u0131na sahip bir tablo olu\u015fturacakt\u0131r. `id` s\u00fctunu, her kay\u0131t i\u00e7in otomatik olarak artan bir de\u011fer alacak ve her kayd\u0131n benzersiz olmas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p><p>## Veri Ekleme, G\u00fcncelleme ve Silme<\/p><p>### Veri Ekleme<\/p><p>Tabloya yeni bir sat\u0131r eklemek i\u00e7in `INSERT INTO` komutunu kullan\u0131r\u0131z:<\/p><p>```sql<br>INSERT INTO mytable (username, email) VALUES (\"myuser\", \"myuser@example.com\");<br>```<\/p><p>Bu komut, `username` ve `email` s\u00fctunlar\u0131na belirtilen de\u011ferleri ekleyecektir. String de\u011ferler tek veya \u00e7ift t\u0131rnak i\u00e7inde yaz\u0131labilir.<\/p><p>### Veri G\u00fcncelleme<\/p><p>Tablodaki bir sat\u0131r\u0131 g\u00fcncellemek i\u00e7in `UPDATE` komutunu kullan\u0131r\u0131z:<\/p><p>```sql<br>UPDATE mytable SET username=\"myuser\" WHERE id=8;<br>```<\/p><p>Bu komut, `id` de\u011feri 8 olan sat\u0131r\u0131n `username` s\u00fctununu g\u00fcncelleyecektir.<\/p><p>### Veri Silme<\/p><p>Tablodan bir sat\u0131r silmek i\u00e7in `DELETE` komutunu kullan\u0131r\u0131z:<\/p><p>```sql<br>DELETE FROM mytable WHERE id=8;<br>```<\/p><p>Bu komut, `id` de\u011feri 8 olan sat\u0131r\u0131 tablodan silecektir.<\/p><p>## Veri Sorgulama<\/p><p>Tablodan belirli ko\u015fullara g\u00f6re veri \u00e7ekmek i\u00e7in `SELECT` komutunu kullan\u0131r\u0131z:<\/p><p>```sql<br>SELECT * FROM mytable WHERE username = \"myuser\";<br>```<\/p><p>Bu komut, `username` de\u011feri \"myuser\" olan t\u00fcm sat\u0131rlar\u0131 getirecektir.<\/p><p>## Veritaban\u0131 ve Tablo Bilgilerini G\u00f6r\u00fcnt\u00fcleme<\/p><p>### Veritabanlar\u0131n\u0131 Listeleme<\/p><p>Mevcut veritabanlar\u0131n\u0131 listelemek i\u00e7in `SHOW DATABASES` komutunu kullan\u0131r\u0131z:<\/p><p>```sql<br>SHOW DATABASES;<br>```<\/p><p>Bu komut, sunucuda bulunan t\u00fcm veritabanlar\u0131n\u0131 listeleyecektir.<\/p><p>### Tablolar\u0131 Listeleme<\/p><p>Bir veritaban\u0131ndaki tablolar\u0131 listelemek i\u00e7in `SHOW TABLES` komutunu kullan\u0131r\u0131z:<\/p><p>```sql<br>SHOW TABLES;<br>```<\/p><p>Bu komut, se\u00e7ili veritaban\u0131ndaki t\u00fcm tablolar\u0131 listeleyecektir.<\/p><p>### Tablo Yap\u0131s\u0131n\u0131 G\u00f6r\u00fcnt\u00fcleme<\/p><p>Bir tablonun yap\u0131s\u0131n\u0131 g\u00f6r\u00fcnt\u00fclemek i\u00e7in `DESCRIBE` komutunu kullan\u0131r\u0131z:<\/p><p>```sql<br>DESCRIBE mytable;<br>```<\/p><p>Bu komut, `mytable` tablosunun s\u00fctunlar\u0131n\u0131 ve \u00f6zelliklerini g\u00f6sterecektir.<\/p><p>## Kullan\u0131c\u0131 ve \u0130zin Y\u00f6netimi<\/p><p>### Kullan\u0131c\u0131 Olu\u015fturma<\/p><p>MySQL'de yeni bir kullan\u0131c\u0131 olu\u015fturmak i\u00e7in `CREATE USER` komutunu kullan\u0131r\u0131z:<\/p><p>```sql<br>CREATE USER 'user'@'localhost' IDENTIFIED BY 'some_password';<br>```<\/p><p>Bu komut, yaln\u0131zca yerel makineden ba\u011flanabilen bir kullan\u0131c\u0131 olu\u015fturacakt\u0131r. E\u011fer kullan\u0131c\u0131n\u0131n her yerden ba\u011flanabilmesini istiyorsan\u0131z, `localhost` yerine `%` kullanabilirsiniz.<\/p><p>### \u0130zin Verme<\/p><p>Kullan\u0131c\u0131ya belirli veritabanlar\u0131 veya tablolar \u00fczerinde izin vermek i\u00e7in `GRANT` komutunu kullan\u0131r\u0131z:<\/p><p>```sql<br>GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'user'@'localhost';<br>```<\/p><p>Bu komut, `user` kullan\u0131c\u0131s\u0131na `mydb` veritaban\u0131ndaki t\u00fcm tablolar \u00fczerinde `SELECT`, `INSERT` ve `UPDATE` izinleri verecektir.<\/p><p>---<\/p><p>Bu temel bilgilerle MySQL'e ba\u015flang\u0131\u00e7 yapabilirsiniz. SQL \u00f6\u011frenmek, veritaban\u0131 y\u00f6netimi ve veri analizi gibi alanlarda kariyer yapmak isteyenler i\u00e7in olduk\u00e7a \u00f6nemlidir. Bir sonraki yaz\u0131da, daha geli\u015fmi\u015f SQL konular\u0131na de\u011finece\u011fiz.<\/p><p>---<\/p><p>&nbsp;<\/p>","excerpt":"Bu temel bilgilerle MySQL'e ba\u015flang\u0131\u00e7 yapabilirsiniz. SQL \u00f6\u011frenmek, veritaban\u0131 y\u00f6netimi ve veri analizi gibi alanlarda kariyer yapmak isteyenler i\u00e7in olduk\u00e7a \u00f6nemlidir. Bir sonraki yaz\u0131da, daha geli\u015fmi\u015f SQL konular\u0131na de\u011finece\u011fiz.","created_at":"2025-01-13 14:27:41","updated_at":"2026-09-23 16:33:28","category_id":9,"view_count":653,"reading_time":4,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-01-13 14:27:41","featured_image":"resimyok.jpg","slug":"sql-notlari-mysql-ile-baslangic","category_name":"Yaz\u0131l\u0131m","category_slug":"yazilim","category_color":"#ef4444"}