MySQL sorguları ve örnekleri

Son Güncelleme: 5 Kasım 2025
  • MySQL'de verimli veritabanı yönetimi, uygulama performansı ve ölçeklenebilirliği açısından önemlidir.
  • Temel sorgular (SELECT, INSERT, UPDATE, DELETE) yapılandırılmış SQL kullanarak verileri almanıza ve değiştirmenize olanak tanır.
  • Gelişmiş sorgular (JOIN, GROUP BY, HAVING, ORDER BY) ilişkisel analiz, toplama ve sonuçların sıralanmasını sağlar.
  • Optimizasyon: Uygun indeksler, sonuçların sınırlandırılması, hazırlanmış sorgular ve gecikmeyi ve yükü azaltmak için sürekli izleme.
MySQL sorgu örnekleri

Programlama ve web uygulama geliştirme dünyasında, bir sistemin performansını ve ölçeklenebilirliğini garanti altına almak için verimli veritabanı yönetimi hayati önem taşır. En popüler veritabanı yönetim sistemlerinden biri olan MySQL, verileri etkin bir şekilde işlemek ve çıkarmak için çok çeşitli gelişmiş özellikler ve sorgular sunar. Bu yazımızda MySQL sorgularını derinlemesine inceleyecek ve bu dilde uzmanlaşmanıza ve veritabanınızı optimize etmenize yardımcı olacak pratik örnekler sunacağız. MySQL becerilerinizi bir üst seviyeye taşımaya hazırsanız, başlayalım!

MySQL sorguları nelerdir?

MySQL sorguları, bir MySQL veritabanıyla etkileşim kurmak için kullanılan talimatlar veya komutlardır. Bu sorgular, veri alma, ekleme, güncelleme ve silme gibi işlemlerin yanı sıra tablolar ve diğer ilgili nesneleri oluşturma ve değiştirme işlemlerini gerçekleştirmenizi sağlar. MySQL, veritabanıyla iletişim kurmak için Yapılandırılmış Sorgu Dili (SQL) kullanır.

MySQL sorguları ve temel örnekler

Daha gelişmiş örneklere dalmadan önce, MySQL sorgularının temellerini anlamak önemlidir. Aşağıda temel sorguların bazı örnekleri ve bunların nasıl yapılandırıldığı gösterilmektedir:

1. SELECT sorgusu

SELECT sorgusu veritabanındaki bir veya daha fazla tablodan veri almak için kullanılır. Örneğin, "users" adlı bir tablodaki tüm kayıtları almak istiyorsanız, aşağıdaki sorguyu çalıştırabilirsiniz:

SELECT * FROM usuarios;

Bu sorgu "users" tablosundaki tüm alanları seçecek ve içinde saklanan tüm kayıtları döndürecektir.

2. INSERT sorgusu

INSERT sorgusu bir tabloya yeni kayıtlar eklemek için kullanılır. "Ad", "Soyad" ve "E-posta" alanlarına sahip "müşteriler" adlı bir tablonuz olduğunu varsayalım. Bu tabloya yeni bir müşteri eklemek için aşağıdaki sorguyu çalıştırabilirsiniz:

INSERT INTO clientes (nombre, apellido, correo) VALUES ('John', 'Doe', '[email protected]');

Bu sorgu, verilen değerlerle ilgili alanlara yeni bir kayıt ekleyecektir.

3. GÜNCELLEME sorgusu

UPDATE sorgusu bir tabloda bulunan bir veya daha fazla kayıttaki mevcut değerleri değiştirmek için kullanılır. Diyelim ki "müşteriler" tablosunda bir müşterinin soyadını değiştirmek istiyorsunuz. Bunu aşağıdaki sorguyu çalıştırarak yapabilirsiniz:

UPDATE clientes SET apellido = 'Smith' WHERE id = 1;

Bu sorgu, ID'si 1 olan müşterinin soyadını “Smith” olarak güncelleyecektir.

4. SİLME sorgusu

DELETE sorgusu bir tablodan bir veya daha fazla kaydı silmek için kullanılır. Örneğin, "müşteriler" tablosundan ID'si 1 olan bir müşteriyi silmek istiyorsanız aşağıdaki sorguyu çalıştırabilirsiniz:

DELETE FROM clientes WHERE id = 1;

Bu sorgu, ID'si 1 olan müşteri kaydını tablodan silecektir.

  SQLite için DB Tarayıcısı: Veritabanlarını Yönetmeye İlişkin Tam Kılavuz

Gelişmiş MySQL Sorguları

Temelleri gözden geçirdiğimize göre, MySQL veritabanınızda bilgileri verimli bir şekilde çıkarmanıza ve karmaşık işlemler gerçekleştirmenize olanak tanıyacak daha gelişmiş ve güçlü sorgulara geçelim.

1. JOIN sorgusu

JOIN sorgusu, belirli bir birleştirme koşuluna göre iki veya daha fazla tablodaki verileri birleştirmek için kullanılır. Bu, farklı tablolarda depolanan ilişkili verileriniz olduğunda ve bunların birleşik görünümünü elde etmek istediğinizde yararlıdır. İşte bir JOIN sorgusunun örneği:

SELECT clientes.nombre, pedidos.fecha
FROM clientes
JOIN pedidos ON clientes.id = pedidos.cliente_id;

Bu sorgu, customer_id'nin "orders" tablosundaki customer_id ile eşleşmesi koşuluyla, sırasıyla "customers" ve "orders" tablolarından müşteri adlarını ve sipariş tarihlerini seçecektir.

2. GROUP BY sorgusu

GROUP BY sorgusu, satırları bir veya daha fazla alana göre gruplandırmak ve bu gruplar üzerinde hesaplamalar veya özetler yapmak için kullanılır. "Ürünler" adlı bir tablonuz olduğunu ve bu tablonun "isim", "kategori" ve "fiyat" alanlarına sahip olduğunu varsayalım. Ürünlerin kategori bazında fiyatlarının toplamını almak için aşağıdaki sorguyu çalıştırabilirsiniz:

SELECT categoria, SUM(precio) as total_precio
FROM productos
GROUP BY categoria;

Bu sorgu ürünleri kategoriye göre gruplayacak ve her kategori için fiyat toplamını hesaplayacaktır.

3. HAVING Sorgusu

HAVING sorgusu GROUP BY ile birlikte kullanılır ve satır gruplarını belirli koşullara göre filtrelemenize olanak tanır. Örneğin, ortalama fiyatı 100$'ın üzerinde olan ürün kategorilerini almak istiyorsanız, aşağıdaki sorguyu çalıştırabilirsiniz:

SELECT categoria, AVG(precio) as promedio_precio
FROM productos
GROUP BY categoria
HAVING AVG(precio) > 100;

Bu sorgu HAVING'de belirtilen koşulu sağlayan ürün kategorilerini seçecektir.

4. ORDER BY sorgusu

ORDER BY sorgusu, bir veya daha fazla alana göre sorgu sonuçlarını artan (ASC) veya azalan (DESC) düzende sıralamak için kullanılır. Örneğin, ürünlerin fiyatlarına göre azalan sırada sıralanmış bir listesini almak istiyorsanız, aşağıdaki sorguyu çalıştırabilirsiniz:

SELECT nombre, precio
FROM productos
ORDER BY precio DESC;

Bu sorgu ürün adlarını ve fiyatlarını seçecek ve bunları fiyata göre azalan düzende sıralayacaktır.

MySQL sorguları ve örnekleri: Optimizasyon ipuçları

Veritabanınızın performansını iyileştirmek ve hızlı yanıt sürelerini garantilemek için MySQL sorgularını optimize etmek önemlidir. MySQL sorgularınızı optimize etmek için bazı pratik ipuçları:

1. Uygun endeksleri kullanın

İndeksler, bir tabloda kayıt arama hızını artıran veri yapılarıdır. Sorgularınızdaki sık kullanılan sütunlara indeks ekleyerek sorgu yürütme hızını önemli ölçüde artırabilirsiniz. Ancak indeksleri akıllıca kullanmak ve aşırı kullanmaktan kaçınmak önemlidir, çünkü indeksler ekleme ve güncelleme işlemleri sırasında performansı olumsuz etkileyebilir.

  İlişkisel Veritabanları: Bir Giriş

2. Gereksiz konsültasyonlardan kaçının

Uygulamanıza gerçek bir değer katmayan gereksiz veya tekrarlayan sorgular yapmaktan kaçınmak önemlidir. Bir sorguyu çalıştırmadan önce, istenen verilere gerçekten ihtiyacınız olup olmadığını ve ilgili olmayan koşulları veya alanları kaldırarak verileri optimize edip edemeyeceğinizi değerlendirdiğinizden emin olun.

3. Sorgu sonuçlarını sınırla

Bir sorgudan yalnızca sınırlı sayıda sonuca ihtiyacınız varsa, döndürülecek maksimum satır sayısını belirtmek için LIMIT ifadesini kullanın. Bu, sunucudaki yükü azaltacak ve sorgu yanıtını hızlandıracaktır.

4. MySQL'in gelişmiş özelliklerinden ve işlevlerinden yararlanın

MySQL, sorgularınızı optimize etmek için kullanabileceğiniz çok çeşitli gelişmiş özellikler ve işlevler sunar. Bu özelliklerden bazıları alt sorgular, toplama fonksiyonları, düzenli ifadeler ve daha fazlasını içerir. MySQL sorgu becerilerinizi geliştirmek için bu işlevleri araştırın ve öğrenin.

5. Performans testi ve izleme gerçekleştirin

Sorgularınızın performansını kapsamlı bir şekilde test etmek ve izlemek, darboğazları ve iyileştirme alanlarını belirlemek açısından kritik öneme sahiptir. Sorgularınızı optimize etmek ve veritabanınızın genel performansını iyileştirmek için veritabanı izleme araçlarını kullanın ve yürütme sürelerini, kaynak kullanımını ve diğer önemli göstergeleri analiz edin.

MySQL sorguları ve örnekleri: SSS

İşte MySQL sorguları ve örnekleri hakkında sıkça sorulan bazı sorular ve bunlara karşılık gelen yanıtlar:

1. INNER JOIN ile OUTER JOIN arasındaki fark nedir?

INNER JOIN, birleştirilen her iki tabloda da eşleşen satırları birleştirmek için kullanılır. Öte yandan OUTER JOIN, birleştirme alanlarında eşleşme olmasa bile her iki tablodaki tüm satırları birleştirmek için kullanılır. OUTER JOIN'in varyantları arasında sırasıyla sol veya sağ tablodaki tüm satırları içeren LEFT JOIN ve RIGHT JOIN bulunur.

2. MySQL'de bir tablodaki toplam kayıt sayısını nasıl alabilirim?

Bir tabloda bulunan toplam kayıt sayısını COUNT() fonksiyonunu kullanarak alabilirsiniz. Örneğin, aşağıdaki sorgu size "users" tablosundaki toplam kayıt sayısını verecektir:

SELECT COUNT(*) as total_registros FROM usuarios;

3. MySQL sorgusunda WHERE ve HAVING arasındaki fark nedir?

WHERE ifadesi, bir gruplama veya hesaplama yapılmadan önce satırları filtrelemek için kullanılır. Öte yandan HAVING ifadesi, bir gruplama yapıldıktan sonra satır gruplarını filtrelemek için kullanılır. Kısacası, WHERE tek tek satırlara uygulanırken, HAVING satır gruplarına uygulanır.

4. Veritabanı normalizasyonu nedir ve neden önemlidir?

Veritabanı normalizasyonu, bir veritabanındaki verilerin yedekliliğini ortadan kaldırmayı ve bütünlüğünü iyileştirmeyi amaçlayan bir tasarım sürecidir. Verilerin mantıksal ve etkili bir biçimde ilişkilendirilmiş tablolara düzenlenmesiyle elde edilir. Normalizasyon, veri çoğaltılmasını önlemeye yardımcı olur, tutarlılığı artırır ve veritabanınız büyüdükçe onu yönetmenizi kolaylaştırır. Önemlidir çünkü veritabanı verimliliğini, bütünlüğünü ve esnekliğini artırır.

  MySQL Veritabanlarını Komut Satırından Yedekleyin

5. MySQL sorgularımın güvenli olduğundan nasıl emin olabilirim?

MySQL sorgularınızın güvenli olduğundan emin olmak için değerleri doğrudan sorgulara birleştirmek yerine parametreli veya hazırlanmış sorguları kullanmalısınız. Bu, SQL enjeksiyon saldırılarının önlenmesine yardımcı olur. Ayrıca, herhangi bir sorguyu çalıştırmadan önce kullanıcılara uygun izinleri verdiğinizden ve giriş verilerini doğruladığınızdan emin olun.

6. MySQL veritabanımı yönetmek ve optimize etmek için hangi araçları kullanabilirim?

MySQL veritabanlarını yönetmek ve optimize etmek için birçok popüler araç bulunmaktadır. Bunlardan bazıları MySQL Workbench, phpMyAdmin, Navicat, HeidiSQL ve DBeaver'dır. Bu araçlar şema görselleştirme, sorgu yürütme, performans izleme gibi işlevler sunarak MySQL veritabanınızı etkili bir şekilde yönetmenize ve optimize etmenize olanak tanır.

Sonuç

Bu makalede, MySQL sorgularını derinlemesine inceledik ve bu güçlü sorgu dilinde uzmanlaşmanıza ve veritabanınızı optimize etmenize yardımcı olacak pratik örnekler sunduk. Temel sorgulardan gelişmiş sorgulara kadar, MySQL veritabanınızda bilgileri verimli bir şekilde çıkarmanıza ve karmaşık işlemler gerçekleştirmenize olanak sağlayacak çok çeşitli işlevleri ve teknikleri ele aldık.

MySQL sorgularıyla pratik yapmanın ve denemeler yapmanın becerilerinizi geliştirmenin anahtarı olduğunu unutmayın. MySQL yetkinliğinizi daha da artırmak için yeni senaryolar ve problemlerle kendinizi keşfetmeye ve zorlamaya devam edin.