Mehmet

WFN Üye
Konular
1,188
Mesajlar
1,189
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
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 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 email veya created_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.
SQL ise MySQL'e ne yapılacağını söylemek için kullanılan sorgu dilidir. 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​

  1. İ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.
  2. 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.
  3. Tabloları oluşturmadan önce hangi bilgilerin tutulacağını, hangi alanların zorunlu olduğunu ve tabloların nasıl ilişkileneceğini belirleyin.
  4. Birincil anahtar, NOT NULL, UNIQUE ve gerekliyse FOREIGN KEY kısıtlarını kullanın.
  5. Uygulama bağlantılarında parametreli sorgular veya güvenilir bir veritabanı katmanı kullanın. Kullanıcı girdisini doğrudan SQL metnine eklemeyin.
  6. Önemli veriler için düzenli yedekleme, geri yükleme denemesi ve yetki kontrolü planlayın.
Tablo tasarımı yapılırken şu ayrım karar vermeyi kolaylaştırır:
İhtiyaçUygun yaklaşımDikkat edilmesi gereken
Veri listelemeSELECTGereksiz sütunları çekmeyin
Yeni kayıtINSERTZorunlu alanları doğrulayın
Mevcut kaydı değiştirmeUPDATEWHERE koşulunu kontrol edin
Kayıt silmeDELETEÖ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.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.