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 names
Bunları 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, WHERE
seç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 BY
ve HAVING
sonraki 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.