MySQL Gruplama

MySQL Gruplama

MySQL'de kullanılan veri tipleri arasında sayısal, metinsel, tarih-zaman ve diğer özel amaçlı veriler bulunur Veri boyutu ve işlenecek veri miktarı veri tipleri seçiminde önemli bir etkendir Tarih-zaman veri tipleri arasında DATE, TIME, DATETIME ve TIMESTAMP gibi seçenekler vardır Metinsel veri tiplerinde ise VARCHAR gibi sınırlamalar sayesinde veri optimizasyonu sağlanabilir Primay Key, Foreign Key, Check ve Unique sınırlamaları veritabanının bütünlüğünü korumak için kullanılır

MySQL Gruplama

MySQL veritabanında kullanılan veri tipleri, bir veri tabanı yönetim sistemi için birçok veri tipine ihtiyaç duyulmasından dolayı oldukça önemlidir. Bu veri tipleri arasında sayısal, metinsel, tarih-zaman ve diğer özel amaçlı veri tipleri bulunmaktadır. Sayısal veri tipleri arasında INT, FLOAT ve DOUBLE gibi veri tipleri yer alırken, metinsel veri tipleri VARCHAR ve TEXT gibi veri tiplerinden oluşmaktadır.

Veri tipleri seçiminde, veri boyutu ve işlenen veri miktarı, en önemli etkendir. Diğer taraftan, tarih ve zaman veri tipleri de oldukça önemlidir. MySQL'de DATE, TIME, DATETIME ve TIMESTAMP gibi veri tipleri arasından seçim yapılabilir. Bunlar, veritabanında zaman işleme ve zaman aralıklarını kaydetmek için sıklıkla kullanılan veri tipleridir.

Özellikle, VARCHAR gibi metinsel veri tiplerinde, veri tiplerinin boyutlarını belirleyebilmek için sınırlamalar yapılabilmektedir. Delayed veya Dynamic sıfatlı olabilen bu sınırlamalar, verileri optimize etmek ve daha verimli bir veri işlemenin sağlanması açısından oldukça önemlidir.

Sonuç olarak, MySQL'de kullanılan veri tiplerinin doğru bir şekilde anlaşılması ve kullanılması, kuruluşların daha verimli bir veri işleyişine sahip olmalarını sağlayacak ve veritabanının hızı ve performansı açısından fayda sağlayacaktır.


Sayısal Veri Tipleri

Sayısal veri tipleri, MySQL veri tabanında oldukça sık kullanılır. INT, FLOAT ve DOUBLE gibi sayısal veri tipleri arasında bazı sınırlamalar bulunmaktadır. INT, yalnızca tam sayıları saklayabilirken, FLOAT ve DOUBLE gibi veri tipleri, ondalıklı sayıları depolayabilir. Aralarındaki fark, FLOAT veri tipinin daha az kesin olduğudur ve bu nedenle daha az yer kaplar. Ancak DOUBLE veri tipi daha kesindir ve daha fazla sayıda ondalık basamağını tutabilir.

Veri Tipi Boyut Minimum Değer Maksimum Değer
INT 4 Byte -2147483648 2147483647
FLOAT 4 Byte -3.402823466E+38 3.402823466E+38
DOUBLE 8 Byte -1.7976931348623157E+308 1.7976931348623157E+308

Tabloda görülebileceği gibi, INT veri tipi 4 Byte boyutunda, FLOAT ve DOUBLE ise sırasıyla 4 Byte ve 8 Byte boyutunda saklanabilirler. INT, -2147483648'den 2147483647'ye kadar olan tam sayıları saklayabilir. FLOAT ve DOUBLE veri tipleri daha büyük sayıları saklayabilir, ancak FLOAT veri tipi, daha az kesin olduğu için daha az yer kaplar. DOUBLE veri tipi ise, daha kesin ve daha büyük sayıları saklayabilir.


Tarih ve Zaman Veri Tipleri

MySQL veritabanında, tarih ve zaman bilgisi üzerinde çalışmak için kullanılan bazı veri tipleri vardır. Bu veri tipleri; DATE, TIME ve DATETIME şeklinde sıralanabilir.

DATE veri tipi, yalnızca tarihi içerir ve YYYY-MM-DD formatında saklanır. Bu formatta yazılmayan tarihleri kabul etmez. TIME veri tipi ise, yalnızca zamansal bilgi içerir ve HH:MM:SS formatında saklanır. Bu formatta yazılmayan bir zamanı kabul etmez. DATETIME ise, hem tarih hem de zaman bilgisini içerir ve YYYY-MM-DD HH:MM:SS şeklinde saklanır.

Bu veri tiplerinin kullanımı oldukça esnektir. Örneğin, bir randevu programı yazarken DATETIME veri tipini kullanarak tarih ve saat bilgisini bir arada saklayabilirsiniz. Veya yalnızca gün bilgisine ihtiyacınız varsa, sadece DATE veri tipini kullanabilirsiniz.

Ayrıca, bu veri tiplerinin bazı işlevleri de vardır. Örneğin, DATE_ADD() fonksiyonu ile bir tarih değerine gün, ay veya yıl eklenebilir veya çıkarılabilir. Ayrıca, CURDATE() ve NOW() gibi bazı fonksiyonlar da zaman bilgisine erişmek için kullanılabilir.

Sonuç olarak, tarih ve zaman bilgisi üzerinde çalışmak istediğinizde MySQL'in bu veri tiplerini kullanabilirsiniz. Bu veri tiplerinin kullanımı oldukça basittir ve işlevleri de oldukça esnektir.

MySQL'de sınırlayıcılar kullanarak veritabanının bütünlüğünü koruyabilir ve hatalı veri girişlerini engelleyebilirsiniz. Sınırlayıcılar, bir veritabanı tablosunda yer alan bir veya daha fazla sütuna uygulanabilir. Çeşitli sınırlayıcı türleri vardır:

  • Primary Key: Tablonuzda benzersiz bir sütuna göre tanımlanan bir sınırlamadır. Genellikle ID sütununu belirleriz.
  • Foreign Key: İlişkili tablolarda birbirleriyle ilişkilendirilmiş sütunlara uygulanan bir sınırlamadır. İlişkili sütunların birinden diğerine veri aktarımı yapıldığında, yalnızca mevcut olan kayıtlarla sınırlı kalır.
  • Check: Belirli bir koşulu karşılamayan veri girişlerini engellemek için kullanılır.
  • Unique: Bir sütunun yalnızca tekil değerlere sahip olmasını sağlamak için kullanılır.

Primary Key sınırlaması, genellikle ilgili tabloda bulunan sütunlar arasındaki benzersiz bir tanımlayıcı olarak kullanılır. Primary key sütunu, bir dize, tamsayı veya ondalık noktalı sayı olabilir. Ayrıca, bir tablonun her satırındaki bu sütundaki veriler benzersiz olmalıdır. Bu tanımlayıcı, diğer sütunlarla ilişkilendirilerek bu sütun üzerinde bir dizi işlem gerçekleştirilebilir.

Foreign Key sınırlaması, belirli bir tablodaki bir sütundaki verileri, başka bir tablonun aynı isimli sütunundaki verilerle ilişkilendirerek kullanır. İlişki sağlandığında, ilgili verileri eşleştirir ve verileri yalnızca uygun olanlarla sınırlı tutar. Bu sayede, veriler yalnızca uygun olan ilişkideki kayıtlar arasındaki etkileşimleri yansıtır.


Primary Key

MySQL'de bir tablo oluştururken, her bir satır unique ve benzersiz bir kimliği olan bir yere ihtiyaç duyarız. Bu durumda Primary Key (birincil anahtar) sınırlaması devreye girer. Primary Key sınırlaması tablodaki bir veya daha fazla sütunu özelleştirir ve bunların benzersiz olmasını sağlar. Peki, Primary Key sınırlaması nasıl uygulanır?

Bir tablo oluştururken, ayrılmaz bir kolonun Primary Key olması gerekir. Bu kolonlardan biriyle bir değer girilirken, veri kaydedilir. Primary Key sınırlaması sütun üzerinde bir bütünlük sağlar, boş veya NULL değerler içermez. Ayrıca, diğer sütunlara referans vermek için de kullanılır. Primary Key sınırlaması, bir tabloda her bir kaydın benzersiz olmasını ve ayrı olarak tanımlanabilmesini sağlar.

Kolon Adı Veri Tipi Not Null Primary Key
ID INT(11) Yes Yes
Name VARCHAR(50) No No
Age INT(11) No No

Yukarıdaki örnekte, tabloda birincil anahtar `ID` kolonudur. Bu, her kaydın benzersiz olduğu ve aynı zamanda diğer sütunlar için referans alınabileceği anlamına gelir. Ayrıca, sütunlar belirli bir sıraya göre sıralandırılmıştır; ancak sütunlar arasında bir sıralama zorunluluğu yoktur.

Primary Key sınırlaması, veritabanında yer alan verilerin güvenliğini ve bütünlüğünü sağlar. Tablodaki her kaydın birincil anahtarı olması, verilerin kolayca bulunmasını ve bir kaydı diğerlerinden ayırt edebilmesini sağlar.


Foreign Key

Foreign Key (Yabancı Anahtar), bir tablonun, başka bir tablodaki alanla bağlantı kurabilmesi için kullanılır. Bu kısıtlama, bir tablo içindeki bir sütunu diğer bir tablo içindeki bir sütunla ilişkilendirmek için kullanılabilir. Bu ilişki sayesinde, farklı tablolar arasında veriler arasında tutarlılık sağlanabilir.

Foreign Key, genellikle bir tablonun kilit alanlarından birisidir ve diğer tablolara atıfta bulunabilir. Bu sayede, bir tablo içindeki bir alanın değeri, bağlı olduğu bir diğer tablodaki bir alanın değeri ile ilişkili olarak kullanılabilir.

Foreign Keyler genellikle iki tablo arasındaki ilişkiyi belirlemek için kullanılır. Bu ilişki, bir tablo içindeki bir alanın, başka bir tablo içindeki bir alanın değerine bağımlı olduğunu açıklar. Bir Foreign Key kullanımı, bir tablo içindeki bir sütunun, başka bir tablo içindeki bir sütunun değerine bağlı olduğu durumlarda kullanılır.

Örneğin, müşteri bilgileri bir tabloda saklanırken, siparişler ayrı bir tabloda saklanabilir. Bu durumda, sipariş tablosunda bir sütun olarak "müşteri numarası" kullanılabilir. Bu sütun, müşteri tablosundaki bir numarayla ilişkilendirilebilir ve bu sayede, her siparişin ilgili müşteriye ait olduğu belirtilir.

Yabancı anahtarların kullanımı, veritabanlarının esnekliğini artırır ve veri bütünlüğü sağlamasına yardımcı olur. Ancak, doğru bir şekilde kullanılmazsa, performans sorunlarına neden olabilir. Bu nedenle, yabancı anahtarlarda uygun veri sınırları ve birleştirme stratejileri kullanılması gerekir.

Tablolar arasındaki ilişkileri tanımlamak için Foreign Key kullanımı oldukça yaygındır ve veritabanlarının yapılandırılmasında önemli bir rol oynar. Verileri düzenli olarak yapılandırmak, daha iyi performans ve daha az hata ile çalışan bir veritabanı oluşturmak için önemlidir.

MySQL'de verileri sıralayabilmenin yanı sıra, gruplama işlemleri de yapabilirsiniz. Verileri gruplamak, verileri analiz etmek ve istatistikler oluşturmak için kullanışlı bir yöntemdir. Gruplama, birden fazla veri satırının bir araya getirilerek tek bir sonuç satırı oluşturulmasını sağlar. Bu sayede veriler daha anlaşılır hale gelir.

MySQL'de gruplama yapmanın en temel prensibi, GROUP BY ifadesidir. GROUP BY kullanarak, verileri belirli bir kriter veya sütuna göre gruplayabilirsiniz. Bu ifadeyi kullanarak, bir sütuna göre verileri gruplandırmak işlemi gerçekleştirebilirsiniz. Örneğin:

Ad Kategori Fiyat
Telefon Cep Telefonu 1500
Tablet Bilgisayar 3000
Laptop Bilgisayar 5000

Bu tabloda, kategorilerine göre ürünlerimiz gösterilmektedir. Kategorilere göre verileri gruplamak için GROUP BY ifadesini kullanabilirsiniz. GROUP BY kullanarak kategoriye göre gruplandırırsak sonuç:

Kategori Toplam Fiyat
Cep Telefonu 1500
Bilgisayar 8000

Bu örnekte, GROUP BY ifadesi kullanılarak "kategori" sütununa göre gruplama yapıldı ve sonuç her kategori için toplam fiyatı gösteren tabloda sunuldu.

Ayrıca, gruplama sonuçlarını filtrelemek için HAVING ifadesini kullanabilirsiniz. HAVING, GROUP BY ifadesiyle gruplanmış veriler üzerinde filtreleme yapmak için kullanılır. Örneğin, "Toplam Fiyat" sütununda gösterilen fiyattan yüksek olan ürünleri filtrelemek isteyebilirsiniz. HAVING kullanarak, sadece belirli bir koşula uygun sonuçları filtreleyebilirsiniz.

Özetle, MySQL'de gruplama yapmak için GROUP BY ifadesi kullanılır. Bu ifade verileri belirli bir ölçüte göre gruplayarak daha anlaşılır ve kullanışlı hale getirir. GROUP BY ifadesiyle birlikte HAVING ifadesi kullanılarak sonuçlar daha spesifik hale getirilebilir.


GROUP BY ifadesi

MySQL'de GROUP BY ifadesi, belirli bir sorgu sonucundaki eşsiz değerleri gruplandırmak için kullanılır. Bu ifade, sorgu sonucu dönen birkaç sıradan tek bir kayıt göstermek için kullanılır. Bu işlem, büyük ve karmaşık veritabanlarında oldukça yararlıdır. GROUP BY ifadesi kullanmak, verilerin anlamlı ve daha organize bir şekilde sunulmasını sağlar.

GROUP BY ifadesi ile hangi alanların gruplanabileceği gibi kriterler belirlenir. Örneğin, bir yemek menüsü uygulamasının veritabanından alınan verileri gruplamak için kullanılabilir. Bu veri tablosuna, yemek adı, türü, fiyatı, kalorisi gibi sıralanabilecek farklı alanlar eklenebilir. Belirli bir sorguya eklenen GROUP BY ifadesi, yemek adı veya türü gibi belirli bir alanı seçerek, birden fazla satırdan tek bir kayıt döndürür. Bu konuda bir örnek sorgu aşağıdaki gibidir:

Yemek türü Toplam fiyat
Çorba 80 TL
Ana yemek 180 TL
Tatlı 60 TL

Yukarıdaki tabloda, yemek türlerine göre gruplandırılmış fiyatlar gösterilir. GROUP BY ifadesi, yalnızca SQL sorguları içinde kullanılmaz. Bazı uygulamalar, kullanıcıların istedikleri sütunları görüntülemelerine izin verir. Bu durumda, bir raporlama aracı GROUP BY ifadesi kullanarak elde edilen verileri görüntüleyebilir.


HAVING ifadesi

MySQL'de GROUP BY ifadesinin ardından HAVING ifadesi kullanılabilir. Gruplama sonuçlarını filtrelemek ve sınırlamak için kullanılır. Bu ifadenin kullanımı WHERE ifadesine benzese de, WHERE ifadesi tek bir satıra uygulanırken HAVING ifadesi gruplama sonuçlarına uygulanır.

HAVING ifadesi, GROUP BY ifadesi ile gruplanan tablolarda büyük ölçüde kullanılır. GROUP BY ifadesiyle belirtilen sütunlardaki verilerin birleştirilmesi ve toplanması sonucunda, oluşan grupların tümü veya belirli gruplar baz alınarak sorgulama yapılır. Bu sorgulama sonucunda, sadece belirli koşulları sağlayan gruplar listelenir.

HAVING ifadesi, öncelikle GROUP BY ifadesinde belirtilen sütunlara göre gruplanmış sorgu sonuçlarının bir veya birkaç sütununa filtreleme yapılmasını sağlar. Gruplama sonucu elde edilen sayılar, mantıksal ve aritmetik işlemlerle karşılaştırılıp, koşulları sağlayanlar listelenir. HAVING ifadesi, WHERE ifadesindeki sorgu özelliklerini de taşımaktadır.

Özetle, HAVING ifadesi, GROUP BY ifadesinin ardından kullanılır ve gruplama sonuçlarını filtrelemek, sınırlamak ve işlemek için ideal bir yöntemdir. GROUP BY ifadesi kullanılarak gruplandırılmış verilerin raporlarda yer alması gerektiğinde, HAVING ifadesi kullanımı zorunlu hale gelir.