MariaDB Klavuz

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:

Kurulumu MariaDB

) 4 Adฤฑm Lisans sรถzleลŸmesini kabul edin
Daha sonra ฤฐleri dรผฤŸmesine tฤฑklayฤฑn:

Kurulumu MariaDB

) 5 Adฤฑm Klinik MariaDB sunucu
Yรผklenecek รถzellikleri seรงin ve ฤฐleri'ye tฤฑklayฤฑn

Kurulumu MariaDB

) 6 Adฤฑm ลžifreyi gir
Bir sonraki pencerede root kullanฤฑcฤฑsฤฑnฤฑn ลŸifresini deฤŸiลŸtirmeniz istenecektir.

  1. ลžifreyi girin ve aynฤฑ ลŸifreyi tekrar yazarak onaylayฤฑn. Uzak makinelerden eriลŸime izin vermek istiyorsanฤฑz, gerekli onay kutusunu etkinleลŸtirin.
  2. ฤฐลŸiniz bittiฤŸinde ฤฐleri dรผฤŸmesine tฤฑklayฤฑn.

Kurulumu MariaDB

) 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:

Kurulumu MariaDB

) 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.

Kurulumu MariaDB

) 10 Adฤฑm Bir ฤฐlerleme ร‡ubuฤŸu Gรถsteriliyor
Kurulumun ilerleyiลŸini gรถsteren bir ilerleme รงubuฤŸu gรถsterilecektir:

Kurulumu MariaDB

) 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:

Kurulumu MariaDB

) 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.

MariaDB komut ฤฐstemi

) 3 Adฤฑm MKS 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:

MariaDB komut ฤฐstemi

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;

Veritabanฤฑ ve Tablolar OluลŸturun MariaDB

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;

Veritabanฤฑ ve Tablolar OluลŸturun MariaDB

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;

Veritabanฤฑ ve Tablolar OluลŸturun MariaDB

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));  

Veritabanฤฑ ve Tablolar OluลŸturun MariaDB

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));  

Veritabanฤฑ ve Tablolar OluลŸturun MariaDB

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;

Veritabanฤฑ ve Tablolar OluลŸturun MariaDB

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;

Veritabanฤฑ ve Tablolar OluลŸturun MariaDB

Tablonun iki sรผtunu vardฤฑr. Fiyat tablosunun yapฤฑsฤฑnฤฑ gรถrmek iรงin aลŸaฤŸฤฑdaki komutu รงalฤฑลŸtฤฑrabilirsiniz:

DESC Price;

Veritabanฤฑ ve Tablolar OluลŸturun MariaDB

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');  

CRUD ve Maddeler-INSERT

Tabloya tek bir kayฤฑt eklediniz. Fiyat tablosuna bir kayฤฑt ekleyin:

INSERT INTO price
(id, price)  
VALUES(1, 200);  

CRUD ve Maddeler-INSERT

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;

CRUD ve Maddeler-INSERT

ลžimdi Fiyat tablosunun iรงeriฤŸini gรถrรผntรผleyin:

SELECT * from price;

CRUD ve Maddeler-INSERT

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');

Birden ร‡ok Kayฤฑt Ekleme

Kayฤฑtlarฤฑn baลŸarฤฑyla eklenip eklenmediฤŸini kontrol etmek iรงin tabloyu sorgulayabilirsiniz:

SELECT * FROM book;

Birden ร‡ok Kayฤฑt Ekleme

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); 

Birden ร‡ok Kayฤฑt Ekleme

Kayฤฑtlarฤฑn baลŸarฤฑyla oluลŸturulup oluลŸturulmadฤฑฤŸฤฑnฤฑ doฤŸrulayalฤฑm:

SELECT * FROM price;

Birden ร‡ok Kayฤฑt Ekleme

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:

CRUD ve Cรผmleler-GรœNCELLEME

ID'si 1 olan kitabฤฑn fiyatฤฑnฤฑ 200'den 250'ye deฤŸiลŸtirelim:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD ve Cรผmleler-GรœNCELLEME

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:

CRUD ve Cรผmleler-GรœNCELLEME

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:

CRUD ve Cรผmleler-GรœNCELLEME

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;

CRUD ve Cรผmleler-GรœNCELLEME

DeฤŸiลŸikliฤŸin uygulanฤฑp uygulanmadฤฑฤŸฤฑnฤฑ kontrol edin:

CRUD ve Cรผmleler-GรœNCELLEME

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:

CRUD ve Cรผmleler-GรœNCELLEME

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;

  CRUD ve Cรผmleler-GรœNCELLEME

ลžimdi deฤŸiลŸikliฤŸin baลŸarฤฑyla yapฤฑlฤฑp yapฤฑlmadฤฑฤŸฤฑnฤฑ kontrol etmek iรงin tabloyu sorgulayฤฑn:

CRUD ve Cรผmleler-GรœNCELLEME

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:

CRUD ve Cรผmleler-SฤฐL

Tablodan son kaydฤฑ silmemiz gerekiyor. IDโ€™si 6, fiyatฤฑ ise 280. Kaydฤฑ silelim:

DELETE FROM price
WHERE id = 6;   

CRUD ve Cรผmleler-SฤฐL

Komut baลŸarฤฑyla รงalฤฑลŸtฤฑrฤฑldฤฑ. Silme iลŸleminin baลŸarฤฑlฤฑ olup olmadฤฑฤŸฤฑnฤฑ doฤŸrulamak iรงin tabloyu sorgulayalฤฑm:

CRUD ve Cรผmleler-SฤฐL

ร‡ฤฑ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:

CRUD ve Maddeler-Nerede

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;  

CRUD ve Maddeler-Nerede

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;   

CRUD ve Maddeler-Nerede

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;   

CRUD ve Maddeler-Nerede

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:

CRUD ve Maddeler-Nerede

ฤฐ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%';  

 CRUD ve Maddeler-Nerede

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';  

CRUD ve Maddeler-Nerede

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%';  

CRUD ve Maddeler-Nerede

% 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:

CRUD ve Maddeler-Nerede

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';  

CRUD ve Maddeler-Nerede

Fiyatฤฑn 190 olduฤŸu rekoru dรถndรผrdรผ. BaลŸka bir model de deneyebiliriz:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD ve Maddeler-Nerede

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:

CRUD ve Maddeler-Nerede

Fiyatฤฑn 2 ile baลŸlamadฤฑฤŸฤฑ tรผm kayฤฑtlarฤฑ bulalฤฑm:

SELECT *  
FROM price  
WHERE price NOT LIKE '2%';  

CRUD ve Maddeler-Nerede

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:

CRUD ve Maddeler-Nerede

AลŸaฤŸฤฑdaki komutu tabloya karลŸฤฑ รงalฤฑลŸtฤฑrฤฑn:

SELECT * FROM price 
WHERE price LIKE '2%.'
ORDER BY price;   

CRUD ve Maddeler-Nerede

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;   

 CRUD ve Maddeler-Nerede

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;   

 CRUD ve Maddeler-Nerede

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:

CRUD ve Maddeler-DISTINCT

Tablodan fiyat sรผtununu seรงtiฤŸimizde aลŸaฤŸฤฑdaki sonucu elde ederiz:

SELECT price FROM Price;

CRUD ve Maddeler-DISTINCT

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;

CRUD ve Maddeler-DISTINCT

Artฤฑk yukarฤฑdaki รงฤฑktฤฑda herhangi bir kopyamฤฑz yok.

BaลŸlangฤฑรง

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;

CRUD ve Maddeler-Gรถnderen

Cรผmle, bir veritabanฤฑ tablosundan yalnฤฑzca tek bir sรผtunu almanฤฑza yardฤฑmcฤฑ olabilir. ร–rneฤŸin:

SELECT price FROM Price;

CRUD ve Maddeler-Gรถnderen

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;
;

GeliลŸmiลŸ Gรถrevler-Saklฤฑ Yordam

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();

GeliลŸmiลŸ Gรถrevler-Saklฤฑ Yordam

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;
;

GeliลŸmiลŸ Gรถrevler-Saklฤฑ Yordam

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);

GeliลŸmiลŸ Gรถrevler-Saklฤฑ Yordam

ฤฐลŸ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 ;

ฤฐลŸlev MariaDB

Daha sonra yukarฤฑdaki fonksiyonu ลŸu ลŸekilde รงaฤŸฤฑrabiliriz:

select sumFunc(1000);

Komut aลŸaฤŸฤฑdakini dรถndรผrecektir:

ฤฐลŸlev MariaDB

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:

INNER JOIN

Fiyat tablosunda ลŸu veriler yer almaktadฤฑr:

INNER JOIN

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:

INNER JOIN

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:

SOL DIลž KATILMA

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:

SAฤž DIลž BฤฐRLEลžTฤฐRME

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.

Bu yazฤฑyฤฑ ลŸu ลŸekilde รถzetleyin: