- Konu sahibi
- #1
SQL, ilişkisel veritabanlarında veri oluşturmak, sorgulamak ve değiştirmek için kullanılan bir sorgulama dilidir. MySQL ise SQL dilini kullanan bir veritabanı yönetim sistemidir. Kısaca, SQL dildir; MySQL bu dili çalıştıran yazılımlardan biridir. Bu nedenle SQL ve MySQL birbirinin alternatifi değildir; biri genel kuralları, diğeri bu kuralları uygulayan belirli ürünü ifade eder.
SQL; tablo oluşturma, kayıt ekleme, veri arama, güncelleme, silme ve yetki yönetimi gibi işlemleri ifade eder. SQL için ortak bir standart bulunur; ancak veritabanı ürünleri bu standardı farklı düzeylerde uygular ve kendi ek özelliklerini sunar.
Örneğin aşağıdaki MySQL sorgusu, aktif alanı 0/1 tutan bir tabloyu varsayar. Sorgunun genel yapısı başka ürünlerde tanıdık olsa da Boolean karşılaştırması gibi ayrıntılar birebir taşınmayabilir:
Bu sorgu,
MySQL; tabloları, kayıtları, bağlantıları, kullanıcı yetkilerini ve sorgu işlemlerini yöneten bir ilişkisel veritabanı yönetim sistemidir. Uygulamanız MySQL sunucusuna bağlanır, SQL sorguları gönderir ve sonuçları MySQL'den alır.
MySQL'in yanında PostgreSQL, Microsoft SQL Server, Oracle Database ve SQLite gibi başka SQL kullanan sistemler de vardır. Bu ürünlerin hepsi SQL sorguları çalıştırabilir; fakat kullandıkları yönetim araçları, veri türleri, fonksiyonlar, eklentiler ve bazı komutların yazımı farklıdır.
Bir web uygulamasında kullanıcı bilgilerini saklamak istediğinizi varsayalım. Yalnız size ait ayrı deneme veritabanında, bu tablo adı henüz yokken aşağıdaki küçük hazırlığı kullanabilirsiniz:
Beklenen sonuç Ada ve [email protected] değerleridir. MySQL’de BOOLEAN, TINYINT(1) eş adıdır; tek başına yalnız0/1 zorunluluğu getirmez. Buradaki
Sadece SQL öğreniyorsanız sorgu mantığını, tablolar arası ilişkileri ve veri modellemeyi öğrenirsiniz. MySQL kullanıyorsanız bunlara ek olarak MySQL sunucusunun kurulumu, bağlantı ayarları, kullanıcı yetkileri, yedekleme ve MySQL'e özgü sözdizimini de bilmeniz gerekir.
Aşağıdaki ayrım, öğrenme ve proje seçimini kolaylaştırır:
Yeni bir web projesinde MySQL seçtiyseniz önce MySQL sunucusuna bağlantıyı kurun, ardından tablo yapısını oluşturun ve temel SQL sorgularınızı test edin. Sorgu başka bir veritabanına taşınacaksa MySQL'e özgü fonksiyonları ve veri türlerini ayrıca işaretleyin. Böylece taşınabilir SQL ile ürüne özel kodu birbirine karıştırmazsınız.
“SQL kurulur” demek: SQL tek başına kurulan bir sunucu değildir. MySQL gibi bir veritabanı sistemi kurulur ve SQL sorguları bu sistemde çalıştırılır.
Her SQL sorgusunun her yerde çalışacağını varsaymak: Temel
MySQL ile SQL Server'ı aynı ürün sanmak: MySQL bir üründür; SQL Server ise başka bir üründür. İkisi de SQL kullanır, ancak yönetim araçları ve ürünlere özgü sözdizimleri aynı değildir.
Sadece sorguyu öğrenip veri modelini ihmal etmek: Doğru tablo ilişkileri, anahtarlar ve veri türleri kurulmadığında çalışan sorgular bile hatalı veya bakımı zor bir uygulamaya dönüşebilir.
SQL nedir?
SQL; tablo oluşturma, kayıt ekleme, veri arama, güncelleme, silme ve yetki yönetimi gibi işlemleri ifade eder. SQL için ortak bir standart bulunur; ancak veritabanı ürünleri bu standardı farklı düzeylerde uygular ve kendi ek özelliklerini sunar.
Örneğin aşağıdaki MySQL sorgusu, aktif alanı 0/1 tutan bir tabloyu varsayar. Sorgunun genel yapısı başka ürünlerde tanıdık olsa da Boolean karşılaştırması gibi ayrıntılar birebir taşınmayabilir:
Kod:
SELECT ad, eposta
FROM sql_mysql_demo_kullanicilar
WHERE aktif = 1;
Bu sorgu,
sql_mysql_demo_kullanicilar tablosundaki aktif kullanıcıların ad ve e-posta alanlarını seçer. Sorgunun SQL olması, onun mutlaka MySQL üzerinde çalışacağı anlamına gelmez; kullanılan veri türleri, fonksiyonlar ve özel sözdizimi ürüne göre değişebilir.MySQL nedir?
MySQL; tabloları, kayıtları, bağlantıları, kullanıcı yetkilerini ve sorgu işlemlerini yöneten bir ilişkisel veritabanı yönetim sistemidir. Uygulamanız MySQL sunucusuna bağlanır, SQL sorguları gönderir ve sonuçları MySQL'den alır.
MySQL'in yanında PostgreSQL, Microsoft SQL Server, Oracle Database ve SQLite gibi başka SQL kullanan sistemler de vardır. Bu ürünlerin hepsi SQL sorguları çalıştırabilir; fakat kullandıkları yönetim araçları, veri türleri, fonksiyonlar, eklentiler ve bazı komutların yazımı farklıdır.
Farkı somut bir örnekle anlayalım
Bir web uygulamasında kullanıcı bilgilerini saklamak istediğinizi varsayalım. Yalnız size ait ayrı deneme veritabanında, bu tablo adı henüz yokken aşağıdaki küçük hazırlığı kullanabilirsiniz:
Kod:
CREATE TABLE sql_mysql_demo_kullanicilar (
id INT PRIMARY KEY,
ad VARCHAR(100) NOT NULL,
eposta VARCHAR(255) NOT NULL,
aktif BOOLEAN NOT NULL
) ENGINE=InnoDB;
INSERT INTO sql_mysql_demo_kullanicilar (id, ad, eposta, aktif)
VALUES (1, 'Ada', '[email protected]', TRUE);
SELECT ad, eposta
FROM sql_mysql_demo_kullanicilar
WHERE aktif = 1;
Beklenen sonuç Ada ve [email protected] değerleridir. MySQL’de BOOLEAN, TINYINT(1) eş adıdır; tek başına yalnız0/1 zorunluluğu getirmez. Buradaki
CREATE TABLE, INT, VARCHAR ve PRIMARY KEY SQL kavramlarıdır. Komutu kabul edip tabloyu oluşturan sunucu ise MySQL'dir. Aynı komut başka bir veritabanı sisteminde de büyük ölçüde çalışabilir; ancak veri türü, otomatik kimlik üretimi veya Boolean davranışı gibi ayrıntıları ayrıca kontrol etmek gerekir.Sadece SQL öğreniyorsanız sorgu mantığını, tablolar arası ilişkileri ve veri modellemeyi öğrenirsiniz. MySQL kullanıyorsanız bunlara ek olarak MySQL sunucusunun kurulumu, bağlantı ayarları, kullanıcı yetkileri, yedekleme ve MySQL'e özgü sözdizimini de bilmeniz gerekir.
Hangi durumda hangisini düşünmelisiniz?
Aşağıdaki ayrım, öğrenme ve proje seçimini kolaylaştırır:
| Konu | SQL | MySQL |
|---|---|---|
| Türü | Veritabanı sorgulama dili | Veritabanı yönetim sistemi |
| Görevi | Verinin nasıl isteneceğini veya değiştirileceğini belirtir | Veriyi saklar, sorguyu çalıştırır ve sonuç döndürür |
| Kapsamı | Birçok ilişkisel veritabanında kullanılan ortak yaklaşım | Belirli bir ürünün kuralları ve özellikleri |
| Örnek | SELECT, INSERT, UPDATE | MySQL sunucusu, istemcisi ve MySQL'e özgü işlevler |
Yeni bir web projesinde MySQL seçtiyseniz önce MySQL sunucusuna bağlantıyı kurun, ardından tablo yapısını oluşturun ve temel SQL sorgularınızı test edin. Sorgu başka bir veritabanına taşınacaksa MySQL'e özgü fonksiyonları ve veri türlerini ayrıca işaretleyin. Böylece taşınabilir SQL ile ürüne özel kodu birbirine karıştırmazsınız.
Sık yapılan hatalar
“SQL kurulur” demek: SQL tek başına kurulan bir sunucu değildir. MySQL gibi bir veritabanı sistemi kurulur ve SQL sorguları bu sistemde çalıştırılır.
Her SQL sorgusunun her yerde çalışacağını varsaymak: Temel
SELECT sorguları benzer olsa da tarih fonksiyonları, metin birleştirme, otomatik kimlik, sayfalama ve tablo değiştirme komutları farklılaşabilir.MySQL ile SQL Server'ı aynı ürün sanmak: MySQL bir üründür; SQL Server ise başka bir üründür. İkisi de SQL kullanır, ancak yönetim araçları ve ürünlere özgü sözdizimleri aynı değildir.
Sadece sorguyu öğrenip veri modelini ihmal etmek: Doğru tablo ilişkileri, anahtarlar ve veri türleri kurulmadığında çalışan sorgular bile hatalı veya bakımı zor bir uygulamaya dönüşebilir.