MySQL veritabanı yönetimi için etkili SQL sorguları yazmak, verilerinizi doğru ve hızlı bir şekilde işlemenizi ve yönetmenizi sağlar Bu yazıda, SELECT, WHERE, JOIN, GROUP BY, ORDER BY, INSERT INTO, UPDATE ve DELETE gibi SQL sorgularını öğreneceksiniz WHERE koşullu sorgularıyla verilerinizi sınırlandırabilir ve AND/OR operatörleriyle karmaşık filtreleme işlemleri yapabilirsiniz Etkili SQL sorguları yazarak verilerinizi doğru bir şekilde çekebilir, gruplandırabilir, sıralayabilir, güncelleyebilir ve silebilirsiniz Doğru SQL sorgularını öğrenmek, veritabanı yönetimi için oldukça önemlidir

MySQL veritabanı yönetimi, işletmeler ve kuruluşlar için veri tabanlarını yönetmek için kullanılan en önemli araçlardan biridir. Veritabanı yönetimi için SQL sorgularının etkili bir şekilde yazılması da oldukça önemlidir. Etkili SQL sorguları yazmak, verilerinizi doğru bir şekilde çekmenizi ve işlemenizi sağlar. Bu yazıda, MySQL'de etkili SQL sorgularını nasıl yazabileceğinizi öğreneceksiniz.
SQL sorguları, veritabanınızdaki verilere erişmenin ve işlemenin en temel yoludur. Kullanıcıların, istedikleri veriyi hızlı ve doğru bir şekilde çekebilmeleri için SQL sorgularının doğru bir şekilde yazılması gereklidir. Bu nedenle, SQL sorgularının etkili bir şekilde yazılması, veri tabanı yönetiminde oldukça önemlidir.
Verilerinizin doğru bir şekilde çekilmesini ve işlenmesini sağlayan etkili SQL sorguları yazmak için, SELECT, WHERE, JOIN, GROUP BY, ORDER BY, INSERT INTO, UPDATE ve DELETE gibi SQL sorgularını öğrenmeniz gerekiyor. Bu SQL sorgularını doğru bir şekilde öğrenmek, MySQL veritabanı yönetimi için oldukça önemlidir.
SELECT sorgusu, verilerinizi görüntülemenin en temel yolu olarak kabul edilir. WHERE koşullu sorguları, verileriniz üzerinde filtreleme işlemi yapmanızı sağlar. JOIN sorguları, birden çok tablodan veri çekerken kullanılır ve GROUP BY ve ORDER BY sorguları verilerinizi gruplandırmanıza ve sıralamanıza olanak tanır. INSERT INTO, UPDATE ve DELETE ile var olan verileri güncelleyebilir, yeni veriler ekleyebilir veya belirli verileri MySQL veritabanından silebilirsiniz.
MySQL veritabanı yönetimi için etkili SQL sorguları yazmak, verilerinizi doğru bir şekilde işlemenizi ve yönetmenizi sağlayacaktır. Bu nedenle, doğru SQL sorgularını öğrenmek, veri tabanı yönetimi için oldukça önemlidir.
SELECT Sorguları
MySQL veritabanında SELECT sorguları, verilerinizi görüntüleme işlemini gerçekleştirir. Bu sorgular, başka SQL sorgularını yazmanın temelini oluşturur. SELECT sorguları, verilerinizi istediğiniz şekilde şekillendirmenize olanak tanır. Örneğin, belirli verileri seçerek, belirli koşullara göre veri çıkışlarını sınırlandırarak veya tablolarınızı birleştirerek verilerinizi analiz edebilirsiniz.
SELECT sorgularının temel yapısı aşağıdaki gibidir:
SELECT | veri alanlarını seçmek için kullanılır |
---|---|
FROM | verilerin çekileceği tabloyu belirtir |
WHERE | verilerin filtreleme işlemi için kullanılır |
GROUP BY | verilerin grubunu belirlemek için kullanılır |
ORDER BY | verilerin sıralamasını belirlemek için kullanılır |
SELECT sorgularını yazarken dikkat etmeniz gereken bazı noktalar vardır. İlk olarak, yalnızca ihtiyaç duyduğunuz veri alanlarını seçin. Böylece sorgu, gereksiz yere yavaşlamayacaktır. İkincisi, koşullu sorgular ile verilerinizi filtreleyin. Bu, verilerinizin analizini önemli ölçüde basitleştirir. Ayrıca, GROUP BY ve ORDER BY sorguları kullanarak verilerinizi gruplandırma ve sıralama işlemlerini gerçekleştirebilirsiniz.
WHERE Koşullu Sorguları
MySQL'de WHERE koşulu, veri kümenizde belirli koşulların yerine getirdiği verileri sınırlandırmanıza yardımcı olan oldukça önemli bir sorgudur. Bu koşullar, WHERE koşulu değerini karşılayan kayıtların yalnızca gösterilmesini sağlar.
Örneğin, bir kullanıcının IP adresi ile ilgili bilgileri veren bir tablo düşünelim ve belirli bir IP adresi için veriyi çekmek istediğimizi farz edelim. WHERE koşulu kullanarak, örneğin IP adresinin '123.123.123.123' olduğu koşulunu ekleyerek yalnızca ilgili verileri çekebilirsiniz.
IP Adresi | Kullanıcı Adı | Tarih |
---|---|---|
123.123.123.123 | kullanici1 | 2022-05-01 10:30:00 |
234.234.234.234 | kullanici2 | 2022-05-01 11:30:00 |
123.123.123.123 | kullanici3 | 2022-05-01 12:30:00 |
345.345.345.345 | kullanici4 | 2022-05-01 13:30:00 |
Yukarıdaki tabloda, WHERE koşullu sorgusuyla '123.123.123.123' IP adresine sahip olanların bilgilerini kolayca çekebilirsiniz:
SELECT * FROM tablo_adı WHERE ip_adresi="123.123.123.123";
Bu sorgu, yalnızca '123.123.123.123' IP adresine sahip kullanıcıların bilgilerini çeker. WHERE koşulunu kullanarak, verinizin belirli koşullara göre sınırlandırılmasını sağlayabilirsiniz.
AND ve OR Operatörleri
AND ve OR operatörleri, WHERE sorgularında kullanılan koşulları birbirleriyle kombine etmek için kullanılır. AND operatörü, tüm koşulların doğru olduğu satırları seçerken, OR operatörü, herhangi bir koşulun doğru olduğu satırları seçer. Bu operatörler, karmaşık filtreleme işlemlerinde kullanılır ve birden fazla koşulun aynı anda sağlanmasını sağlar.
Örneğin, bir müşteri sipariş tablosundaki siparişlerin listelenmesi düşünülebilir. Siparişler, belirli bir tarihten sonra ve belirli bir tutardan fazla verilmiş olmalıdır. Bu koşullar, aşağıdaki SQL sorgusuyla birleştirilebilir:
```SELECT * FROM siparislerWHERE tarih > '2021-01-01'AND toplam_tutar > 100```
Bu sorgu, tarihi 1 Ocak 2021'den sonraki ve 100 TL'den fazla toplam tutara sahip tüm siparişleri seçecektir. Aynı sorguyu OR operatörüyle kullanırsak, koşulların hangisinin doğru olduğuna bakılmaksızın herhangi bir koşulu sağlayan tüm siparişleri listeler:
```SELECT * FROM siparislerWHERE tarih > '2021-01-01'OR toplam_tutar > 100```
AND ve OR operatörlerini kullanarak, MySQL sorgularınızı daha esnek hale getirebilirsiniz ve istediğiniz sonuçları elde edebilirsiniz. Ancak, koşulları doğru bir şekilde birleştirmek için dikkatli olmanız gerektiğini unutmayın.
LIKE Operatörü
MySQL'de LIKE operatörü, belirli bir modeli kullanarak verilerinizi filtrelemek için oldukça kullanışlıdır. Bu operatör, veri kümenizi filtrelemek için kullanabileceğiniz birkaç özel karakter içerir. İlk özel karakter, yüzde (%) işaretidir. Bu karakter, verilerin başında, sonunda veya her iki tarafında herhangi bir sayıda karakter olabilir anlamına gelir. Örneğin, "S%" ifadesi, S harfiyle başlayan tüm verileri filtreler.
İkinci özel karakter, alt tire (_) işaretidir. Bu karakter, bir karakter yerine herhangi bir karakterin yerini alabilir. Örneğin, "S_mith" ifadesi, S harfiyle başlayan ve ith ile biten tüm isimleri filtreler. Ayrıca, LIKE operatörü sayesinde daha spesifik filtreleme yapmak için özel bir karakter olan ters eğik çizgi (/) işaretini kullanabilirsiniz.
LIKE operatörü, hem tek sorguda hem de WHERE koşullu sorguları ile birlikte kullanılarak filtreleme işlemlerini daha da ayrıntılı hale getirir. Örneğin, "SELECT * FROM customers WHERE last_name LIKE 'Sm%' AND city='Istanbul'" ifadesi, İstanbul'da yaşayan ve soyadı S harfiyle başlayan tüm müşterileri listeler.
JOIN İşlemleri
JOIN işlemleri, veri tabanınızda birden fazla tablo varsa bu tablolardan verilerinizi çekerken kullanılan önemli bir sorgu yöntemidir. Bu sorguları kullanarak, ilgili tablolar arasındaki bağlantıları belirleyebilir ve verilerinizi birleştirebilirsiniz.
JOIN sorguları, birincil ve ikincil tablolar arasında belirli bir bağlantı sağlayan belirli bir alan temel alınarak yapılır. Bu alanlar genellikle tablolarda aynı isimle bulunduğunda kullanılır. JOIN sorguları, INNER JOIN, LEFT JOIN ve RIGHT JOIN olmak üzere üç farklı türde yapılır.
INNER JOIN, birincil ve ikincil tablolardaki belirli alanlar eşleştiğinde sorgu sonuçlarını sınırlandırır. LEFT JOIN, birincil tablodaki tüm verileri gösterirken, ikincil tablodaki eşleşen verileri sınırlandırır. RIGHT JOIN ise tersi işlemi yapar. Yani ikincil tablodaki tüm verileri gösterir ve birincil tablodaki eşleşenlerin yanı sıra eşleşmeyenleri de gösterir.
Join işlemleri veri tabanınızda karmaşık ilişkilerle oluşturulan verilerinizi sorgularken büyük kolaylıklar sağlar. Ancak doğru bağlantıyı sağlamak ve doğru JOIN sorgusu tipini seçmek oldukça önemlidir. Bu sayede, verilerinizde daha verimli sorgular oluşturabilir ve kaynaklarınızdan tasarruf edebilirsiniz.
INNER JOIN
INNER JOIN, farklı tablolardaki ilgili alanlar arasındaki eşleşen verilere dayalı olarak sorgu sonuçlarını sınırlandırır. INNER JOIN sorgusu, ilgili iki tablo arasındaki bağlantıyı belirleyen JOIN koşulu kullanılarak verileri birleştirir.
Bir örnek ile açıklamak gerekirse, bir e-ticaret sitesinde sipariş ve müşteri bilgileri farklı tablolarda kaydedilir. İki tablo arasındaki bağlantı siparişlerin müşteri kimlik numaraları (customer_id) ile müşteri tablosundaki müşteri kimlik numarası (id) alanıdır. Bu durumda, INNER JOIN kullanarak sipariş verilerinin müşteri tablosu ile birleştirilmesi mümkündür. Bu birleştirmeden sonra, belirli bir müşterinin tüm sipariş verilerine ulaşmak için WHERE koşulu kullanılabilir.
Siparişler Tablosu | Müşteriler Tablosu |
---|---|
order_id | id |
product_id | name |
customer_id | surname |
order_date |
INNER JOIN, tablolar arasındaki bağlantıyı sağladığı için, sorgu sonuçları yalnızca bağlantıda eşleşen verilerle sınırlıdır. Bu nedenle, INNER JOIN sorgusu tablolar arasındaki bağlantıyı doğru belirlemek son derece önemlidir.
LEFT JOIN
LEFT JOIN, SQL sorgularında birden fazla tablo kullanarak veri çekmek için kullanılır. Bu sorgu, bir tablodaki tüm verileri ve eşleşen verileri diğer tablodan getirir. Bu nedenle, eşleşen verileri sınırlandırsa da birincil tablodaki tüm verileri gösterir.
Bu sorgunun kullanımı, birincil tablodaki verilerin tamamını göstermek için idealdir ve ek bilgilerin sağlanması gereken ikincil tabloda sınırlı sayıda kayıt varsa kullanışlıdır. LEFT JOIN sorgusu, yeniden kullanılabilirliği ve veri sorgulama sürecinde zaman kazandırır.
Bir tablodaki tüm verilerin gösterilmesi ve diğer tablodan yalnızca eşleşen verilerin sınırlandırılması, işletmelerin verileri daha iyi yönetmelerine ve etkili kararlar almalarına yardımcı olur. Tablolar arasındaki ilişkileri belirlemek ve verileri filtrelemek amacıyla LEFT JOIN sorgusunun kullanılması, şirketlerin daha doğru sonuçlara ulaşmasını sağlar.
GROUP BY ve ORDER BY Sorguları
MySQL'de verilerinizi gruplandırmanıza ve sıralamanıza olanak tanıyan GROUP BY ve ORDER BY sorguları oldukça etkilidir. GROUP BY sorgusu, bir sıralama işlemi için kullanılan alanlara göre verileri gruplandırır. Örneğin, bir müşteri veritabanındaki müşterileri yaşlarına göre gruplandırmak isteyebilirsiniz. Bu durumda, GROUP BY sorgusu ile İD, AD ve YAŞ alanları belirtilebilir ve veriler bu alanlara göre gruplandırılabilir.
ORDER BY sorgusu, sıralama işlemi için kullanılır ve belirli bir sıralama yöntemi belirler. Örneğin, müşteri veritabanındaki müşterileri isimlerine göre alfabetik olarak sıralamak isteyebilirsiniz. Bu durumda, ORDER BY sorgusu ile İD, AD ve SOYAD alanları belirtilerek veriler bu alanlara göre sıralanabilir.
Aynı zamanda, GROUP BY ve ORDER BY sorgularının bir arada kullanılması da mümkündür. Örneğin, bir müşteri veritabanındaki müşterileri yaşlarına göre gruplandırmak ve bu grupları alfabetik olarak isimlerine göre sıralamak isteyebilirsiniz. Bu durumda, GROUP BY ve ORDER BY sorguları birlikte kullanılarak hedeflenen sonuç elde edilebilir.
GROUP BY
Veritabanı yönetimi için etkili SQL sorguları yazmak önemlidir. GROUP BY sorgusu, sıralama işlemi için kullanılan alanlara göre verileri gruplandırır. Örneğin, bir web sitesinde satılan ürünlerin listesini göstermek için kullanılan bir veritabanımız olduğunu varsayalım. Bu veritabanında ürünün adı, fiyatı ve stoğu sütunlarına sahip olduğumuzu düşünelim. GROUP BY sorgusu, ürün adlarına göre verileri gruplandırarak benzer ürünleri bir araya getirebilir ve onları tek bir satırda gösterir.
Örneğin, "Kitap" adlı bir ürün kategorisi için aynı kitabın birçok farklı sürümü satılabilir. GROUP BY sorgusu, benzer "Kitap" ürünleri arasındaki farklı sürümleri gruplandırarak farklı sürümler için ayrı ayrı tekrarlamasını önler.
GROUP BY sorgusu, verileri birleştirmede oldukça yararlıdır, ancak doğru şekilde kullanılmadığında performans sorunlarına neden olabilir. Bu nedenle, sorgu öncesi verilerin optimize edilmesi önemlidir. Ayrıca, büyük veri kümesi olan veritabanlarında GROUP BY sorgusu kullanmadan önce daha iyileştirilmiş bir sorgu seçeneği olduğundan emin olmak önemlidir.
ORDER BY
MySQL'de verilerin sıralanması için ORDER BY sorgusu kullanılır. Bu sorgu, verileri belirli bir sıralama yöntemine göre düzenler. Sıralama işlemi için kullanılan SQL komutu, "SELECT x FROM y ORDER BY z" şeklindedir. Burada x, görüntülenmek istenen sütun adı; y, veri kaynağının adı; z ise sıralama kriteri olarak kullanılan sütun adıdır.
ORDER BY sorgusu, ASC ve DESC anahtar kelimeleri kullanılarak sıralama tipi belirtilir. ASC, küçükten büyüğe doğru sıralama yaparken, DESC büyükten küçüğe doğru sıralama yapar.
Sıralama işlemi için birden fazla sütun kullanmak mümkündür. Örneğin "SELECT ad, soyad FROM kisiler ORDER BY ad ASC, soyad DESC" sorgusu ad sütununa göre küçükten büyüğe, soyad sütununa göre büyükten küçüğe doğru sıralama yapacaktır.
Veri Düzenleme Sorguları
MySQL, veritabanı yönetimi için oldukça popüler bir araçtır. Bu veritabanında verilerinizi eklemek, güncellemek ve silmek için bir dizi SQL sorgusu kullanmanız gerekiyor. Bu sorgular, verilerinizi düzenlemek ve veritabanınızda güncel kalmak için oldukça önemlidir.
INSERT INTO sorgusu, yeni verileri MySQL veritabanına eklemek için kullanılır. Bu sorgu, veritabanınızda yeni bir veri tablosu oluşturmak veya mevcut bir veri tablosunu güncellemek için idealdir. Bu sorguyu kullanarak, verilerinizi kolayca MySQL veritabanınıza ekleyebilirsiniz.
UPDATE sorgusu, var olan verileri güncellemek için kullanılır. Bu sorguyu kullanarak, veritabanınızda bulunan belirli verileri güncelleyebilirsiniz. Örneğin, bir kullanıcının parolasını değiştirmek veya bir ürünün fiyatını güncellemek gibi.
DELETE sorgusu ise, belirli verileri MySQL veritabanından silmek için kullanılır. Bu sorguyu kullanarak, veritabanınızda bulunan belirli bir tablodan veya sütundan verileri kolayca silmeniz mümkündür. Ancak, bu sorguyu kullanırken dikkatli olmanız gerekir, çünkü verileriniz silinebilir ve geri döndürülemez olabilir.
Verilerinizi düzenlemek için SQL sorgularını kullanmadan önce, mutlaka veritabanınızı yedeklemelisiniz. Yedekleme işlemi, verilerinizin kaybolması durumunda geri yüklemeyi kolaylaştırır ve veritabanınızın güvenliğini arttırır.
INSERT INTO
INSERT INTO Sorgusu ile Veri Ekleme
MySQL veritabanına veri eklemek için kullanılan en önemli SQL sorgusu INSERT INTO'dur. Bu sorgu, belirli bir tabloya yeni verileri eklemek için kullanılır. Söz konusu tabloda ilgili alanlara veriler girilir ve verilerin kalıcı bir şekilde saklanması sağlanmış olur.
INSERT INTO sorgusunun temel yapısı şu şekildedir:
INSERT INTO | Tablo Adı | (Alan 1, Alan 2, ...) | VALUES | (Değer 1, Değer 2, ...) |
---|---|---|---|---|
Tabloya veri eklenecek olan tablonun adı | Veri eklenecek olan alan adları | Veri eklenecek olan alanlara ait değerler |
Yukarıdaki yapıda olarak INSERT INTO, Tablo Adı, (Alan 1, Alan 2, ...), VALUES ve (Değer 1, Değer 2, ...) yer almaktadır. Tablo Adı kısmı, verilerin ekleneceği tablo adını ifade eder. (Alan 1, Alan 2, ...) kısmı, verilerin hangi alanlara ekleneceğini belirler. VALUES ve (Değer 1, Değer 2, ...) kısımları ise, eklenecek olan verileri ifade eder.
Örneğin, bir kullanıcı tablosuna yeni bir kullanıcı eklemek istediğinizi varsayalım. Bu durumda INSERT INTO sorgusu ile yeni veriler eklemek için şu yapılabilir:
- INSERT INTO Kullanici (Adi, Soyadi, Yas) VALUES ('Ahmet', 'Yilmaz', 27)
- INSERT INTO Kullanici (Adi, Soyadi, Yas) VALUES ('Ayse', 'Demir', 32)
- INSERT INTO Kullanici (Adi, Soyadi, Yas) VALUES ('Mehmet', 'Kara', 45)
Yukarıdaki örnekte Kullanici tablosuna yeni kullanıcılar eklemek için INSERT INTO sorgusu kullanılmıştır. Sorguda, kullanıcıların adı, soyadı ve yaşı belirtilerek tabloya eklenecekleri belirtilmiştir. Eğer tabloda sadece bir alan varsa, (Alan 1, Alan 2, ...) kısmını yazmanıza gerek yoktur.
Bu şekilde INSERT INTO sorgusu kullanarak, MySQL veritabanına yeni veriler eklemek oldukça kolaydır.
UPDATE
MySQL veritabanı yönetimi için UPDATE komutu, var olan verileri güncellemek için kullanılır. Bu işlem, veritabanınızda yapılacak birçok değişikliği gerçekleştirmenizi sağlar. Eğer bir veri yanlış girildi ya da verilerinizde bir güncelleme gerekiyorsa UPDATE komutu kullanmak oldukça faydalıdır.
UPDATE komutu, WHERE koşullarını kullanarak belirli bir veri kümesini seçebilir veya tüm veri kümesini değiştirebilir. Ayrıca, birden fazla sütuna veya tabloya da etkisi olabilir. Özellikle büyük ölçekli projelerde, verileri güncellemek için UPDATE komutunun nasıl kullanılacağını bilmek oldukça önemlidir.
UPDATE komutunu kullanırken, tablo adını ve sütun adını doğru bir şekilde belirtmeniz gerekmektedir. Bu işlem için FROM komutu da kullanabilirsiniz. Sorgunuzu tamamladıktan sonra, işlemi gerçekleştirmek için COMMIT komutunu kullanabilirsiniz.
Bir örnek ile açıklarsak, "Ögrenciler" adlı tabloda "ad" sütununda "Ali" olan kayıtları "Ahmet" olarak değiştirmek istediğinizde yapmanız gereken sorgu şu şekildedir:
SQL Sorgusu | Açıklama |
---|---|
UPDATE Ogrenciler SET ad='Ahmet' WHERE ad='Ali' | Ögrenciler tablosunda adı "Ali" olan kayıtları "Ahmet" olarak değiştirir. |
UPDATE komutunun yanı sıra, INSERT INTO ve DELETE komutları da verileri değiştirmek için sıklıkla kullanılır. Bu komutları kullanarak MySQL veritabanınızda istediğiniz değişiklikleri gerçekleştirebilirsiniz.
DELETE
MySQL veritabanı yönetimi için DELETE komutu oldukça önemlidir. DELETE komutu, belirli verilerin veritabanından silinmesini sağlar.
DELETE komutunu kullanırken, WHERE sorgusunu kullanarak hangi verilerin silineceğini belirlemelisiniz. Aksi takdirde, veritabanındaki tüm veriler silinebilir.
Örneğin, müşteri tablosundan bir müşterinin verilerini silmek istediğinizi varsayalım. Aşağıdaki SQL kodunu kullanabilirsiniz:
DELETE FROM | musteriler |
---|---|
WHERE | musteri_id = 123 |
Yukarıdaki SQL kodu, müşteri tablosundaki müşteri_id'si 123 olan müşterinin verilerinin silinmesini sağlar.
DELETE komutu, verileri geri getirme olasılığı olmadığından, kullanımı sırasında dikkatli olunması gerekir. Veritabanınızda gereksiz verileri silmek için DELETE komutunu kullanmalısınız.