{"id":208,"title":"SQL Notlar\u0131:  Tablo De\u011fi\u015fiklikleri ve Kilitleme \u0130\u015flemleri","content":"<p>MySQL'de tablolar \u00fczerinde \u00e7e\u015fitli de\u011fi\u015fiklikler yapmak ve tablolar\u0131 kilitlemek, veritaban\u0131 y\u00f6netiminde s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan i\u015flemlerdir. Bu yaz\u0131da, `ALTER TABLE` komutu ile tablo yap\u0131s\u0131n\u0131 de\u011fi\u015ftirme, tablo kilitleme i\u015flemleri ve tablo silme gibi konular\u0131 ele alaca\u011f\u0131z.<\/p><p>#### 1. ALTER TABLE ile Tablo Yap\u0131s\u0131n\u0131 De\u011fi\u015ftirme<\/p><p>`ALTER TABLE` komutu, mevcut bir tablonun yap\u0131s\u0131n\u0131 de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r. Bu komutla yeni s\u00fctunlar ekleyebilir, s\u00fctunlar\u0131 silebilir veya s\u00fctunlar\u0131n veri tiplerini de\u011fi\u015ftirebilirsiniz.<\/p><p>##### \u00d6rnek 1: Yeni S\u00fctun Ekleme<\/p><p>A\u015fa\u011f\u0131daki \u00f6rnekte, `stack` tablosuna `submit` ad\u0131nda yeni bir s\u00fctun ekleniyor:<\/p><p>```sql<br>ALTER TABLE stack ADD COLUMN submit date NOT NULL;<br>```<\/p><p>##### \u00d6rnek 2: S\u00fctun Silme<\/p><p>Ayn\u0131 tablodan `submit` s\u00fctununu silmek i\u00e7in:<\/p><p>```sql<br>ALTER TABLE stack DROP COLUMN submit;<br>```<\/p><p>##### \u00d6rnek 3: S\u00fctun Veri Tipini De\u011fi\u015ftirme<\/p><p>`submit` s\u00fctununun veri tipini `DATETIME` olarak de\u011fi\u015ftirmek i\u00e7in:<\/p><p>```sql<br>ALTER TABLE stack MODIFY submit DATETIME NOT NULL;<br>```<\/p><p>##### \u00d6rnek 4: S\u00fctun Ad\u0131n\u0131 ve Veri Tipini De\u011fi\u015ftirme<\/p><p>`submit` s\u00fctununun ad\u0131n\u0131 `submit_date` olarak de\u011fi\u015ftirip veri tipini `DATETIME` yapmak i\u00e7in:<\/p><p>```sql<br>ALTER TABLE stack CHANGE submit submit_date DATETIME NOT NULL;<br>```<\/p><p>##### \u00d6rnek 5: Auto-Increment De\u011ferini De\u011fi\u015ftirme<\/p><p>Bir tablonun auto-increment de\u011ferini de\u011fi\u015ftirmek i\u00e7in:<\/p><p>```sql<br>ALTER TABLE your_table_name AUTO_INCREMENT = 101;<br>```<\/p><p>Bu komut, tablonun bir sonraki auto-increment de\u011ferini 101 olarak ayarlar.<\/p><p>#### 2. Tablo Ad\u0131n\u0131 De\u011fi\u015ftirme<\/p><p>Bir tablonun ad\u0131n\u0131 de\u011fi\u015ftirmek i\u00e7in `RENAME TABLE` veya `ALTER TABLE` komutunu kullanabilirsiniz.<\/p><p>##### \u00d6rnek: Tablo Ad\u0131n\u0131 De\u011fi\u015ftirme<\/p><p>```sql<br>RENAME TABLE 'old_table_name' TO 'new_table_name';<br>```<\/p><p>Veya:<\/p><p>```sql<br>ALTER TABLE 'old_table_name' RENAME TO 'new_table_name';<br>```<\/p><p>#### 3. Tablo Kilitleme \u0130\u015flemleri<\/p><p>MySQL'de tablo kilitleme, \u00f6zellikle \u00e7oklu i\u015flemler s\u0131ras\u0131nda veri tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamak i\u00e7in kullan\u0131l\u0131r. InnoDB motoru, otomatik olarak sat\u0131r d\u00fczeyinde kilitleme yapar, ancak MyISAM motoru i\u00e7in tablo kilitleme i\u015flemleri manuel olarak yap\u0131labilir.<\/p><p>##### \u00d6rnek 1: Tabloya Yazma Kilidi (WRITE LOCK) Uygulama<\/p><p>```sql<br>LOCK TABLES products WRITE;<br>INSERT INTO products(id, product_name) SELECT id, old_product_name FROM old_products;<br>UNLOCK TABLES;<br>```<\/p><p>Bu \u00f6rnekte, `products` tablosuna yazma kilidi uygulan\u0131r ve bu s\u00fcre boyunca ba\u015fka hi\u00e7bir ba\u011flant\u0131 bu tabloya yazamaz.<\/p><p>##### \u00d6rnek 2: Tabloya Okuma Kilidi (READ LOCK) Uygulama<\/p><p>```sql<br>LOCK TABLES products READ;<br>SELECT * FROM products;<br>UNLOCK TABLES;<br>```<\/p><p>Bu \u00f6rnekte, `products` tablosuna okuma kilidi uygulan\u0131r ve bu s\u00fcre boyunca ba\u015fka hi\u00e7bir ba\u011flant\u0131 bu tablodan veri okuyamaz.<\/p><p>#### 4. Tablo Silme (DROP TABLE)<\/p><p>Bir tabloyu tamamen silmek i\u00e7in `DROP TABLE` komutu kullan\u0131l\u0131r. Bu i\u015flem, tabloyu ve i\u00e7indeki t\u00fcm verileri kal\u0131c\u0131 olarak siler.<\/p><p>##### \u00d6rnek: Tablo Silme<\/p><p>```sql<br>DROP TABLE tbl;<br>```<\/p><p>Bu komut, `tbl` tablosunu ve i\u00e7indeki t\u00fcm verileri siler. Bu i\u015flem geri al\u0131namaz, bu y\u00fczden dikkatli kullan\u0131lmal\u0131d\u0131r.<\/p><p>#### Sonu\u00e7<\/p><p>MySQL'de `ALTER TABLE` komutu ile tablo yap\u0131s\u0131n\u0131 de\u011fi\u015ftirme, tablo ad\u0131n\u0131 de\u011fi\u015ftirme, tablo kilitleme ve tablo silme gibi i\u015flemler, veritaban\u0131 y\u00f6netiminde olduk\u00e7a \u00f6nemlidir. Bu ara\u00e7lar\u0131 etkili bir \u015fekilde kullanarak, veritaban\u0131 tasar\u0131m\u0131n\u0131z\u0131 daha esnek ve g\u00fcvenli hale getirebilirsiniz. Bir sonraki yaz\u0131da g\u00f6r\u00fc\u015fmek \u00fczere!<\/p>","excerpt":"MySQL'de `ALTER TABLE` komutu ile tablo yap\u0131s\u0131n\u0131 de\u011fi\u015ftirme, tablo ad\u0131n\u0131 de\u011fi\u015ftirme, tablo kilitleme ve tablo silme gibi i\u015flemler, veritaban\u0131 y\u00f6netiminde olduk\u00e7a \u00f6nemlidir. Bu ara\u00e7lar\u0131 etkili bir \u015fekilde kullanarak, veritaban\u0131 tasar\u0131m\u0131n\u0131z\u0131 daha esnek ve g\u00fcvenli hale getirebilirsiniz.","created_at":"2025-01-13 15:25:52","updated_at":"2026-09-23 11:12:13","category_id":9,"view_count":499,"reading_time":3,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-01-13 15:25:52","featured_image":"resimyok.jpg","slug":"sql-notlari-tablo-degisiklikleri-ve-kilitleme-islemleri","category_name":"Yaz\u0131l\u0131m","category_slug":"yazilim","category_color":"#ef4444"}