Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
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 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:

KonuSQLMySQL
TürüVeritabanı sorgulama diliVeritabanı yönetim sistemi
GöreviVerinin nasıl isteneceğini veya değiştirileceğini belirtirVeriyi saklar, sorguyu çalıştırır ve sonuç döndürür
KapsamıBirçok ilişkisel veritabanında kullanılan ortak yaklaşımBelirli bir ürünün kuralları ve özellikleri
ÖrnekSELECT, INSERT, UPDATEMySQL 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.

Sık sorulan sorular​

phpMyAdmin kurunca MySQL sunucusu da kurulmuş olur mu?​

phpMyAdmin bir yönetim arayüzüdür; ayrı MySQL/MariaDB hizmetine bağlanır. Arayüzün açılması veritabanı sunucusunun doğru kurulduğunu veya bütün hesap izinlerinin hazır olduğunu kanıtlamaz. Sunucu, istemci ve arayüzün rollerini ayırın.

mysql komutunun bulunması sunucunun çalıştığını gösterir mi?​

Hayır. mysql istemci programıdır; yerel veya uzak sunucuya bağlanabilir. İstemcinin kurulması, yerel mysqld hizmetinin de kurulu ve çalışır olması anlamına gelmez. Bağlantı hedefini ve hizmet durumunu ayrı kontrol edin.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.