MySQL ile veritabanı yönetimi yaparken SQL sorgularını doğru şekilde hazırlamak önemlidir SQL sorgularının temel yapısı SELECT-FROM-WHERE şeklindedir Sorguda hangi sütunların dahil edileceği, hangi tablodan verilerin alınacağı ve hangi koşulların sağlanması gerektiği belirtilir SELECT kullanılarak sütun seçimi yapılır, FROM ise verilerin alınacağı tabloları belirtir Verilerin belirli bir koşula göre filtrelenmesi gerektiğinde WHERE kullanılır SQL sorgularında toplama ve gruplama fonksiyonları kullanılarak sütun içerisindeki değerlerin toplamı, sayısı, ortalaması, en büyük değeri veya en küçük değeri hesaplanabilir Bunun yanı sıra, sorgulara fonksiyonel komutlar da eklenebilir

MySQL, günümüzün en popüler veritabanları arasında yer almaktadır. Bir web sitesinin, bir uygulamanın ya da bir yazılımın arkasında veritabanları ve SQL sorguları yer alır. Bu nedenle, MySQL ile veritabanı yönetimi yaparken SQL sorgularını doğru şekilde hazırlamanız son derece önemlidir.
Bu makalede sizlere, MySQL ile SQL sorgularının nasıl hazırlanacağı hakkında detaylı bir rehber sunuyoruz. İşte, veritabanı yönetimi ile ilgili temel bilgileri edinmeye hazır olun!
SQL Sorgularının Temel Yapısı
MySQL veritabanı yönetimi yaparken SQL sorguları hazırlamak oldukça önemlidir. SQL sorgularının temel yapısı SELECT-FROM-WHERE şeklindedir. Bu temel yapıda, sorguya hangi sütunların dahil edileceği, hangi tablodan verilerin alınacağı ve hangi koşulların sağlanması gerektiği belirtilir.
SELECT: SQL sorgusu yapılırken, hangi sütunların seçileceği belirlenir. Bu işlem SELECT kullanılarak sağlanır.
Söz Dizimi | Açıklama |
---|---|
SELECT column1, column2, ... | Belirtilen sütunları seçer. |
FROM: Verilerin alınacağı tablolar, FROM kullanılarak belirtilir.
Söz Dizimi | Açıklama |
---|---|
FROM table1, table2, ... | Verilerin alınacağı tabloları belirler. |
WHERE: Verilerin belirli bir koşula göre filtrelenmesi gerektiğinde WHERE kullanılır.
Söz Dizimi | Açıklama |
---|---|
WHERE condition | Belirtilen koşula göre verileri filtreler. |
SQL sorgularında sıklıkla kullanılan diğer temel yapılar GROUP BY, HAVING ve ORDER BY'dır. Bu yapıları kullanarak verilerin gruplanması, toplamı ve sıralanması sağlanabilir.
SELECT Kullanımı
MySQL veritabanı yönetimi yaparken sorgulara ihtiyacınız olacaktır. SELECT, bazı tabloları veya sütunları seçmenizi sağlar. Bu komut, verilerin belirli bir parçasını almanızı sağlar. SELECT ile belirtilen sütunlar, belirtilen sırayla ve sadece belirtilen sütunlardan oluşan bir sonuç kümesi oluşturulur.
SELECT kullanmak oldukça basittir. İlk olarak komutu yazın, sütun adlarını belirtin ve son olarak tablonun adını belirtin:
SELECT | Sütun Adları | FROM | Tablo Adı |
---|
Örneğin, bir müşteri tablosundaki tüm isimleri listelemek isterseniz şu şekilde bir sorgu oluşturabilirsiniz:
SELECT | ad, soyadı | FROM | müşteriler |
---|
Bu sorgu, müşteriler tablosundaki tüm müşterilerin adlarını ve soyadlarını getirecektir. Sorguyu çalıştırdıktan sonra, veritabanı yönetim yazılımınıza sonuçları doğru şekilde almış olacaksınız.
Bazı durumlarda, tüm sütunların seçilmesi gerekli olabilir. Bu durumda, ‘*’ işaretini kullanarak tüm sütunları seçebilirsiniz:
SELECT | * | FROM | Tablo Adı |
---|
Bu sorgu, tüm tablonun tüm sütunlarını getirecektir. Ancak, büyük tablolar için bu sorgu oldukça yavaş çalışabilir ve performans sorunlarına neden olabilir. Bu yüzden, sadece gerekli olan sütunları seçmek en iyisidir.
Bunun yanı sıra, SQL sorgularında birçok fonksiyonel komut da bulunmaktadır. Bu komutlar, sorgularınızı daha kesin olarak tanımlayabilir ve daha belirli işlevleri yerine getirebilir. Bu komutlar hakkında da daha detaylı bilgi edinebilirsiniz.
Toplama ve Gruplama Fonksiyonları
SQL sorgularında verileri toplayabilir ve gruplayabilirsiniz. Toplama fonksiyonlarının kullanımı için genellikle SUM, COUNT, AVG, MAX ve MIN fonksiyonları kullanılır. Bu fonksiyonlar sayesinde sütun içerisindeki değerlerin toplamı, sayısı, ortalaması, en büyük değeri veya en küçük değeri hesaplanabilir.
Gruplama fonksiyonları ise verileri belirli bir kategoriye göre gruplandırmak için kullanılır. GROUP BY kullanarak sütunu gruplayabilir ve fonksiyonları belli bir gruba uygulayabilirsiniz. Örneğin, bir müşteri veritabanında bulunan tüm müşterilerin şehirlerine göre gruplanmasını isteyebilirsiniz.
SQL Fonksiyonu | Açıklama |
---|---|
SUM() | Belirtilen sütundaki tüm değerlerin toplamını hesaplar. |
COUNT() | Belirtilen sütundaki tüm değerlerin sayısını hesaplar. |
AVG() | Belirtilen sütundaki tüm değerlerin ortalamasını hesaplar. |
MAX() | Belirtilen sütundaki tüm değerlerin en büyüğünü hesaplar. |
MIN() | Belirtilen sütundaki tüm değerlerin en küçüğünü hesaplar. |
Gruplama fonksiyonları ise GROUP BY ile birlikte kullanılır. Bunlar; AVG(), COUNT(), MAX(), MIN(), ve SUM() fonksiyonlarıdır. Örneğin, bir müşteri veritabanındaki müşteri siparişlerini gruplandırmak isteyebilirsiniz, siparişlerin toplam değerlerini, adetlerini vb. hesaplayabilirsiniz.
- AVG() - Bir grubun değerlerinin ortalamasını hesaplar
- COUNT() - Bir gruptaki satır sayısını hesaplar
- MAX() - Bir grubun maksimum değerini hesaplar
- MIN() - Bir grubun minimum değerini hesaplar
- SUM() - Bir gruptaki değerlerin toplamını hesaplar
SUM Fonksiyonu
SUM fonksiyonu, sütun içerisindeki sayısal değerlerin toplamını hesaplar ve sonucunu döndürür. Bu fonksiyon, toplama işlemi yapmanız gerektiğinde kullanışlıdır.
Örneğin, "Orders" tablosundaki "Price" sütunundaki değerlerin toplamını almak istediğinizde SUM fonksiyonunu kullanabilirsiniz. Bu işlemi gerçekleştirmek için "SELECT SUM(Price) FROM Orders" SQL sorgusunu kullanabilirsiniz. Bu sorgu, "Price" sütununun toplamını hesaplar ve sonucunu döndürür.
SUM fonksiyonu, sadece sayısal değerler içeren sütunlarda kullanılabilir. Eğer sütunda başka veri türleri de varsa, bu verilerin toplaması yapılamaz ve hata mesajı alınır.
Özetle, SUM fonksiyonu SQL sorgularında toplama işlemleri yapmak için kullanılır ve sadece sayısal değerler içeren sütunlarda kullanılabilir. Bu şekilde kullanarak kolayca sütun içerisindeki değerlerin toplamını bulabilirsiniz.
GROUP BY Kullanımı
GROUP BY, özellikle birden fazla benzersiz değer içeren bir sütunu gruplamak için kullanılır. Bu işlem sonucunda, her bir benzersiz değer grubu ayrı ayrı listelenir. Bu, birçok farklı senaryoda oldukça yararlı bir özelliktir.
Örneğin, öğrencilerin sınıflarında aldıkları notları tutan bir tablo düşünün. Sınıf sütunundaki benzersiz değerleri gruplamak için GROUP BY kullanılabilir. Bu şekilde, her sınıfın not ortalaması görüntülenebilir.
Sınıf | Öğrenci | Not |
---|---|---|
10-A | Ahmet | 90 |
10-A | Ayşe | 85 |
10-A | Mehmet | 95 |
10-B | Fatma | 75 |
10-B | Okan | 80 |
10-B | Zeynep | 70 |
Yukarıdaki tabloda, öğrencilerin sınıflarında aldıkları notlar görülmektedir. Sınıf sütunundaki benzersiz değerleri gruplamak ve her sınıfın not ortalamasını bulmak için aşağıdaki SQL sorgusu kullanılabilir:
SELECT Sınıf, AVG(Not) AS OrtalamaFROM OgrenciNotlariGROUP BY Sınıf;
Bu sorgu sonucunda, sınıfın adı ve her sınıfın not ortalaması listelenecektir.
- 10-A - 90
- 10-B - 75
GROUP BY kullanımı sayesinde sınıf sütunu belirli bir sıraya göre gruplanarak sonuçlar daha okunaklı hale getirilebilir.
JOIN Kullanımı
SQL sorguları ile birden fazla tabloyu sorgulayabilirsiniz. JOIN komutunu kullanarak iki ya da daha fazla tabloyu birleştirebilirsiniz. Böylece, bir tablodaki bir sütun ile diğer tablodaki bir sütun arasındaki ilişkiyi görebilir ve istediğiniz sonucu elde edebilirsiniz.
JOIN komutunu kullanarak birleştirme işlemi çok çeşitli şekillerde gerçekleştirilebilir. Bu, veritabanının nasıl düzenlendiğine ve verilerin nasıl yapılandırıldığına bağlıdır. Aradığınız verileri almak için, hangi JOIN kullanılacağına karar vermeniz gerekir.
Bir JOIN sorgusu, iki ya da daha fazla tablo arasındaki belirli bir koşula göre sıralanır. Burada karşılıklı sütunların verileri eşleştirilir ve birleştirilen tablolardan sadece istenilen veriler seçilir. JOIN sorgusu, INNER JOIN, LEFT JOIN, RIGHT JOIN ve FULL OUTER JOIN gibi farklı türleri içerir.
INNER JOIN, iki tablonun ortak özelliklerini kullanarak birleştirilmesini sağlar. LEFT JOIN, sol taraftaki tablodaki tüm öğeleri ve sağdaki tablodaki eşleşen öğeleri getirir. RIGHT JOIN ise sağdaki tablodaki tüm öğeleri ve sol taraftaki tablodaki eşleşen öğeleri getirir. FULL OUTER JOIN, iki tablonun tüm öğelerini getirir ve eşleşen öğeleri birleştirir.
Bir JOIN sorgusunu yaparken, her iki tablodaki sütunların verilerinin benzer olması gerekir. Veri türleri, boyutları ve benzeri özelliklerin birbirine uyumlu olması gerekir. Ayrıca, tablolardaki sütun isimleri farklı olsa bile, aynı verinin varlığı koşulu ile birleştirme işlemi gerçekleştirilebilir.
JOIN komutunu kullanarak, birden fazla tablodaki verileri birleştirebilir ve gereksinim duyduğunuz verileri elde edebilirsiniz. JOIN sorgularına dikkatlice bakın ve veritabanınızda sağlıklı bir şekilde birleştirme işlemi yapın.
INNER JOIN Kullanımı
INNER JOIN, iki ya da daha fazla tablonun ortak özelliklerine göre birleştirilmesini sağlayan bir SQL sorgusu kullanımıdır. INNER JOIN, veritabanındaki iki ya da daha fazla tabloya özgün birleştirme işlemi yapar ve ancak ilişkili sütunlar arasındaki ortak değerleri getirir. Bu yöntemle, ilgili tablolar arasındaki sütun ilişkileri kullanılarak, sorgu sonucu daha spesifik hale getirilebilir.
İki tablo arasında INNER JOIN yapmak için, ilk önce her iki tablo arasındaki ilişkiyi belirlemeliyiz. Daha sonra bu iki tablo arasındaki ortak bir sütunu kullanarak INNER JOIN sorgusu hazırlanmalıdır. Sorgunun temel yapısı, FROM bölümünde iki tablo adını belirtmek ve JOIN ile birleştirmektir.
Örnek Tablo Adı | Örnek Sütun Adı | Örnek Tablo Verileri |
---|---|---|
employees | employee_id |
|
departments | department_id |
|
Örneğin, employees tablosunda employee_id sütunu ve departments tablosunda department_id sütunu varsa, bu sütunlar arasındaki ilişki INNER JOIN ile birleştirilebilir.
SELECT employees.employee_id, employees.first_name, employees.last_name, departments.department_nameFROM employeesINNER JOIN departmentsON employees.department_id = departments.department_id;
Bu sorgu, employees ve departments tablolarını department_id sütunlarının eşleşmesine göre birleştirir ve sadece bu sütunlar arasındaki ortak verileri getirir. INNER JOIN, SQL sorguları içerisinde en yaygın olarak kullanılan bir birleştirme yöntemidir.
LEFT JOIN Kullanımı
LEFT JOIN, iki tablonun birleştirilmesinde en çok kullanılan işlem türlerinden biridir. Bu işlemde sol taraftaki tablodaki bütün öğeler, sağdaki tablodaki eşleşen öğeler ile birlikte getirilir. Eğer sağdaki tabloda eşleşen öğe bulunmaz ise, sol taraftaki tablo verileri yine de getirilir ve sağdaki tablo için null değerleri gösterir.
Bir örnek vermek gerekirse, bir kitap mağazası veritabanındaki "kitaplar" ve "yazarlar" tablolarını ele alalım. "kitaplar" tablosunda kitap adı, yayın tarihi ve yazar kimliği bilgileri, "yazarlar" tablosunda ise yazar adı ve soyadı bilgileri bulunabilir. Eğer her iki tabloyu LEFT JOIN kullanarak birleştirirsek, soldaki tablo olan "kitaplar" tablosundaki tüm veriler görüntülenecektir. Yazar tablosundan gelen veriler ise varsa eşleştirilecektir. Bu şekilde, kitapların yazar adı ve soyadı da listelenebilir.
Kitap ID | Kitap Adı | Yazar ID | Yazar Adı | Yazar Soyadı |
---|---|---|---|---|
1 | Sefiller | 3 | Victor | Hugo |
2 | Şeker Portakalı | null | null | null |
3 | Kuyucaklı Yusuf | 5 | Sabahattin | Ali |
Yukarıdaki tabloda, Şeker Portakalı kitabının yazarı bilinmediği için null değerleri gösterilmiştir. LEFT JOIN kullanarak veritabanımızdaki verileri birleştirerek, kitapların yazar adlarını ve soyadlarını görüntüleyebiliriz.
FROM Kullanımı
MySQL veritabanı yönetimi yaparken, SQL sorguları hazırlamanız gerekebilir. SQL sorgularında, verilerin alınacağı tabloları belirtmek için FROM kullanılır. FROM, sorguda hangi tablolardan veri alınacağını belirtmek için kullanılan bir anahtar kelimedir.
Örneğin, aşağıdaki SQL sorgusunda, FROM kullanılarak "musteriler" tablosu belirtilmiştir:
SQL Sorgusu | Sonuç |
---|---|
SELECT * FROM musteriler; | Tüm müşterilerin bilgileri getirilir. |
FROM ayrıca, birden fazla tablodan veri almak için kullanılabilir. Örneğin, aşağıdaki SQL sorgusu, "musteriler" ve "siparisler" tablolarındaki verileri birleştirir:
SQL Sorgusu | Sonuç |
---|---|
SELECT * FROM musteriler JOIN siparisler ON musteriler.musteri_id = siparisler.musteri_id; | Müşteri bilgileri ve sipariş bilgileri getirilir. |
Bu örnekte, JOIN anahtar kelimesi, "musteriler" ve "siparisler" tablolarındaki müşteri_id sütununun ortaklığına dayanarak tabloları birleştirir.
FROM kullanımı ile ilgili olarak, sorgudaki tabloların doğru seçilmesi ve uygun bir şekilde birleştirilmesi önemlidir. Yanlış bir tablo seçimi, veri tutarsızlığına ve yanlış sonuçlara neden olabilir. Doğru bir şekilde kullanıldığında, FROM anahtar kelimesi, veritabanından doğru verilerin alınabilmesini sağlar.
WHERE Kullanımı
WHERE Kullanımı
WHERE kullanımı, belirli bir koşula göre tablodaki verileri filtrelemek için kullanılır. WHERE kullanımı, SELECT-FROM-WHERE sorgusunun WHERE bölümünde bulunur. WHERE, SQL'in güçlü bir özelliğidir ve verilerinizi filtrelemek için kullanabileceğiniz birçok seçenek sunar.
WHERE sorgusu, bir ya da daha fazla koşulu tanımlayarak verilerinizi filtreler. WHERE sorgusunda sütun isimlerini ve karşılaştırma operatörlerini kullanarak koşullar belirtebilirsiniz.
Aşağıdaki örnek, 'Orders' adlı bir tablodan, sipariş tarihi '1 Ocak 2021'den büyük olan tüm siparişleri getirir:
Örnek |
---|
SELECT * FROM Orders WHERE OrderDate > '2021-01-01'; |
WHERE sorgusu, sadece karşılaştırma operatörlerini kullanmakla kalmaz, aynı zamanda mantıksal operatörleri de kullanabilir. İŞLEMCI kullanımı için AND, OR ve NOT fonksiyonları kullanılabilir.
WHERE sorgusunda şu örnekte 'Orders' adlı bir tablodan, 'CustomerID' sütununda 'VINET' olan müşterilere ve sipariş tarihi '1 Ocak 2021'den büyük olan siparişleri getirir:
Örnek |
---|
SELECT * FROM Orders WHERE CustomerID='VINET' AND OrderDate > '2021-01-01'; |
WHERE sorgusu, veritabanınızdan yalnızca belirli verileri almanızı sağlar. WHERE sorgusunun doğru kullanımı, veritabanınızda daha verimli sorgular oluşturmanıza yardımcı olur.
ORDER BY Kullanımı
ORDER BY, bir sütuna göre SQL sorgusu sonucunu sıralamak için kullanılır. Sıralama, artan veya azalan yönde olabilir. Örneğin, bir müşteri veritabanı sorgusu yapmak istiyorsunuz ve adlarına göre alfabetik olarak listelenmelerini istiyorsunuz. Bunun için ORDER BY kullanabilirsiniz.
Aşağıdaki örnek, "Customers" tablosunda "LastName" sütununa göre alfabetik sıraya göre sıralamayı gösterir:
SELECT * FROM CustomersORDER BY LastName;
Bu örnek, "Customers" tablosundaki tüm verileri LastName sütununa göre artan sıraya göre listeler.
ORDER BY kullanımı, bir veya daha fazla sütuna göre de yapılabilir. Aşağıdaki örnek, "Customers" tablosunda "Country" ve "LastName" sütunlarına göre alfabetik olarak sıralamayı gösterir:
SELECT * FROM CustomersORDER BY Country, LastName;
Bu örnek, "Customers" tablosundaki tüm verileri Country sütununa göre artan sıraya göre listeler ve aynı ülkeye sahip müşterileri LastName sütununa göre alfabetik olarak sıralar.
ORDER BY kullanımı, DESC anahtar kelimesi kullanılarak azalan sıra için de yapılabilir. Aşağıdaki örnek, "Customers" tablosunda "Country" ve "LastName" sütunlarına göre azalan sıraya göre sıralamayı gösterir:
SELECT * FROM CustomersORDER BY Country DESC, LastName DESC;
Bu örnek, "Customers" tablosundaki tüm verileri Country sütununa göre azalan sıraya göre listeler ve aynı ülkeye sahip müşterileri LastName sütununa göre azalan sıraya göre sıralar.
Sonuç olarak, ORDER BY kullanarak SQL sorgularını bir veya daha fazla sütuna göre sıralayabilirsiniz. Artan veya azalan sıralama seçenekleri mevcuttur. Bu özellik, verileri daha organize ve okunaklı hale getirmek için son derece faydalıdır.