MariaDB Öğretici: Söz Dizimini Öğrenin, Örneklerle Komutlar
Nedir? MariaDB?
MariaDB bir çataldır MySQL veritabanı Yönetim sistemi. Orijinal geliştiricileri tarafından yaratılmıştır. Bu DBMS aracı, hem küçük hem de kurumsal görevler için veri işleme yetenekleri sunar.
MariaDB geliştirilmiş bir versiyonudur MySQL. Çok sayıda dahili güçlü özellik ve piyasada bulamayacağınız birçok kullanılabilirlik, güvenlik ve performans iyileştirmesi ile birlikte gelir. MySQL.
İşte özellikleri MariaDB:
- GPL, BSD veya LGPL lisansları altında çalışır.
- MariaDB popüler ve standart bir sorgulama dilini destekler.
- Diğer ilişkisel veritabanı yönetim sistemleriyle entegre edilebilen yüksek performanslı olanlar da dahil olmak üzere birçok depolama motoruyla birlikte gelir.
- Galera küme teknolojisini sağlar.
- MariaDB Web geliştirme için popüler bir dil olan PHP'yi destekler.
- MariaDB farklı işletim sistemlerinde çalışabilir ve çok sayıda programlama dilini destekler.
- MariaDB mevcut olmayan ek komutlarla birlikte gelir MySQL. MySQL DBMS'nin performansı üzerinde olumsuz etkisi olan özelliklere sahiptir. Bu tür özellikler değiştirildi MariaDB.
MariaDB vs MySQL
Aşağıda aralarındaki bazı önemli farklar verilmiştir. MariaDB vs MySQL
Parametre | MariaDB | MySQL |
---|---|---|
Depolama Motorları için Daha Fazla Seçenek | MariaDB bulamayacağınız 12 yeni depolama motoru var MySQL. | ile karşılaştırıldığında daha az depolama seçeneğine sahiptir. MariaDB. |
Hız İyileştirmeleri | MariaDB ile karşılaştırıldığında daha iyi bir hız gösterir MySQL. Hızı optimize etmek için çok sayıda özellik ile birlikte gelir. Bu tür özellikler türetilmiş görünümleri/tabloları, alt sorguyu, yürütme kontrolünü, disk erişimini ve optimize edici kontrolünü içerir. | MySQL karşılaştırıldığında daha yavaş bir hız sergilemektedir. MariaDB. Hız optimizasyonu için karma dizinler gibi yalnızca birkaç özelliğe dayanır. |
Daha hızlı önbellek/dizinler | Bellek depolama motoruyla MariaDB, bir INSERT ifadesi standartta olduğundan %24 oranında tamamlanabilir MySQL. | Bellek depolama motoru MySQL buna kıyasla daha yavaş MariaDB. |
Daha Büyük ve Daha Hızlı Bağlantı Havuzu | MariaDB daha hızlı çalışabilen ve 200,000'den fazla bağlantıyı destekleyen gelişmiş bir iş parçacığı havuzuyla birlikte gelir. | Tarafından sağlanan iş parçacığı havuzu MySQL Bir seferde 200,000'e kadar bağlantıyı destekleyemez. |
Geliştirilmiş Çoğaltma | In MariaDBçoğaltma daha güvenli ve daha hızlı yapılabilir. Güncellemeler ayrıca geleneksel güncellemelere kıyasla 2 kat daha hızlı yapılabilir. MySQL. | MySQL'nin topluluk sürümü, statik sayıda iş parçacığının bağlanmasına izin verir. MySQL'ın kurumsal planı iş parçacığı yetenekleriyle birlikte gelir. |
Yeni Özellikler/Uzantılar | MariaDB JSON, YOUR ve KILL ifadeleri dahil olmak üzere yeni özellikler ve uzantılarla birlikte gelir. | Yeni MariaDB özellikler burada sağlanmamıştır MySQL. |
Eksik Özellikler | MariaDB tarafından sağlanan bazı özelliklerden yoksundur. MySQL kurumsal sürüm. Bu sorunu çözmek için alternatif açık kaynaklı eklentiler sunar. Buradan, MariaDB kullanıcılar aynı işlevlerden yararlanabilirler MySQL Kurumsal Sürüm kullanıcıları. | Kurumsal Sürümü MySQL özel bir kod kullanır. Yalnızca kullanıcıları MySQL Enterprise Edition'ın buna erişimi var. |
Nasıl kurulur? MariaDB
Bağımsız Bir Uygulama Olarak Kurulum
kullanmak için MariaDB, bilgisayarınıza yüklemelisiniz.
Kurulum aşağıdaki adımları izleyerek yapılabilir:
) 1 Adım URL'nin Altını Aç
Kurulum dosyasını Linkten indirin https://downloads.mariadb.org/
) 2 Adım Double kurulumu başlatmak için dosyaya tıklayın
İndirme işlemi tamamlandıktan sonra Dosyayı Aç
) 3 Adım İleri düğmesine tıklayın
Açılan pencerede İleri butonuna tıklayın:
) 4 Adım Lisans sözleşmesini kabul edin
Daha sonra İleri düğmesine tıklayın:
) 5 Adım Klinik MariaDB sunucu
Yüklenecek özellikleri seçin ve İleri'ye tıklayın
) 6 Adım Şifreyi gir
Bir sonraki pencerede root kullanıcısının şifresini değiştirmeniz istenecektir.
- Şifreyi girin ve aynı şifreyi tekrar yazarak onaylayın. Uzak makinelerden erişime izin vermek istiyorsanız, gerekli onay kutusunu etkinleştirin.
- İşiniz bittiğinde İleri düğmesine tıklayın.
) 7 Adım Adı Girin ve Bağlantı Noktası Numarasını Seçin
Bir sonraki pencerede örnek için bir ad yazın, bağlantı noktası numarasını seçin ve gerekli boyutu ayarlayın. İleri düğmesini tıklayın:
) 8 Adım İleri'yi tıklayın
Bir sonraki pencerede İleri düğmesine tıklamanız yeterlidir.
) 9 Adım Yükle'ye tıklayın
Install butonuna tıklayarak kurulumu başlatın.
) 10 Adım Bir İlerleme Çubuğu Gösteriliyor
Kurulumun ilerleyişini gösteren bir ilerleme çubuğu gösterilecektir:
) 11 Adım Bitir Düğmesine tıklayın
Kurulum tamamlandıktan sonra Finish butonunu göreceksiniz. Pencereyi kapatmak için düğmeye tıklayın:
) 12 Adım Tebrikler!
Şimdi sahipsin MariaDB bilgisayarınıza yüklendi.
Komut İstemi ile Çalışmak
Şimdi sahipsin MariaDB Bilgisayarınıza yüklendiğinde, onu başlatmanın ve kullanmaya başlamanın zamanı geldi. Bu, aracılığıyla yapılabilir. MariaDB Komut istemi.
Aşağıda verilen adımları izleyin:
) 1 Adım Başlat'a tıklayın, Tüm Programlar'ı seçin ve ardından MariaDB...
) 2 Adım Bir seçin MariaDB Komut İstemi.
) 3 Adım The MariaDB komut istemi başlatılacaktır. Artık giriş yapma zamanı geldi. Root kullanıcı olarak ve kurulum esnasında belirlediğiniz şifre ile giriş yapmalısınız. MariaDBKomut istemine aşağıdaki komutu yazın:
MySQL -u root -p
) 4 Adım Şifreyi girin ve dönüş tuşuna basın. Aşağıda gösterildiği gibi oturum açmalısınız:
Artık giriş yaptınız MariaDB.
Veri tipleri
MariaDB Aşağıdaki veri türlerini destekler:
- Dize veri türleri
- Sayısal veri türleri
- Tarih/saat veri türleri
- Büyük nesne veri türleri
Dize Veri Türleri
Bunlar aşağıdakileri içerir:
Dize veri türü | Açıklama |
---|---|
karakter(boyut) | Boyut, saklanacak karakter sayısını belirtir. Maksimum 255 karakter saklar. Sabit uzunluklu dizeler. |
varchar(boyut) | Boyut, saklanacak karakter sayısını belirtir. Maksimum 255 karakter saklar. Değişken uzunluklu dizeler. |
yazı Boyutu) | Boyut, saklanacak karakter sayısını belirtir. Maksimum 255 karakter saklar. Sabit uzunluklu dizeler. |
ikili(boyut) | Boyut, saklanacak karakter sayısını belirtir. Maksimum 255 karakter saklar. Sabit boyutlu dizeler. |
Sayısal Veri Türleri
Aşağıdakileri içerir:
Sayısal Veri Türleri | Açıklama |
---|---|
bit | Tinint(1)'e eşdeğer çok küçük bir tamsayı değeri. İşaretli değerler -128 ile 127 arasında değişir. İşaretsiz değerler ise 0 ile 255 arasında değişir. |
int(m) | Standart bir tam sayı değeri. İmzalı değerler -2147483648 ile 2147483647 arasında değişir. İmzasız değerler 0 ile 4294967295 arasında değişir. |
kayan nokta(m, d) | Tek duyarlıklı kayan noktalı sayı. |
çift(m,g) | Çift hassasiyetli kayan noktalı sayı. |
yüzer(p) | Kayan noktalı bir sayı. |
Tarih/Saat Veri Türleri
Bunlar aşağıdakileri içerir:
Tarih/Saat Veri Türü | Açıklama |
---|---|
Tarih | 'yyyy-aa-gg' biçiminde görüntülenir. Değerler '1000-01-01' ile '9999-12-31' arasında değişir. |
Tarih saat | 'yyyy-aa-gg ss:dd:ss' biçiminde görüntülenir. Değerler '1000-01-01 00:00:00' ile '9999-12-31 23:59:59' arasında değişir. |
zaman damgası(m) | 'yyyy-aa-gg ss:dd:ss' biçiminde görüntülenir. Değerler '1970-01-01 00:00:01' utc ve '2038-01-19 03:14:07' utc arasında değişir. |
Zaman | 'ss:dd:ss' biçiminde görüntülenir. Değerler '-838:59:59' ile '838:59:59' arasında değişir. |
Büyük Nesne Veri Türleri (LOB)
Aşağıdakileri içerir:
Büyük nesne Veri türü | Açıklama |
---|---|
minikblob | Maksimum boyutu 255 bayttır. |
damla (boyut) | Maksimum boyut olarak 65,535 bayt alır. |
Orta blok | Maksimum boyutu 16,777,215 bayttır. |
uzun metin | Maksimum boyut olarak 4GB alır. |
Veritabanı ve Tablolar Oluşturun
Yeni bir veritabanı oluşturmak için MariaDByalnızca kök kullanıcıya ve yöneticilere verilen özel ayrıcalıklara sahip olmalısınız.
Yeni bir veritabanı oluşturmak için aşağıdaki sözdizimini kullanan CREATE DATABASE komutunu kullanmalısınız:
CREATE DATABASE DatabaseName;
Bu durumda bir veritabanı oluşturup ona Demo adını vermeniz gerekir.
Başlat MariaDB Komut istemine girin ve aşağıdaki komutu yazarak kök kullanıcı olarak oturum açın:
mysql -u root -p
Kök şifresini yazın ve dönüş tuşuna basın. Giriş yapacaksınız.
Şimdi, aşağıdaki komutu çalıştırın:
CREATE DATABASE Demo;
Daha sonra Demo adında bir veritabanı oluşturdunuz. Veritabanının başarılı bir şekilde oluşturulup oluşturulmadığını teyit etmeniz sizin için iyi olacaktır. Sadece aşağıdaki komutu çalıştırarak kullanılabilir veritabanlarının listesini göstermeniz gerekir:
SHOW DATABASES;
Yukarıdaki çıktı Demo veritabanının listenin bir parçası olduğunu, dolayısıyla veritabanının başarıyla oluşturulduğunu gösterir.
MariaDB Veritabanı Seçin
Belirli bir veritabanını kullanabilmeniz veya üzerinde çalışabilmeniz için, onu mevcut veritabanları listesinden seçmeniz gerekir. Veritabanını seçtikten sonra veritabanı içerisinde tablo oluşturma gibi görevleri gerçekleştirebilirsiniz.
Bir veritabanı seçmek için USE komutunu kullanmalısınız. Aşağıda verilen sözdizimini alır:
USE database_name;
Demo veritabanını kullanmanız gerekir. Aşağıdaki komutu çalıştırarak seçebilirsiniz:
USE Demo;
Yukarıdaki resim göstermektedir ki MariaDB komut istemi hiçbiri yerine seçilen veritabanının adını değiştirdi.
Artık devam edip Demo veritabanında tablolar oluşturabilirsiniz.
MariaDB – Tablo Oluştur
Tablo oluşturabilmeniz için bir veritabanı seçmiş olmanız gerekir. Tablo, CREATE TABLE deyimi kullanılarak oluşturulabilir. İşte komutun sözdizimi:
CREATE TABLE tableName (columnName columnType);
Sütunlardan birini birincil anahtar olarak ayarlayabilirsiniz. Bu sütun boş değerlere izin vermemelidir.
Demo veritabanı içerisinde Kitap ve Fiyat tabloları olmak üzere iki tablo oluşturacağız. Her tablonun iki sütunu olacaktır.
İki sütunlu, id ve name, Book tablosunu oluşturarak başlayalım. Aşağıdaki komutu çalıştırın:
CREATE TABLE Book( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id));
PRIMARY KEY kısıtlaması, id sütununu tablonun birincil anahtarı olarak ayarlamak için kullanılmıştır. AUTO_INCREMENT özelliği, tabloya eklenen her yeni kayıt için id sütununun değerlerini otomatik olarak 1 artıracaktır. Tüm sütunlar boş değerlere izin vermeyecektir.
Şimdi ikinci tablo olan Fiyat tablosunu oluşturun:
CREATE TABLE Price( id INT NOT NULL AUTO_INCREMENT, price float NOT NULL, PRIMARY KEY (id));
Kimlik sütunu tablonun birincil anahtarı olarak ayarlandı.
Tabloları Gösterme
Artık iki tabloyu oluşturduğunuza göre, tabloların başarılı bir şekilde oluşturulup oluşturulmadığını doğrulamanız sizin için iyi olacaktır. Aşağıdaki komutu çalıştırarak bir veritabanında bulunan tabloların listesini gösterebilirsiniz:
SHOW TABLES;
Yukarıdaki ekran görüntüsü iki tablonun Demo veritabanında başarıyla oluşturulduğunu göstermektedir.
Tablo Yapısını Gösterme
Belirli bir tablonun yapısını görmek için, genellikle DESC olarak kısaltılan DESCRIBE komutunu kullanabilirsiniz. Aşağıdaki sözdizimini alır:
DESC TableName;
Örneğin Book isimli tablonun yapısını görmek için aşağıdaki komutu çalıştırabilirsiniz;
DESC Book;
Tablonun iki sütunu vardır. Fiyat tablosunun yapısını görmek için aşağıdaki komutu çalıştırabilirsiniz:
DESC Price;
CRUD ve Cümleler
INSERT
Bir dosyaya veri eklemek için MariaDB tablosunda INSERT INTO deyimini kullanmalısınız. Bu komut aşağıda verilen sözdizimini alır:
INSERT INTO tableName (column_1, column_2, ... ) VALUES (value1, value2, ... ), (value1, value2, ... ), ...;
Yukarıdaki sözdizimi, eklemeniz gereken verilerin yanı sıra veri eklemek istediğiniz tablo sütunlarını da belirtmeniz gerektiğini gösterir.
Book tablosuna bir kayıt ekleyelim:
INSERT INTO book (id, name) VALUES(1, 'MariaDB Book');
Tabloya tek bir kayıt eklediniz. Fiyat tablosuna bir kayıt ekleyin:
INSERT INTO price (id, price) VALUES(1, 200);
Kayıt oluşturuldu.
SEÇİN
SELECT ifadesi bir veritabanı tablosunun içeriğini görüntülememize veya görmemize yardımcı olur. Örneğin, Book tablosunun içeriğini görmek için aşağıdaki komutu çalıştırmanız gerekir:
SELECT * from book;
Şimdi Fiyat tablosunun içeriğini görüntüleyin:
SELECT * from price;
Birden Çok Kayıt Ekleme
Bir dosyaya birden fazla kayıt eklememiz mümkündür. MariaDB masayı bir seferde çalıştırın. Bunu göstermek için, aşağıdaki örneği çalıştırın:
INSERT INTO book (id, name) VALUES (2,'MariaDB Book2'), (3,'MariaDB Book3'), (4,'MariaDB Book4'), (5,'MariaDB Book5');
Kayıtların başarıyla eklenip eklenmediğini kontrol etmek için tabloyu sorgulayabilirsiniz:
SELECT * FROM book;
Kayıtlar başarıyla eklendi. Bu örneği çalıştırarak Fiyat tablosuna birden çok kayıt ekleyin:
INSERT INTO price (id, price) VALUES (2, 250), (3, 220), (4, 190), (5, 300);
Kayıtların başarıyla oluşturulup oluşturulmadığını doğrulayalım:
SELECT * FROM price;
GÜNCELLEME
UPDATE komutu, tabloya önceden eklenmiş olan kayıtları değiştirmemize veya düzenlememize yardımcı olur. Güncellenecek kaydı belirtmek için bunu WHERE yan tümcesiyle birleştirebilirsiniz. İşte sözdizimi:
UPDATE tableName SET field=newValue, field2=newValue2,... [WHERE ...]
UPDATE komutu ayrıca SET, WHERE, LIMIT ve ORDER BY gibi cümlelerle de birleştirilebilir. Kısa süre içinde şunu göreceksiniz:
Aşağıdaki kayıtlara sahip Price adlı tabloyu ele alalım:
ID'si 1 olan kitabın fiyatını 200'den 250'ye değiştirelim:
UPDATE price SET price = 250 WHERE id = 1;
Komut başarıyla çalıştırıldı. Artık değişikliğin gerçekleşip gerçekleşmediğini görmek için tabloyu sorgulayabilirsiniz:
Yukarıdaki ekran görüntüsü değişikliğin uygulandığını gösteriyor. Aşağıdaki kayıtlara sahip Book tablosunu ele alalım:
Kitap adlı kitabın adını değiştirelim. MariaDB 1 kitap. Kitabın kimliğinin 1 olduğuna dikkat edin. Bunun için komut şöyledir:
UPDATE book SET name = “MariaDB Book1” WHERE id = 1;
Değişikliğin uygulanıp uygulanmadığını kontrol edin:
Yukarıdaki ekran görüntüsü değişikliğin başarıyla uygulandığını göstermektedir.
Yukarıdaki örneklerde aynı anda yalnızca bir sütunu değiştirdik. Ancak aynı anda birden fazla sütunu değiştirmemiz mümkündür. Bunu bir örnek kullanarak gösterelim.
Aşağıdaki verilerle Fiyat tablosunu kullanalım:
5 id'li kitabın hem id'sini hem de fiyatını değiştirelim. id'sini 6, fiyatını da 6 olarak değiştireceğiz. Aşağıdaki komutu çalıştırın:
UPDATE price SET id = 6, price = 280 WHERE id = 5;
Şimdi değişikliğin başarıyla yapılıp yapılmadığını kontrol etmek için tabloyu sorgulayın:
Değişiklik başarıyla gerçekleştirildi.
Sil
Bir tablodan bir veya daha fazla kaydı silmemiz gerektiğinde DELETE komutunu kullanırız. İşte komutun sözdizimi:
DELETE FROM tableName [WHERE condition(s)] [ORDER BY exp [ ASC | DESC ]] [LIMIT numberRows];
Aşağıdaki kayıtların bulunduğu Fiyat tablosunu ele alalım:
Tablodan son kaydı silmemiz gerekiyor. ID’si 6, fiyatı ise 280. Kaydı silelim:
DELETE FROM price WHERE id = 6;
Komut başarıyla çalıştırıldı. Silme işleminin başarılı olup olmadığını doğrulamak için tabloyu sorgulayalım:
Çıktı, kaydın başarıyla silindiğini gösterir.
Nerede
WHERE ifadesi, bir değişiklik yapmamız gereken tam konumu belirtmemize yardımcı olur. INSERT, SELECT, UPDATE ve DELETE gibi ifadelerle birlikte kullanılır. Aşağıdaki verilerle Price tablosunu ele alalım:
Diyelim ki fiyatın 250'den az olduğu kayıtları görmemiz gerekiyor. Aşağıdaki komutu çalıştırabiliriz:
SELECT * FROM price WHERE price < 250;
Fiyatın 250'nin altında olduğu tüm kayıtlar iade edildi.
WHERE ifadesi AND ifadesiyle birleştirilebilir. Fiyat tablosunda fiyatın 250'nin altında ve id'nin 3'ün üzerinde olduğu tüm kayıtları görmemiz gerektiğini varsayalım. Aşağıdaki komutu çalıştırabiliriz:
SELECT * FROM price WHERE id > 3 AND price < 250;
Yalnızca bir kayıt döndürüldü. Sebebi ise belirtilen tüm koşulları karşılaması yani id'nin 3'ün üzerinde ve fiyatın 250'nin altında olması gerekiyor. Bu koşullardan herhangi biri ihlal edilirse kayıt iade edilmeyecektir.
Cümle aynı zamanda OR komutuyla da birleştirilebilir. Önceki komutumuzdaki AND'i OR ile değiştirelim ve nasıl bir çıktı alacağımıza bakalım:
SELECT * FROM price WHERE id > 3 OR price < 250;
Artık 2 yerine 1 kayıt alıyoruz. Bunun nedeni, bir eleme kaydı için belirtilen koşullardan yalnızca birini karşılaması gerektiğidir.
Facebok sayfasını beğenin :
Bu cümle, tam eşleşmenin gerekli olduğu tablo verilerine erişirken veri modelini belirtmek için kullanılır. INSERT, UPDATE, SELECT ve DELETE ifadeleriyle birleştirilebilir.
Aradığınız veri modelini cümleye iletmelisiniz; bu, doğru ya da yanlış değerini döndürecektir. Cümleyle birlikte kullanılabilecek joker karakterler şunlardır:
- %: 0 veya daha fazla karakteri eşleştirmek için.
- _: tek bir karakteri eşleştirmek için.
LIKE yan tümcesinin sözdizimi şöyledir:
SELECT field_1, field_2,... FROM tableName1, tableName2,... WHERE fieldName LIKE condition;
% joker karakteriyle ifadenin nasıl kullanılacağını gösterelim. Aşağıdaki kayıtlarla Book tablosunu kullanalım:
İsmin M ile başladığı tüm kayıtları görmemiz gerekiyor. Aşağıdaki komutu çalıştırabiliriz:
SELECT name FROM book WHERE name LIKE 'M%';
Tüm kayıtlar döndürüldü çünkü adları M harfiyle başlıyor. 4 ile biten tüm adları görmek için aşağıdaki komutu çalıştırabilirsiniz:
SELECT name FROM book WHERE name LIKE '%4';
Koşulu karşılayan tek isim olduğu için yalnızca bir isim geri verildi.
Arama modelini joker karakterle de çevreleyebiliriz:
SELECT name FROM book WHERE name LIKE '%DB%';
% joker karakteri dışında, LIKE yan tümcesi _ joker karakteriyle birlikte kullanılabilir. Bu alt çizgi joker karakteridir ve yalnızca tek bir karakteri arayacaktır.
Aşağıdaki kayıtlarla Fiyat tablosuyla çalışalım:
Fiyatın 1_0 gibi olduğu kaydı kontrol edelim. Aşağıdaki komutu çalıştırıyoruz:
SELECT * FROM price WHERE price LIKE '1_0';
Fiyatın 190 olduğu rekoru döndürdü. Başka bir model de deneyebiliriz:
SELECT * FROM price WHERE price LIKE '_2_';
LIKE deyimini NOT operatörüyle birlikte kullanmamız mümkündür. Bu, belirtilen kalıba uymayan tüm kayıtları döndürecektir. Örneğin:
Fiyat tablosunu aşağıdaki kayıtlarla kullanalım:
Fiyatın 2 ile başlamadığı tüm kayıtları bulalım:
SELECT * FROM price WHERE price NOT LIKE '2%';
Yalnızca bir kayıt belirtilen kalıba uymuyor.
By Sipariş
Bu madde, kayıtlarımızı artan veya azalan düzende sıralamamıza yardımcı olur. Aşağıda gösterildiği gibi SELECT deyimiyle kullanıyoruz:
SELECT expression(s) FROM tables [WHERE condition(s)] ORDER BY exp [ ASC | DESC ];
Bu cümleyi ASC ya da DESC kısmını eklemeden de kullanmamız mümkün. Örneğin:
Fiyat tablosunu aşağıdaki kayıtlarla kullanacağız:
Aşağıdaki komutu tabloya karşı çalıştırın:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
Yukarıdaki komutta fiyata göre sipariş verdik. Kayıtlar fiyatlara göre artan sırada sıralanmıştır. Bu, sırayı belirtmediğimizde, sıralamanın varsayılan olarak artan sırada yapıldığı anlamına gelir.
Cümleyi DESC seçeneğiyle çalıştıralım:
SELECT * FROM price WHERE price LIKE '2%' ORDER BY price DESC;
Kayıtlar belirttiğimiz gibi fiyatlara göre azalan şekilde sıralanmıştır.
ORDER BY deyimini ASC niteliğiyle birlikte kullanalım:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price ASC;
Kayıtlar sıralanmıştır ancak fiyatlar artan sıradadır. Bu, ORDER BY yan tümcesini ASC veya DESC nitelikleri olmadan kullanmamıza benzer.
DISTINCT
Bu madde, bir tablodan kayıt seçerken kopyaları ortadan kaldırmamıza yardımcı olur. Bu, benzersiz kayıtlar elde etmemize yardımcı olduğu anlamına gelir. Sözdizimi aşağıda verilmiştir:
SELECT DISTINCT expression(s) FROM tableName [WHERE condition(s)];
Bunu göstermek için aşağıdaki verilerle Fiyat tablosunu kullanacağız:
Tablodan fiyat sütununu seçtiğimizde aşağıdaki sonucu elde ederiz:
SELECT price FROM Price;
Fiyatı 250 olan iki kaydımız var, kopya oluşturuyor. Yalnızca benzersiz kayıtlara ihtiyacımız var. Bunları aşağıda gösterildiği gibi DISTINCT yan tümcesini kullanarak filtreleyebiliriz:
SELECT DISTINCT price FROM Price;
Artık yukarıdaki çıktıda herhangi bir kopyamız yok.
Konum
Bir veritabanı tablosundan veri almak için kullanılan FROM cümlesi. Ayrıca masalara katılırken de yardımcı olabilir. İşte komutun sözdizimi:
SELECT columnNames FROM tableName;
Kitap tablosunun içeriğini görmek için aşağıdaki komutu çalıştırın:
SELECT * FROM price;
Cümle, bir veritabanı tablosundan yalnızca tek bir sütunu almanıza yardımcı olabilir. Örneğin:
SELECT price FROM Price;
Gelişmiş Görevler
Saklı yordam
Bir prosedür bir MariaDB Parametreleri aktarabileceğiniz program. Bir prosedür değerleri döndürmez. Bir prosedür oluşturmak için CREATE PROCEDURE komutunu kullanırız.
Bir prosedürün nasıl oluşturulacağını ve çağrılacağını göstermek için, kitap tablosundan ad sütununu seçmemize yardımcı olan myProcedure() adlı bir prosedür oluşturacağız. İşte prosedür:
DELIMITER $ CREATE PROCEDURE myProcedure() BEGIN SELECT name FROM book; END; ;
Prosedür oluşturuldu. SELECT deyimini basitçe prosedürün BEGIN ve END cümlelerinin içerisine ekledik.
Artık prosedürü aşağıda gösterildiği gibi adıyla çağırabiliriz:
CALL myProcedure();
Prosedür, çağrıldığında kitap tablosunun ad sütununu döndürür.
Bir parametre alan bir prosedür oluşturabiliriz. Örneğin, kitabın adını seçmemiz ve kitap kimliğini kullanarak filtrelememiz gerekir. Bunun için aşağıdaki prosedürü oluşturabiliriz:
DELIMITER $ CREATE PROCEDURE myProcedure2(book_id int) BEGIN SELECT name FROM book WHERE id = book_id; END; ;
Yukarıda myProcedure2() adında bir prosedür oluşturduk. Bu prosedür, adını görmemiz gereken kitabın kimliği olan kitap_id adlı bir tam sayı parametresini alır. ID’si 3 olan kitabın ismini görmek için işlemi şu şekilde çağırabiliriz:
CALL myProcedure2(3);
işlev
Prosedürlerden farklı olarak, parametrelere işlevlere aktarmamız gerekir ve bir işlev bir değer döndürmelidir. İçinde bir işlev oluşturmak için MariaDB, CREATE FUNCTION ifadesini kullanırız. İfade aşağıdaki sözdizimini alır:
CREATE [ DEFINER = { CURRENT-USER | username } ] FUNCTION function-name [(parameter datatype [, parameter datatype]) ] RETURNS datatype [LANGUAGE SQL | DETERMINISTIC | NOT DETERMINISTIC | {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} | SQL SECURITY {DEFINER | INVOKER} | COMMENT 'comment' BEGIN declaration-section executable-section END;
Yukarıdaki parametreler aşağıda açıklanmıştır:
Parametre | Açıklama |
---|---|
DEFINER cümlesi | Bu parametre isteğe bağlıdır. Eğer belirtmezseniz, tanımlayıcı fonksiyonu yaratan kullanıcı olacaktır. Farklı bir tanımlayıcı belirtilmesi gerekiyorsa, kullanıcı_adı'nın fonksiyonun tanımlayıcısı olacağı DEFINER deyimini ekleyin. |
fonksiyon adı | Bu fonksiyona atanacak isim MariaDB. |
parametre | Parametre(ler) fonksiyona aktarıldı. Fonksiyonun oluşturulması sırasında tüm parametreler şu şekilde ele alınır: GİRİŞ parametreleri (OUT/INOUT parametreleri yerine). |
return_datatype | Fonksiyonun dönüş değerinin veri türü. |
DİL SQL | Taşınabilirliği etkiler ancak işlevi etkilemez. |
DETERMİNİSTİK | Fonksiyon yalnızca bir dizi parametre verildiğinde tek bir sonuç döndürecektir. |
DETERMİNİST DEĞİL | Bir dizi parametre verildiğinde fonksiyonun farklı bir sonuç döndürmesi mümkündür. |
SQL İÇERİR | Bilgi verir MariaDB bu fonksiyonun SQL içerdiğini. Veritabanı bunun doğru olup olmadığını doğrulamayacaktır. |
SQL YOK | Bu madde kullanılmaz ve işleviniz üzerinde hiçbir etkisi yoktur. |
SQL VERİLERİNİ OKUYOR | Söyler MariaDB bu işlevin verileri okumak için SELECT ifadelerini kullanacağını ancak verileri değiştirmeyeceğini. |
SQL VERİLERİNİ DEĞİŞTİRİR | Söyler MariaDB bu işlevin INSERT, DELETE, UPDATE ve diğerlerini kullanacağını DDL SQL verilerini değiştirmek için ifadeler. |
beyan bölümü | Yerel değişkenlerin bildirilmesi gereken yer burasıdır. |
yürütülebilir bölüm | Fonksiyon kodu buraya eklenmelidir. |
İşte bir örnek MariaDB işlevi:
DELIMITER // CREATE FUNCTION sumFunc (x INT ) RETURNS INT DETERMINISTIC BEGIN DECLARE sum INT; SET sum = 0; label1: WHILE sum <= 3000 DO SET sum = sum + x; END WHILE label1; RETURN sum; END; // DELIMITER ;
Daha sonra yukarıdaki fonksiyonu şu şekilde çağırabiliriz:
select sumFunc(1000);
Komut aşağıdakini döndürecektir:
Bir fonksiyonla işiniz bittiğinde onu silmeniz sizin için iyi olacaktır. Bu kolaydır çünkü sadece aşağıdaki sözdizimini kullanan DROP FUNCTION ifadesini çağırmanız gerekir:
DROP FUNCTION function_name;
Örneğin myFunc isimli fonksiyonu bırakmak için aşağıdaki komutu çalıştırabiliriz:
DROP FUNCTION myFunc;
JOIN
Aynı anda birden fazla tablodan veri almanız gerektiğinde şunu kullanın: MariaDB KATILIN. Bu şu anlama gelir: JOIN iki veya daha fazla tabloda çalışır. Aşağıdaki üç tür JOINS desteklenir MariaDB:
- İÇ/BASİT BİRLEŞME
- SOL DIŞ BİRLEŞTİRME/SOL BİRLEŞTİRME
- SAĞ DIŞ BİRLEŞTİRME/SAĞ BİRLEŞTİRME
Bunları tek tek tartışalım:
INNER JOIN
İç birleştirme, birleştirme koşulunun doğru olduğu tablolardaki tüm satırları döndürür. Sözdizimi aşağıdaki gibidir:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Örneğin:
İki masamızı, kitabımızı ve kitabımızı kullanacağız.
Kitap tablosunda şu veriler yer alır:
Fiyat tablosunda şu veriler yer almaktadır:
Amaç, Kitap tablosundaki ad sütununu ve Fiyat tablosundaki fiyat sütununu tek bir tabloda birleştirmektir. Bu, aşağıda gösterildiği gibi bir iç birleştirmeyle mümkündür:
SELECT book.name, price.price FROM book INNER JOIN price ON book.id = price.id;
Komut aşağıdakini döndürür:
SOL DIŞ KATILMA
Bu birleştirme, sol taraftaki tablodaki tüm satırları ve yalnızca diğer tablodaki birleştirme koşulunun doğru olduğu satırları döndürür. Sözdizimi aşağıdaki gibidir:
SELECT columns FROM table-1 LEFT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
OUTER anahtar sözcüğü isteğe bağlı olduğundan köşeli parantez içine alınmıştır.
Örneğin:
SELECT book.name, price.price FROM book LEFT JOIN price ON book.id = price.id;
Komut aşağıdakini döndürür:
Yukarıdaki tablodaki son kaydın solda eşleşen değeri yoktur. Bu nedenle NULL ile değiştirildi.
SAĞ DIŞ BİRLEŞTİRME
Bu birleştirme, sağ taraftaki tablodaki tüm satırları ve yalnızca diğer tablodaki birleştirme koşulunun doğru olduğu satırları döndürür. Sözdizimi aşağıdaki gibidir:
SELECT columns FROM table-1 RIGHT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
OUTER anahtar sözcüğü isteğe bağlı olduğundan köşeli parantez içine alınmıştır.
Örneğin:
SELECT book.name, price.price FROM book RIGHT JOIN price ON book.id = price.id;
Komut aşağıdakini döndürür:
Bunun nedeni, sağdaki tablodaki tüm satırların diğer tablodaki satırlarla eşleştirilmiş olmasıdır. Eğer satırlardan bazıları eşleşmeseydi, ilk sütunda NULL'lar olurdu.