2.1 SQL'e Giriş

Bir veritabanınız (DB) varsa ve içinde bazı veriler içeren bir tablo varsa, en yaygın görev bu tabloda belirli verileri bulmaktır. SQL'in 40 yıl önce icat edildiği şey buydu.

SQL, Yapılandırılmış Sorgu Dili anlamına gelir .

En basit SQL sorgusu şöyle görünür:

SELECT column1, column2, … columnN FROM table

Diyelim ki startup'ınızın çalışanlarının listesini içeren bir çalışan tablonuz var:

İD isim meslek maaş yaş katılmak_tarihi
1 İvanov İvan Programcı 100.000 25 2012-06-30
2 Petrov Petr Programcı 80.000 23 2013-08-12
3 İvanov Sergey test cihazı 40.000 otuz 2014-01-01
4 Rabinovich Moisha Müdür 200.000 35 2015-05-12
5 Kirienko Anastasia Ofis Yöneticisi 40.000 25 2015-10-10
6 Vaska kedi 1.000 3 2018-01-01

employee namesBunları da gösterecek bir sorgu yazmak istiyorsanız salaries, o zaman bir sorgu yazmanız gerekir:

SELECT name, salary FROM employee

Sorgu sonucunu alacaksınız:

isim maaş
İvanov İvan 100.000
Petrov Petr 80.000
İvanov Sergey 40.000
Rabinovich Moisha 200.000
Kirienko Anastasia 40.000
Vaska 1.000

Tablonuzun tüm sütunlarını görüntülemek istiyorsanız , tüm sütunların adlarını listelemek yerine yıldız işareti yazabilirsiniz. Örnek:

SELECT * FROM employee

Sorgu sonucunu alacaksınız:

İD isim meslek maaş yaş katılmak_tarihi
1 İvanov İvan Programcı 100.000 25 2012-06-30
2 Petrov Petr Programcı 80.000 23 2013-08-12
3 İvanov Sergey test cihazı 40.000 otuz 2014-01-01
4 Rabinovich Moisha Müdür 200.000 35 2015-05-12
5 Kirienko Anastasia Ofis Yöneticisi 40.000 25 2015-10-10
6 Vaska kedi 1.000 3 2018-01-01

2.2 SQL sorgusunun gelişmiş görünümü

SQL dili mümkün olduğunca kullanıcı dostu olarak tasarlanmıştır.

İlk olarak, istek metninin durumu önemli değildir . SELECT, Select veya select yazabilirsiniz ve her şey çalışacaktır. İkinci olarak, satır sonları hiçbir şekilde dikkate alınmaz . DBMS yine de sorguyu tek bir uzun dizeye dönüştürecek, böylece onu istediğiniz gibi yazabilirsiniz.

Muhtemelen zaten tahmin ettiğiniz gibi, SELECT ve FROM anahtar sözcükleri sınırlı değildir. Aksi takdirde, SQL hakkında bu kadar çok konuşma olmazdı. SQL sorgusunun genişletilmiş görünümü şöyle görünür:

SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting

Bir anahtar kelime yardımıyla, WHEREseçilen satırlar için bir koşul / filtre belirleyebilirsiniz.

Örnek 1 . "Programcı" mesleğine sahip çalışanları seçecek bir sorgu yazalım:

SELECT * FROM employee WHERE occupation = 'Programmer'

Ve aşağıdaki sorgu sonucunu alıyoruz:

İD isim meslek maaş yaş katılmak_tarihi
1 İvanov İvan Programcı 100.000 25 2012-06-30
2 Petrov Petr Programcı 80.000 23 2013-08-12

Görüldüğü üzere sorgu yürütme sonucunda sadece çalışanın mesleğinin “Programcı” olarak adlandırıldığı satırlar çıkmaktadır.

Anahtar kelimeler GROUP BY, ORDER BYve HAVINGsonraki derslerde ele alacağız. Ve burada NEREDE kelimesiyle birkaç örnek daha analiz edeceğiz.

Örnek 2 . Şimdi bize 100 binden fazla maaşı olan tüm çalışanları gösterecek bir sorgu yazalım. İşte nasıl görüneceği:

SELECT * FROM employee WHERE salary > 100000

Aşağıdaki sorgu sonucunu alıyoruz:

İD isim meslek maaş yaş katılmak_tarihi
4 Rabinovich Moisha Müdür 200.000 35 2015-05-12

Örnek 3 . Şimdi daha zor bir şey deneyelim. 2015 yılında işe alınan tüm çalışanlar nasıl görüntülenir? Ve bunun gibi:

SELECT * FROM employee WHERE YEAR(join_date) = 2015

Aşağıdaki sorgu sonucunu alıyoruz:

İD isim meslek maaş yaş katılmak_tarihi
4 Rabinovich Moisha Müdür 200.000 35 2015-05-12
5 Kirienko Anastasia Ofis Yöneticisi 40.000 25 2015-10-10

Bu sorguda, YEAR()bir tarihten yılı almamızı ve ardından tarihin yılını 2015 sayısıyla karşılaştırmamızı sağlayan özel bir işlev kullanıyoruz.

2.3 SQL sorgularında yorumlar

Bir diğer önemli nokta da SQL sorgularındaki yorumlardır. Yorumlar çok yararlı bir şeydir. Öncelikle içlerine açıklamaları ve/veya fikirlerinizi yazabilirsiniz. İkincisi, yorumların yardımıyla bozuk kodu devre dışı bırakabilirsiniz. Veya kodun eski sürümünü yorumlayın.

SQL, Java gibi, tek satırlı ve çok satırlı yorumlara sahiptir. Ayrıca, çok satırlı bir yorum tıpkı Java'daki gibi görünür. Görünüşü:


/*
 	comment text
 	comment text
 	comment text
*/
        

Elbette tek satırda da kullanılabilir. Örnek:


/*comment text*/
        

Java "//" benzeri "satırın başından sonuna kadar" bir yorum türü de vardır. Yalnızca SQL'de iki eksi karakter ve bir boşluk yazmanız gerekir . Böyle bir yorumun genel görünümü:

-- comment text

Örnek:


        SELECT * FROM employee -- WHERE YEAR(join_date) = 2015 
        

Yukarıdaki örnekte, sorgu koşulunu yorumladık, bu nedenle MySQL yalnızca sorguyu yürütür:

SELECT * FROM employee

2.4 SQL telaffuzu

Yabancı müşterilerle iletişim kurarsanız veya bir Amerikan şirketi için çevrimiçi bir görüşmeden geçerseniz, devam diliyle ilgili deneyiminiz sorulabilir . Dürüstçe onunla çalışmadığınızı söyleyeceksiniz ve hemen mülakatta başarısız olacaksınız.

Ve mesele şu ki, SQL dilinin adı SEQUEL idi ve bu bir devam filmi (ˈsēkwəl) gibi telaffuz ediliyor, bu nedenle ABD'de ve diğer İngilizce kaynaklarda çok sık olarak "escuel" değil, "sequel" duyacaksınız. SQL yazılır ve devamı okunur. İşte böyle bir tarihsel paradoks.