- Konu sahibi
- #1
MySQL, verileri tablolar içinde saklayan, bu verilere SQL komutlarıyla erişmeyi ve verileri yönetmeyi sağlayan ilişkisel bir veritabanı yönetim sistemidir. Web siteleri, e-ticaret uygulamaları, üyelik sistemleri, içerik yönetim panelleri ve kurumsal yazılımlar tarafından sıkça kullanılır. MySQL tek başına bir programlama dili değildir; uygulamaların verilerini kaydettiği ve sorguladığı veritabanı sunucusudur.
MySQL Server, veritabanlarını ve bu veritabanlarının içindeki tabloları yönetir. Uygulama ise MySQL sunucusuna bağlanarak SQL sorguları gönderir. Sunucu sorguyu çalıştırır ve sonucu uygulamaya geri döndürür.
İlişkisel yapı nedeniyle bilgiler genellikle tek bir tabloda tutulmaz. Örneğin bir alışveriş uygulamasında müşteriler, ürünler ve siparişler ayrı tablolarda bulunabilir. Tablolar arasındaki ilişkiler sayesinde aynı müşteri veya ürün bilgisini her siparişte tekrar yazmak gerekmez.
Bir tabloda temel olarak şu yapılar bulunur:
Ayrı bir deneme veritabanında, daha önce oluşturulmamış
Bu sorgu kitapların kimlik numarasını, başlığını, yazarını ve yayın yılını tutan bir tablo oluşturur. Yeni kitap eklemek için:
Kitapları listelemek için:
Burada
En yaygın hata,
Bir başka hata, bütün verileri tek tabloda tutmaktır. Bu yaklaşım tekrar eden verileri artırır ve güncelleme sırasında tutarsızlık oluşturabilir. Müşteri, sipariş ve ürün gibi farklı varlıkları çoğunlukla ayrı tablolar halinde tasarlamak daha sağlıklıdır.
MySQL ile SQL aynı şey de değildir. SQL bir sorgu dilidir; MySQL ise bu dili kullanan veritabanı sistemlerinden biridir. Bu nedenle başka veritabanı sistemlerinde kullanılan SQL ile MySQL arasında sözdizimi ve özellik farkları bulunabilir.
MySQL Community Edition ücretsiz indirilebilen, GPL lisanslı açık kaynak dağıtımdır. Başka dağıtımların, ticari desteğin veya MySQL içeren bir ürünün dağıtımının koşulları farklı olabilir; kullanacağınız paketin lisansını ayrıca değerlendirin.
Veritabanı, düzenlenmiş veri koleksiyonudur. MySQL ise bu veritabanlarını oluşturup saklayan, sorgulayan ve yöneten yazılımdır.
Temel tablo tasarımı, veri türleri,
MySQL nasıl çalışır?
MySQL Server, veritabanlarını ve bu veritabanlarının içindeki tabloları yönetir. Uygulama ise MySQL sunucusuna bağlanarak SQL sorguları gönderir. Sunucu sorguyu çalıştırır ve sonucu uygulamaya geri döndürür.
İlişkisel yapı nedeniyle bilgiler genellikle tek bir tabloda tutulmaz. Örneğin bir alışveriş uygulamasında müşteriler, ürünler ve siparişler ayrı tablolarda bulunabilir. Tablolar arasındaki ilişkiler sayesinde aynı müşteri veya ürün bilgisini her siparişte tekrar yazmak gerekmez.
Bir tabloda temel olarak şu yapılar bulunur:
- Sütun: Verinin türünü ve anlamını belirtir. Örneğin
emailveyacreated_at. - Satır: Tek bir kaydı temsil eder. Örneğin bir müşterinin bilgileri.
- Birincil anahtar: Her kaydı benzersiz biçimde tanımlar.
- İlişki: Tabloları ortak alanlar üzerinden birbirine bağlar.
SELECT veri okumak, INSERT yeni kayıt eklemek, UPDATE kayıt değiştirmek, DELETE kayıt silmek için kullanılır.Somut örnek
Ayrı bir deneme veritabanında, daha önce oluşturulmamış
books adlı örnek tabloyla başlayalım:
Kod:
CREATE TABLE books (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200) NOT NULL,
author VARCHAR(150) NOT NULL,
published_year INT
);
Bu sorgu kitapların kimlik numarasını, başlığını, yazarını ve yayın yılını tutan bir tablo oluşturur. Yeni kitap eklemek için:
Kod:
INSERT INTO books (title, author, published_year)
VALUES ('Örnek Kitap', 'Örnek Yazar', 2024);
Kitapları listelemek için:
Kod:
SELECT id, title, author
FROM books
ORDER BY id DESC;
Burada
INSERT tabloya kayıt ekler, SELECT ise kayıtları okur. Uygulama tarafında bu sorgular genellikle PHP, Python, Java, Node.js veya başka bir dilde yazılmış kod tarafından çalıştırılır.MySQL kullanmaya başlarken izlenecek yol
- İhtiyaca uygun bir MySQL Server kurulumu veya barındırma hizmeti seçin. Geliştirme ortamında sunucuya yerel olarak, üretimde ise güvenli ağ erişimi üzerinden bağlanın.
- Uygulama için ayrı bir veritabanı ve sınırlı yetkilere sahip kullanıcı oluşturun. Yönetici hesabını uygulama bağlantısında kullanmayın.
- Tabloları oluşturmadan önce hangi bilgilerin tutulacağını, hangi alanların zorunlu olduğunu ve tabloların nasıl ilişkileneceğini belirleyin.
- Birincil anahtar,
NOT NULL,UNIQUEve gerekliyseFOREIGN KEYkısıtlarını kullanın. - Uygulama bağlantılarında parametreli sorgular veya güvenilir bir veritabanı katmanı kullanın. Kullanıcı girdisini doğrudan SQL metnine eklemeyin.
- Önemli veriler için düzenli yedekleme, geri yükleme denemesi ve yetki kontrolü planlayın.
| İhtiyaç | Uygun yaklaşım | Dikkat edilmesi gereken |
|---|---|---|
| Veri listeleme | SELECT | Gereksiz sütunları çekmeyin |
| Yeni kayıt | INSERT | Zorunlu alanları doğrulayın |
| Mevcut kaydı değiştirme | UPDATE | WHERE koşulunu kontrol edin |
| Kayıt silme | DELETE | Önce aynı koşulla SELECT deneyin |
Sık yapılan hatalar
En yaygın hata,
UPDATE veya DELETE sorgusunda WHERE koşulunu unutup tablodaki tüm kayıtları değiştirmek ya da silmektir. Değişiklikten önce aynı koşulu SELECT ile incelemek hedef kayıtları görmenizi sağlar; yedek ve gerektiğinde transaction kullanma ihtiyacını ortadan kaldırmaz.Bir başka hata, bütün verileri tek tabloda tutmaktır. Bu yaklaşım tekrar eden verileri artırır ve güncelleme sırasında tutarsızlık oluşturabilir. Müşteri, sipariş ve ürün gibi farklı varlıkları çoğunlukla ayrı tablolar halinde tasarlamak daha sağlıklıdır.
MySQL ile SQL aynı şey de değildir. SQL bir sorgu dilidir; MySQL ise bu dili kullanan veritabanı sistemlerinden biridir. Bu nedenle başka veritabanı sistemlerinde kullanılan SQL ile MySQL arasında sözdizimi ve özellik farkları bulunabilir.
Sık sorulan sorular
MySQL ücretsiz midir?
MySQL Community Edition ücretsiz indirilebilen, GPL lisanslı açık kaynak dağıtımdır. Başka dağıtımların, ticari desteğin veya MySQL içeren bir ürünün dağıtımının koşulları farklı olabilir; kullanacağınız paketin lisansını ayrıca değerlendirin.
MySQL ile veritabanı arasındaki fark nedir?
Veritabanı, düzenlenmiş veri koleksiyonudur. MySQL ise bu veritabanlarını oluşturup saklayan, sorgulayan ve yöneten yazılımdır.
MySQL öğrenmek için önce hangi konular bilinmeli?
Temel tablo tasarımı, veri türleri,
SELECT, WHERE, JOIN, INSERT, UPDATE, DELETE ve indeks mantığı iyi bir başlangıç oluşturur.