SQL istifadə edərək məlumatları seçmək üçün sadə sorğular. SQL sorğu dili SQL sorğu nümunələri seçin




SADƏ MƏLUMAT NÜMUNƏLƏRİ

Fərz edək ki, bir və ya bir neçə cədvəldən ibarət relyasiya verilənlər bazası yaradılıb və siz artıq ona qoşulmusunuz. Bu halda tipik praktiki tapşırıq tələb olunan məlumatları əldə etmək (çıxarmaq) olur. Məsələn, siz sadəcə verilənlər bazasından və ya onun bəzi sahələrindən cədvəlin bütün məzmununa baxmaq istəyə bilərsiniz. Bu halda, siz bütün qeydləri deyil, yalnız verilmiş şərtlərə cavab verənləri əldə etmək istəyə bilərsiniz. Bununla belə, daha tez-tez bir anda bir neçə cədvəldən məlumat çıxarmaq üçün daha maraqlı və mürəkkəb bir vəzifə var. İki və ya daha çox cədvəldən alınan məlumatlar nəzərdən keçirmək, təhlil etmək və ya sonrakı emal üçün təqdim etmək üçün bir cədvəldə birləşdirilməlidir. SQL dili bunun üçün geniş imkanlar verir ki, biz bunu nəzərdən keçirəcəyik.

SQL ifadəsinin (SQL ifadəsinin) icrası nəticəsində ya tələb olunan məlumatları ehtiva edən, ya da sorğuya uyğun gələn məlumat tapılmadıqda boş olan cədvəl yaradılır. Nəticə cədvəli də adlandırılan bu cədvəl yalnız verilənlər bazası ilə sessiya zamanı mövcuddur və verilənlər bazasına daxil olan cədvəllərin sayına əlavə edilmir. Başqa sözlə, o, orijinal verilənlər bazası cədvəlləri kimi kompüterin sərt diskində saxlanmır və buna görə də virtual adlanır.

Çoxsaylı cədvəllərdən verilənlərin seçilməsi, onların işlənməsi və alt sorğulardan (yekun nəticəni əldə etmək üçün aralıq kimi tələb olunan sorğular) istifadə etmək mürəkkəb sorğuların mövzusudur. Burada qeydlərin seçilməsi, qruplaşdırılması və çeşidlənməsi üçün nisbətən sadə şərtlər altında bir cədvəldən verilənlərin seçilməsi probleminə diqqət yetirəcəyik. Bununla belə, verilənləri seçmək üçün sadə sorğularda istifadə olunan SQL ifadələri yalnız əldə etməyə deyil, həm də məlumatların dəyişdirilməsinə yönəlmiş mürəkkəb sorğularda da istifadə olunur. Sadə başlayın ki, kompleksi sonra başa düşmək asan olsun. Bu fəsildəki material SQL-in əsas mövzularını əhatə edir, baxmayaraq ki, bir çox verilənlər bazası istifadəçisi onlarla məhdudlaşa bilər. Sonuncu olduqca mümkündür, çünki bu fəsildəki material özlüyündə olduqca praktikdir.

Mövcud verilənlər bazası cədvəllərindən verilənləri seçmək üçün nəzərdə tutulmuş bütün SQL ifadələri (operator) SELECT (seç) açar sözü ilə başlayır. Sorğunu dəqiqləşdirmək üçün əlavə operatorlardan istifadə olunur, məsələn, FROM (from), WHERE (harada) və s. data. Bu cədvəl o mənada virtualdır ki, o, yalnız sorğunun nəticələrini təmsil edir və verilənlər bazasına aid deyil. SQL mövcud verilənlər bazasını dəyişdirməyə imkan verir - ona yeni cədvəllər yaradıb əlavə etmək, həmçinin mövcud olanları dəyişdirmək və silmək.

Məlumatların alınması üçün əsas SQL ifadəsi

Verilənlər bazası cədvəlindən tələb olunan qeydləri seçmək üçün ən azı bu cədvəlin sütunlarını və adını göstərməlisiniz. Bu tələbi aşağıdakı kimi formalaşdırmaq təbii olardı:

Cədvəldən belə-belə sütunları SEÇİN;

Əlbəttə ki, cədvəldəki bütün qeydləri seçmək lazım deyil, yalnız müəyyən bir şərtə cavab verənləri seçməlisiniz. Praktikada məhz belə olur. Hələlik qeydlərin seçilməsi üçün şərtlərin formalaşması məsələsini bir kənara qoyaq və bütün qeydlərin verilmiş cədvəldən seçilməsinə diqqət yetirək. Verilənlər bazasına SQL sorğusu sorğuda göstəriləndən alınan cədvəllə nəticələnir, lakin ondan yalnız müəyyən edilmiş sütunları ehtiva etməsi ilə fərqlənir, belə görünür:

SEÇİN siyahıSütunlar FROM cədvəllərin siyahısı;

Verilənlərin seçimini təyin edən SQL ifadəsindəki SELECT (seç) və FROM (from) ifadələri məcburidir, yəni onlardan heç biri buraxıla bilməz. Yalnız bu ifadələri ehtiva edən SQL ifadəsi verilənlərin əldə edilməsi üçün verilənlər bazası sorğusunu təyin edən əsas ifadədir. Bu sorğunun yerinə yetirilməsi nəticəsində mənbə cədvəlinin göstərilən sütunları və bütün qeydlərini ehtiva edən virtual cədvəl yaradılır.

SELECT ifadəsi FROM bəndində göstərilən əlaqəni SELECT bəndində göstərilən verilmiş atributlar (sütunlar) dəstinə layihələndirir.

FROM bəndi verilənlərin seçilməsi üçün verilənlər bazası cədvəli adlarının siyahısını müəyyən edir. Ən sadə halda cədvəllər siyahısı yalnız bir cədvəl adını ehtiva edir. Bir neçə cədvəl varsa, siyahıda onların adları vergüllə ayrılır. FROM bəndində birdən çox cədvəl göstərilibsə, nəticədə göstərilən cədvəllərin Dekart hasilindən alınır. Bəzən bu xüsusi məqsədlər üçün istifadə olunur, lakin çox vaxt FROM bəndində yalnız bir cədvəl göstərilir.

Sütunların siyahısı FROM bəndində göstərilən cədvəldə müəyyən edilmiş sütun adlarının vergüllə ayrılmış siyahısıdır. Əlbəttə ki, bütün və ya yalnız bəzi sütunları təyin edə bilərsiniz. Cədvəlin bütün sütunlarını əldə etmək istəyirsinizsə, o zaman sütunlar siyahısı əvəzinə (*) simvolunu göstərmək kifayətdir. Əgər FROM bəndində birdən çox cədvəl göstərilibsə, o zaman SELECT bəndindəki sütun adları onların hansı cədvələ istinad etdiyini göstərmək üçün prefiks edilməlidir. Prefiks sütun adından nöqtə ilə ayrılır. Məsələn, Müştərilər.Ünvan ifadəsi Müştərilər cədvəlindəki Ünvan sütunu deməkdir.

Bir cədvəldən bütün məlumatları (bütün sütunlar və bütün qeydlər) qaytaran əhəmiyyətsiz sorğu belə tərtib edilmişdir:

SEÇİN * FROM ad Cədvəli ;

Əsas SQL ifadəsi sorğunu dəqiqləşdirən digər operatorlarla əlavə edilə bilər. Çox vaxt WHERE bəndindən (harada) istifadə olunur, onun köməyi ilə qeydlərin (cədvəl sətirlərinin) seçilməsi şərtini təyin edə bilərsiniz. Beləliklə, əgər SELECT bəndi FROM bəndində göstərilən cədvəlin sütunlarını təyin edirsə, WHERE bəndi həmin cədvəldəki qeydləri (sətirləri) təyin edir. Müəyyən bir cədvəldən məlumat almaq üçün sorğu təyin edən ifadə aşağıdakı formaya malikdir:

SEÇİN * FROM ad Cədvəli HARADA axtarış şəraiti ;

WHERE bəndində göstərilən şərt iki Boolean qiymətindən birini qəbul edir: doğru (TRUE) və ya yanlış (YANLIŞ). Başqa sözlə, bu bir boolean ifadəsidir. Sorğunu emal edərkən cədvəldəki hər bir qeyd üçün şərt yoxlanılır. Əgər verilmiş qeyd üçün doğrudursa, o zaman seçilir və nəticə cədvəlində təqdim olunacaq. Əks halda, qeyd seçilmir və nəticə cədvəlinə daxil edilmir. SQL ifadəsində WHERE bəndi göstərilməyibsə, nəticədə ortaya çıxan cədvəl FROM bəndində göstərilən cədvəldəki bütün qeydləri ehtiva edəcəkdir. Beləliklə, WHERE bəndi qeyd filtrini təyin edir. Filtr nəyisə nəticə cədvəlinə daxil edir və nəyisə rədd edir.

Filtr- verilənlər bazası ilə işləmək sahəsində əsas anlayışlardan biri. Ədəbiyyatda bəzən onun müxtəlif yozumlarına rast gəlmək olar. Beləliklə, "qeydlər filtri" "qeydləri əldə etmək" və ya əksinə - "qeydləri rədd etmək" mənasını verə bilər. Burada "süzgəc", "süzgəcdən keçmək" və ya "süzgəc tətbiq etmək" terminləri həmişə "süzgəc şərtini təmin edən qeydləri seçmək" mənasını verir.

Siz sütunlar siyahısından əvvəl SELECT ifadəsindən dərhal sonra açar sözlərdən istifadə edə bilərsiniz HAMISI(hamısı) və FƏRQLİ Nəticə cədvəlində hansı qeydlərin təqdim ediləcəyini müəyyən edən (fərqli). Bu açar sözlərdən istifadə edilmədikdə, bütün qeydlərin seçilməli olduğu güman edilir ki, bu da ALL açar sözünün istifadəsi ilə eynidir. DISTINCT istifadə edildikdə, nəticə cədvəlində yalnız unikal qeydlər təqdim olunur. Bu halda, mənbə cədvəlində bir neçə eyni qeyd varsa, onlardan yalnız birincisi seçilir.

Qeyd

Microsoft Access-də ALL və DISTINCT açar sözlərindən əlavə, SELECT-dən sonra açar sözdən istifadə edə bilərsiniz. TORəlavə seçimlərlə. İfadə TOP n yalnız verilmiş sorğu şərtini təmin edən ilk n qeydin məlumat seçiminə daxil olmasını tələb edir. Bu, WHERE bəndində tərtib edilmiş istənilən qeydlər üçün axtarış şərtinin məhdudlaşdırılmasıdır. Mənbə cədvəli çox böyükdürsə, DISTINCT cavabı sürətləndirə bilər.

Access-də siz ifadədən də istifadə edə bilərsiniz TOR n FAİZ, n-nin qeydlərin ümumi sayının faizi kimi ifadə olunduğunu göstərmək üçün. Belə bir ifadənin istifadəsinin axtarışı sürətləndirməyə deyil, lazımsız məlumatlardan təmizlənmiş cədvəl əldə etməyə yönəldiyini başa düşmək çətin deyil.

Nəticə cədvəlindəki sütun başlıqları sizin ixtiyarınızda deyilənləri təyin etməklə yenidən müəyyən edilə bilər. ləqəblər . Bunu etmək üçün müvafiq sütundan sonra sütunlar siyahısında forma ifadəsini yazın: AS sütun_başlığı

Misal üçün:

ClientName-i Müştəri AS SEÇİN, Ünvanı Müştərilərdən Ünvan AS;

FROM açar sözündən sonra hər bir cədvəl üçün ləqəblər də göstərilə bilər. Bunun üçün müvafiq cədvəlin adından dərhal sonra boşluqla ayrılmış ləqəbi göstərmək kifayətdir. Adlarından daha qısa olan cədvəl ləqəbləri mürəkkəb sorğularda faydalıdır. Misal üçün:

T1 Müştərilərindən, T2 Kontaktlardan T1.Ad, T2.Ünvanı SEÇİN;

Sorğu Təkmilləşdirmələri

Məlumatların alınması üçün əsas SQL ifadəsi:

Cədvəllər siyahısından Sütunların siyahısını SEÇİN;

Belə bir sorğu FROM bəndində göstəriləndən alınan cədvəli yalnız SELECT ifadəsində müəyyən edilmiş sütunları seçməklə qaytarır. Mənbə cədvəlinin tələb olunan qeydlərini (sətirlərini) seçmək üçün WHERE açar sözündən (operator) sonrakı ifadədən istifadə olunur. WHERE bəndi SQL ifadəsində tələb olunmasa da, ən çox istifadə edilən ifadədir. Məhz populyarlığına görə onu SQL ifadəsinin əsas komponenti hesab etmək olar. SQL ifadələrində WHERE ilə yanaşı, sorğunun dəqiqləşdirilməsi üçün digər operatorlar da istifadə olunur.

Məlumat seçimi üçün sorğunun dəqiqləşdirilməsi üçün bir sıra əlavə operatorlardan istifadə olunur:

· HARADA(burada) - nəticə cədvəlinə daxil edilməli olan qeydləri göstərir (qeyd filtri);

· GROUP BY(qrupla) - qeydləri müəyyən sütunların dəyərlərinə görə qruplaşdırır;

· OLMAQ(sahip, tabedir) - nəticə cədvəlinə daxil edilməli olan qeydlər qruplarını göstərir (qrup filtri);

· SİFARİŞ(sort by) - qeydləri çeşidləyir (tənzimləyir).

Bu bəyanatlar isteğe bağlıdır. Onları ümumiyyətlə istifadə edə bilməzsiniz və ya yalnız bəzilərini və ya hamısını bir anda istifadə edə bilməzsiniz. Bir neçə operatordan istifadə edilərsə, onlar SQL ifadəsində siyahıda göstərilən ardıcıllıqla istifadə olunur. Beləliklə, bütün sadalanan sorğu dəqiqləşdirmə operatorlarından istifadə edərək cədvəldən verilənlər üçün sorğu aşağıdakı formaya malikdir:

Cədvəl adından sütunların siyahısını SEÇİN

HARADA axtarış şəraiti

GROUP BY sütun

Axtarış şərti

Şərtlərə görə SİFARİŞ Sort;

SQL ifadəsində operatorların sadalanma sırası onların yerinə yetirilmə sırasına uyğun gəlmir. Bununla belə, operatorların icra sırasını bilmək sizə bir çox anlaşılmazlıqlardan qaçmağa kömək edəcək. Beləliklə, sadalanan SQL ifadələri nəticəni cədvəl şəklində bir-birinə ötürərək aşağıdakı ardıcıllıqla yerinə yetirilir:

1. FROM- verilənlər bazasından cədvəl seçir; bir neçə cədvəl göstərilibsə, onda onların Dekart hasilatı yerinə yetirilir və nəticədə alınan cədvəl emal üçün növbəti operatora verilir.

2. HARADA- axtarış şərtinə uyğun qeydlər cədvəldən seçilir, qalanları isə atılır.

3. GROUP BY- WHERE bəndindən istifadə etməklə seçilən qeydlər qrupları yaradılır (əgər bu SQL ifadəsində varsa); hər bir qrup qruplaşdırma sütununda bəzi dəyərə uyğundur. Qruplaşdırma sütunu yalnız SEÇİM-də göstərilən deyil, from bəyanatında göstərilən cədvəlin istənilən sütunu ola bilər.

4. OLMAQ- yaradılmış yazı qruplarının hər birini emal edir, yalnız axtarış şərtini təmin edənləri buraxır; bu operator yalnız GROUP BY bəndi ilə birlikdə istifadə olunur.

5. SEÇİN- sadalanan operatorların tətbiqi nəticəsində alınan cədvəldən yalnız göstərilən sütunları seçir.

6. SİFARİŞ- cədvəl qeydlərini çeşidləyir. Bununla belə, çeşidləmə şəraitində siz yalnız SELECT ifadəsində göstərilən sütunlara daxil ola bilərsiniz.

Deyək ki, verilənlər bazanızdakı cədvəllər arasında Müştərilər cədvəli var, orada adları olan sütunlar var: ad, Ünvan, Sifariş_Məbləği və bəlkə də digərləri. Bu cədvəlin semantikası əhəmiyyətsizdir. O, müştərilər haqqında məlumatları və onların xidmətlərindən istifadə edərək şirkətinizə ödədikləri pul məbləğini qeyd edir.

düyü. 1. Cədvəl Müştəriləri

Tutaq ki, bizi bu cədvəldəki bütün məlumatlar deyil, yalnız şirkətə 500-dən çox pul ödəmiş müştərilərə aid olanlar maraqlandırır (indi ödənişlərin hansı valyutada aparılmasının əhəmiyyəti yoxdur). Daha doğrusu, firmaya 500 valyuta vahidindən çox pul ödəmiş müştərilərin adları və ünvanları lazımdır. Beləliklə, biz Müştərilər cədvəlində olanların hamısını deyil, həm sütunlar, həm də qeydlər üzrə yalnız bir qismini almalıyıq. Aşağıdakı SQL ifadəsi bu məqsəd üçün uyğundur:

HARADA Sifariş_Məbləği > 500;

Bu SQL ifadəsi təbii dildə belə görünən sorğudur:

SÜTUNLARIN adını, ünvanını CƏDVƏL müştərilərindən SEÇİN HARADA sifariş_məbləği > 500;

Burada Sifariş_Məbləği sütununun dəyərinin 500-dən çox olduğu qeydlər Müştərilər cədvəlindən seçilir. Bu halda, nəticə cədvəlində Müştərilər cədvəlinin yalnız iki sütunu təqdim olunacaq: Ad və Ünvan.

Mənbə cədvəlində mövcud olan Sifariş_Məbləği sütunu bu halda göstərilmir (nəticə cədvəlində yoxdur). Bununla belə, əgər siz 500-dən çox xüsusi məbləğləri görmək istəyirsinizsə, o zaman SELECT ifadəsindən sonra sütunlar siyahısında Sifariş_Məbləği sütununu qeyd etmək kifayətdir.

düyü. 2. Sorğu nəticəsi "HERE Sifariş_Cəmi > 500"

Aşağıdakı SQL ifadəsi üç Sütundan ibarət virtual cədvəl yaradır: Region, Ad və Ünvan. Müştərilər cədvəlindən yalnız Sifariş_Məbləğinin 500-dən çox olduğu qeydlər seçilir və onlar Region, Ad və Ünvan sütunlarının dəyərlərinə görə qruplaşdırılır. Bu o deməkdir ki, Region sütununda eyni qiymətə malik qeydlər nəticələnən cədvəldə bir-birinin yanında görünəcək. Nəhayət, nəticə cədvəlindəki bütün qeydlər Ad sütunundakı dəyərlərə görə sıralanır (Şəkil 3).

Müştərilərdən Region, Ad, Ünvan SEÇİN

HARADA Sifariş_Məbləği > 500

Bölgəyə görə Qrup, Ad, Ünvan

Adı ilə SİFARİŞ;

düyü. 3. Sorğu nəticəsi "HERE Sifariş_Cəmi > 500"
qruplaşdırma ilə "QRUP BY Region, Ad, Ünvan" və çeşidləmə "Sifariş BY BY"

Mənbə cədvəlindən qeydlərin seçilməsi üçün ifadə digər SQL ifadələrinə bitişik ola bilər.

WHERE ifadəsi

WHERE bəndindəki axtarış şərtləri (burada) məntiqi ifadələrdir, yəni iki mümkün dəyərdən birini götürürlər - doğru (DOĞRU) və ya yanlış (YANLIŞ). Məsələn, Sifariş_Məbləği > 500 ifadəsi cari cədvəl girişindəki Sifariş_Məbləği sütununun dəyəri 500-dən böyükdürsə, doğrudur (dəyərlər doğrudur). Əks halda, ifadə yanlışdır (dəyərlər yanlış). Eyni mantiq ifadəsi bəzi qeydlər üçün doğru, digərləri üçün isə yanlış ola bilər. Ümumiyyətlə, SQL-də məntiqi ifadələr də qeyri-müəyyən dəyər ala bilər. Bu, ifadədəki bəzi elementlər NULL olduqda baş verir. Beləliklə, SQL-də biz klassik iki qiymətli məntiqlə deyil, üç qiymətli məntiqlə məşğul oluruq.

WHERE bəndindən sonrakı ifadə üç dəyərdən birini qaytarır: doğru, yanlış və ya NULL. Sorğunu (SQL ifadəsi) yerinə yetirərkən məntiqi HARADASI bəndi mənbə cədvəlindəki bütün qeydlərə tətbiq edilir. Əgər mənbə Cədvəldəki verilmiş yazı üçün doğrudursa, o zaman həmin qeyd seçilir və nəticədə yaranan cədvəldə təmsil olunacaq; əks halda rekord nəticə cədvəlinə daxil edilməyəcək.

Məntiqi ifadələr tərtib edilərkən xüsusi açar sözlərdən və müqayisə əməliyyatlarının simvollarından istifadə olunur ki, bunlar da adlanır. predikatlar . Predikat ilk dəfə SQL-də ortaya çıxdı: 1999. Məsələn, Order_Amount > 500 ifadəsi müqayisə predikatından (>) istifadə edir.

WHERE bəndi olan ifadələr yalnız verilənləri seçərkən (yəni SELECT ifadəsi ilə) deyil, həm də qeydləri daxil edərkən, dəyişdirərkən və silərkən istifadə olunur. Beləliklə, bu bölmədəki material məlumatların seçilməsi ilə bağlı nəzərdən keçirilən mövzunun hüdudlarından kənara çıxan bir məna daşıyır.

Ən çox istifadə olunur müqayisə predikatları , məsələn (=), (<),(>), (<>), (<=) и (>=). Bununla belə, başqaları da var. Aşağıda bütün predikatların siyahısı verilmişdir:

müqayisə predikatları:

(=) - bərabərdir, (<) - меньше, (>) - daha çox, (< >) - bərabər deyil,

(<=) – меньше или равно (не больше), (>=) - böyük və ya bərabər (az deyil);

· BƏYƏNMƏK, BƏYƏNMƏK;

HAMISI, BƏZİSİ, HƏR HƏRİ;

Qeyd

Adi prosedur proqramlaşdırma dillərində sadalanan müqayisə simvolları predikatlar deyil, müqayisə operatorları adlanır, lakin müqayisə simvolları ilə bağlı hər şeyi necə adlandırsaq da, mahiyyət dəyişməz olaraq qalır.

BETWEEN (arasında) predikatı, dəyərin sərhəd dəyərləri ilə müəyyən edilmiş diapazonda olub olmadığını yoxlamaq üçün ifadə təyin etməyə imkan verir. Misal üçün:

HARADA Sifariş_Məbləği 100-750 ARASINDA

Burada əsas söz var VƏ məntiqi birləşməsini təmsil edir.Sərhəd dəyərləri (nümunədə bunlar 100 və 750-dir) diapazona daxil edilmişdir. Üstəlik, birinci sərhəd dəyəri ikincidən çox olmamalıdır.

Yuxarıdakıların ekvivalenti müqayisə predikatları ilə ifadədir:

HARADA Sifariş_Məbləği >= 100 VƏ Sifariş_Məbləği<= 750

Rəqəm tipli məlumatlara əlavə olaraq, BEETWEEN ilə ifadələr aşağıdakı növ məlumatlardan istifadə edə bilər: simvol, bit, tarix-vaxt. Beləliklə, məsələn, müştəri adlarının A-dan G arasında olduğu qeydləri seçmək üçün bu ifadədən istifadə edə bilərsiniz:

Müştərilərdən Ad, Ünvan SEÇİN

"A" VƏ "F" ARASINDA Ad;

IN VƏ DEYİL

IN (in) və NOT IN (daxil deyil) predikatları dəyərin verilmiş dəyərlər siyahısında olub-olmadığını yoxlamaq üçün istifadə olunur. Məsələn, müəyyən bölgələrdən müştəri qeydlərini seçmək üçün aşağıdakı ifadədən istifadə edə bilərsiniz:

Müştərilərdən Ad, Ünvan SEÇİN

Bölgənin HARADA ("Şimal-Qərb", "Stavropol diyarı",

"İrkutsk vilayəti");

Moskvadan və Şimal-Qərbdən olmayan bütün müştərilər haqqında məlumat almaq lazımdırsa, o zaman NOT IN predikatından istifadə edə bilərsiniz:

Müştərilərdən Ad, Ünvan SEÇİN

BÖLGƏ OLMADIĞINDA ("Moskva", "Sankt-Peterburq");

BƏYƏNMƏK və BƏYƏNMƏYƏM

LIKE (oxşar) və NOT LIKE (oxşar deyil) predikatları simvol sətirlərinin qismən uyğunluğunu yoxlamaq üçün istifadə olunur. Məsələn, cədvəldəki Telefon sütununda tam telefon nömrələri var və siz yalnız telefon nömrələrinin 348 ilə başladığı və ya həmin rəqəmlərin birləşməsini ehtiva edən qeydləri seçmək istəyirsiniz.

Qismən uyğunluq meyarı iki joker simvoldan istifadə etməklə müəyyən edilir: faiz işarəsi (%) və alt xətt (_). Faiz işarəsi hər hansı simvol dəstini, o cümlədən boş simvolu, alt xətt isə hər hansı bir simvolu bildirir. Məsələn, telefon nömrələri 348 ilə başlayan müştərilər üçün qeydləri seçmək üçün bu ifadədən istifadə edə bilərsiniz:

HARƏDƏ Telefon "348%" kimi;

Tutaq ki, Ünvan sütununda tam poçt ünvanı (poçt indeksi, şəhər adı, küçə adı və s.) var. Sankt-Peterburqda yaşayan müştərilər üçün qeydlər seçmək lazımdırsa, bunun üçün aşağıdakı ifadə uyğun gəlir:

Müştərilərdən Ad, Ünvan, Telefon SEÇİN

HARA Ünvan "%Sankt-Peterburq%" kimi;

Moskvada yaşayan bütün müştəriləri istisna etmək istəyirsinizsə, bu ifadədən istifadə edin:

Müştərilərdən Ad, Ünvan, Telefon SEÇİN

Ünvan "%Moskva%" kimi OLMAYAN YER;

Faiz və/və ya alt xətt simvollarını ehtiva edən qeydləri seçməlisiniz. Sonra bu cür simvolların SQL tərcüməçisi tərəfindən maska ​​simvolları kimi qəbul edilməməsi lazımdır. Faiz işarəsinin və ya alt xətt işarəsinin sözün həqiqi mənasında görünməsi üçün ondan əvvəl xüsusi nəzarət simvolu qoymalısınız. Bu simvol, məlumat elementi kimi baş vermədiyi müddətcə, ixtiyari olaraq təyin edilə bilər. Aşağıdakı nümunə bunun necə edilə biləcəyini göstərir:

SEÇİN- Müştərilərdən Ad, Ünvan, Faiz_endirimi

HARADA Faiz_endirimi "20#%" KİMİ

Burada ESCAPE açar sözündən sonra nəzarət kimi istifadə olunan simvol gəlir. Eyni şəkildə, nəzarət simvolunun özünü söndürə bilərsiniz.

IS NULL predikatı xüsusi sütunun dəyəri olmayan qeydləri müəyyən etmək üçün istifadə olunur. Məsələn, heç bir ünvanı göstərilməyən müştəri qeydlərini əldə etmək üçün aşağıdakı ifadədən istifadə edə bilərsiniz:

Ünvan NULL OLDUĞUNDA;

Ünvan sütununda bəzi xüsusi dəyər (yəni, null olmayan) olduğu qeydləri əldə etmək üçün siz oxşar ifadədən istifadə edə bilərsiniz, lakin məntiqi NOT (deyil) operatoru ilə:

Müştərilərdən Ad, Ünvan, Region SEÇİN

Ünvan NULL OLMADIĞINDA;

Ünvan = NULL kimi NULL müqayisə predikatlarından istifadə edilməməlidir.

SQL SELECT ifadəsi verilənlər bazasından məlumat seçmək üçün sorğular üçün nəzərdə tutulub. O, həm şərtlər olmadan (bütün sütunlardakı bütün sətirlərin və ya xüsusi sütunlardakı bütün sətirlərin seçilməsi) və ya WHERE bəndində göstərilən çoxsaylı şərtlərlə (xüsusi sətirlərin seçilməsi) istifadə edilə bilər. Gəlin məlumat seçimində bu şərtləri təyin etmək üçün istifadə edilə bilən SQL alətləri ilə tanış olaq, həmçinin alt sorğularda SELECT ifadəsindən necə istifadə etməyi öyrənək.

Cədvəl sütunlarını seçmək üçün SEÇ

Cədvəlin bütün sütunlarını seçmək üçün SELECT ifadəsi olan sorğu aşağıdakı sintaksisə malikdir:

TABLE_NAMEDƏN * SEÇİN

Yəni cədvəlin bütün sütunlarını seçmək üçün SELECT sözündən sonra ulduz işarəsi qoymaq lazımdır.

Misal 1 Möhkəm verilənlər bazası var - Şirkət. Org (şirkətin strukturu) və işçi heyəti (işçilər) cədvəli var. Cədvəllərdən bütün sütunları seçmək tələb olunur. Təşkilat cədvəlindən bütün sütunları seçmək üçün müvafiq sorğu aşağıdakı kimidir:

ORG-DAN * SEÇİN

Bu sorğu aşağıdakıları qaytaracaq (şəkili böyütmək üçün siçanın sol düyməsi ilə üzərinə klikləyin):

İşçilər cədvəlindən bütün sütunları seçmək üçün sorğu belə görünür:

KİŞİDƏN * SEÇİN

Bu sorğu aşağıdakıları qaytaracaq:


Cədvəlin müəyyən sütunlarını seçmək üçün ulduz işarəsi əvəzinə, seçiləcək bütün sütunların adlarını vergüllə ayıraraq sadalamalıyıq:

TABLE_NAMEDƏN SEÇMƏK ÜÇÜN SÜTUNLARI SEÇİN

Misal 2 Təşkilat cədvəlindən müvafiq olaraq firmanın departamentlərinin nömrələri və onların adları haqqında məlumatların yer aldığı Depnumb və Deptname sütunlarının seçilməsi tələb olunsun. Belə bir seçim əldə etmək üçün sorğu aşağıdakılardan ibarət olacaqdır:

ORG-DAN DEPNUMB, DEPTNAME SEÇİN

Və Kadrlar cədvəlindən müvafiq olaraq işçinin işlədiyi şöbənin nömrəsi, adı və vəzifəsi haqqında məlumatları ehtiva edən DEPT, NAME, JOB sütunlarını seçməlisiniz:

KİŞİDƏN BÖLÜMÜ, ADI, İŞİ SEÇİN

Müəyyən cədvəl sətirlərini seçmək üçün SELECT ifadəsi ilə yanaşı, bizə maraqlı olan cərgələrdə olan bəzi dəyəri və ya çoxlu dəyərləri göstərən WHERE açar sözü artıq lazımdır. Ən sadə şərtlər müqayisə və bərabərlik operatorlarından (, =), həmçinin IS açar sözündən istifadə etməklə müəyyən edilir. Bir neçə şərt ola bilər, sonra onlar AND açar sözündən istifadə etməklə siyahıya alınır. Sətir seçimi sorğuları aşağıdakı sintaksisə malikdir:

Misal 4Əvvəlki nümunədə cədvəldən sətirləri yalnız bir sütunun dəyəri ilə seçdik - DEPT. Tutaq ki, indi 38-ci şöbədə işləyən və vəzifəsi işçi (Klerk) olan işçilər haqqında məlumatları seçməliyik. Bunu etmək üçün, HARADA bölməsində müvafiq dəyərlər VƏ sözündən istifadə edilərək siyahıya alınmalıdır:


Misal 5 Komissiyanın məbləği qeyri-müəyyən olan işçilərin identifikatorlarını və adlarını "Ştat" cədvəlindən seçmək lazım gəlsin. Bunun üçün HARADA bölməsində COMM - NULL sütununun dəyərini təyin etməzdən əvvəl bərabər işarəni deyil, IS sözünü qoymalısınız:

Bu sorğu aşağıdakı məlumatları qaytaracaq:


Müqayisə işarələri seçiləcək sətirlərdəki dəyərləri göstərmək üçün də istifadə olunur.

SELECT və IN, OR, BETWEEN, LIKE predikatlarından istifadə

Predikatlar - WHERE bəndindəki IN, OR, BETWEEN, LIKE sözləri - həmçinin sizə müəyyən dəyər diapazonlarını (IN, OR, BETWEEN) və ya sətirlərdəki dəyərləri (LIKE) seçməyə imkan verir. masa. IN, OR, BETWEEN predikatları olan sorğular aşağıdakı sintaksisə malikdir:

LIKE predikatı olan sorğular aşağıdakı sintaksisə malikdir:

Misal 7 Tutaq ki, siz Kadrlar cədvəlindən 20 və ya 84 nömrəli şöbələrdə çalışan işçilərin adlarını, vəzifələrini və işlədikləri illərin sayını seçmək istəyirsiniz. Bunu aşağıdakı sorğu ilə etmək olar:

Sorğunun icrasının nəticəsi:


Misal 8 Tutaq ki, indi siz əvvəlki nümunədə olduğu kimi İşçilər cədvəlindən eyni məlumatları seçmək istəyirsiniz. OR sözü olan sorğu IN sözü ilə sorğuya bənzəyir və maraq dəyərlərini mötərizədə qeyd edir. Müraciət aşağıdakı kimi olacaq:

Misal 9 Eyni cədvəldən əmək haqqı 15-17 min arasında olan işçilərin adlarını, vəzifələrini və işlədiyi illərin sayını seçək:

Sorğunun icrasının nəticəsi:


LIKE predikatı qiymətləri apostrof (") arasındakı predikatdan sonra göstərilən simvolları ehtiva edən sətirləri seçmək üçün istifadə olunur.

Misal 10 Eyni cədvəldən adları S hərfi ilə başlayan və 7 simvoldan ibarət olan işçilərin adlarını, vəzifələrini və işlədiyi illərin sayını seçək:

Alt xətt simvolu (_) istənilən simvolu bildirir. Sorğunun icrasının nəticəsi:


Misal 11. Eyni cədvəldən adları S hərfi ilə başlayan və istənilən sayda başqa hərfləri olan işçilərin adlarını, vəzifələrini və işlədiyi illərin sayını seçək:

Faiz simvolu (%) istənilən sayda simvol deməkdir. Sorğunun icrasının nəticəsi:


IN, OR, BETWEEN, LIKE predikatlarından istifadə etməklə müəyyən edilmiş dəyərlər NOT sözündən istifadə etməklə tərsinə çevrilə bilər. Sonra tələb olunan məlumatlar əks mənaya sahib olacaq. NOT IN (20, 84) istifadə etsək, o zaman 20 və 84 rəqəmləri olanlardan başqa bütün şöbələrdə çalışan işçilərin məlumatları göstəriləcək.15000 İLƏ 17000 ARASINDA DEYİL istifadə edərək maaşı daxil olmayan işçilər üçün məlumat əldə edə bilərik. 15000-dən 17000-ə qədər intervalda. NOT LIKE ilə sorğu adları başlamayan və ya NOT LIKE ilə müəyyən edilmiş simvolları ehtiva etməyən işçilərin məlumatlarını qaytaracaq.

SQL sorğularını özünüzlə SELECT və IN, DEYİL, BETWEEN predikatları ilə yazın və sonra həll yollarına baxın

“Teatr” məlumat bazası var. Play cədvəlində oyun məlumatı var. Cədvəl Komandası - aktyorların rolları haqqında. Aktyor masası aktyorlar haqqındadır. Stol direktoru - direktorlar haqqında. Cədvəl sahələri, əsas və xarici düymələri aşağıdakı şəkildə görmək olar (böyütmək üçün sol siçan düyməsini basın).


Misal 12. Baş rol üçün heç vaxt təsdiqlənməmiş aktyorların siyahısını göstərin. Komanda cədvəlində əsas rollar haqqında məlumatlar əsas komanda sütununda yer alır. Rol əsasdırsa, müvafiq sətirdə "Y" işarəsi qoyulur.

SELECT və ORDER BY - sıraların çeşidlənməsi (sifarişi).

İndiyə qədər təhlil edilmiş SQL SELECT sorğuları istənilən sırada ola biləcək sətirləri qaytardı. Bununla belə, çox vaxt sətirləri ədədi sıraya, əlifba sırasına və digər meyarlara görə çeşidləmək lazımdır. Bu, ORDER BY açar sözündən istifadə etməklə edilir. Belə sorğular aşağıdakı sintaksisə malikdir:

Misal 15Ştat cədvəlindən 84 nömrəli şöbədə işləyən işçiləri seçmək və qeydləri iş illərinin sayına görə artan qaydada çeşidləmək (təşkil etmək) tələb edilsin:

ASC sözü çeşidləmə sırasının artan olduğunu göstərir. Bu söz isteğe bağlıdır, çünki artan sıralama standartdır. Sorğunun icrasının nəticəsi:


Misal 16Əvvəlki nümunədəki kimi eyni məlumatları seçmək tələb olunsun, lakin qeydləri işlənmiş illərin sayına görə azalan qaydada çeşidləyin (sifariş verin):

DESC sözü çeşidləmə sırasının azalan olduğunu göstərir. Sorğunun icrasının nəticəsi:


SELECT və DISTINCT - dublikat sıraları silin

Cədvəl sıra qiymətləri üçün unikallıq şərti müəyyən edilmədikdə, sorğunun nəticələrində eyni sətirlər görünə bilər. Çox vaxt yalnız unikal sətirləri göstərmək istəyirsiniz. Bu, SELECT ifadəsindən sonra DISTINCT ifadəsindən istifadə etməklə edilir.

Misal 17. Sayı 30-dan az olan şöbələr arasında hansı şöbələrin olduğunu və hansı vəzifələrin olduğunu öyrənmək tələb olunsun. Bunu aşağıdakı sorğudan istifadə etməklə etmək olar:

Sorğunun icrasının nəticəsi:


SQL alt sorğularında SELECT ifadəsi

İndiyə qədər biz SQL konstruksiyaları ilə SELECT ifadəsi ilə məşğul olmuşuq, burada verilənlərin seçildiyi şərtlər və seçilən verilənlər eyni verilənlər bazası cədvəlində yer alır. Təcrübədə tez-tez olur ki, seçiləcək verilənlər bir cədvəldə, şərtlər isə digər cədvəldə yer alır. Burada alt sorğular kömək üçün gəlir: seçim şərti dəyərləri SELECT ilə başlayan başqa sorğudan (alt sorğudan) qaytarılır. Alt sorğuları olan sorğular bir və ya daha çox sıra yarada bilər.

Misal 18. Bütün eyni ORG və STAFF cədvəlləri. 280 identifikasiya nömrəli işçinin hansı şöbədə işlədiyini və bu şöbənin harada yerləşdiyini öyrənmək tələb olunsun. Amma departamentlər haqqında məlumat ORG cədvəlində, işçilər haqqında isə PERSONEL cədvəlində saxlanılır. Bu, aşağıdakı alt sorğu ilə edilə bilər, burada xarici SEÇİM ORG cədvəlində və daxili SEÇİM STAFF cədvəlindədir:

Sorğunun icrasının nəticəsi:


Misal 19.İndi 13.000-dən az əmək haqqı olan işçilərin hansı şöbələrdə (təkrarsız) işlədiyini öyrənmək tələb olunur.Bunun üçün xarici SELECT-in HARADA bölməsində (ORG cədvəlinə sorğu) şərt qoyulur. bir sıra dəyərlər (IN) və daxili SELECT (STAFF cədvəlinə) sadəcə tələb olunan dəyərlər diapazonunu qaytarır:

Relational verilənlər bazası və SQL dili

Suallar əvvəlki məqalələrdə işıqlandırılmışdır. SQL sorğuları əsasında “sql_training_st.mdb” verilənlər bazası cədvəllərinin strukturunun yaradılması texnologiyası nəzərdən keçirilir. Bundan əlavə, SQL sorğularının köməyi ilə DBMS ACCESS "sql_training_st.mdb" cədvəlləri dolduruldu.

Məlumdur ki, relyasiyalı verilənlər bazalarında SQL dili verilənlərin manipulyasiyası, verilənlər bazası və onun komponentlərinin strukturunu müəyyən etmək, verilənlər bazasına istifadəçi girişinə nəzarət etmək, əməliyyatları idarə etmək və ya verilənlər bazasında dəyişiklikləri idarə etmək üçün nəzərdə tutulmuşdur.

SQL dili dörd qrupdan ibarətdir:

  • məlumatların manipulyasiya dili DML;
  • verilənlərin təyini dili DDL;
  • məlumatların idarə edilməsi dili DCL;
  • əməliyyatların idarə edilməsi dili TCL.

DML qrupuna dörd əsas SQL sorğu növü daxildir:

  • INSERT - cədvəlin sonuna bir və ya bir neçə qeyd əlavə etmək üçün nəzərdə tutulmuşdur;
  • YENİLƏNİB - cədvəlin sütunlarındakı mövcud qeydləri dəyişdirmək və ya cədvəldəki məlumatları dəyişdirmək üçün nəzərdə tutulmuşdur;
  • DELETE - cədvəldən qeydləri silmək üçün nəzərdə tutulmuşdur;
  • SELECT - cədvəllərdən verilənləri seçmək üçün nəzərdə tutulmuşdur.

Səhifədə düzəldici verilənlər bazası sorğuları olan SQL sorğularının ilk üç növü (INSERT, UPDATE, DELETE) müzakirə edilmişdir.

Bu yazıda biz Access verilənlər bazasındakı cədvəllərdən məlumat seçmək üçün sorğuları nəzərdən keçirəcəyik.

Access 2003 və ya 2007 verilənlər bazası verilənlər bazasında saxlanılan məlumatları əldə etmək üçün cədvəllərdən məlumatları seçmək üçün SELECT sorğusundan istifadə edə bilərsiniz.

Seçim üçün aşağıdakı SQL sorğusunu (SQL ifadəsi) yaradaq, bunun üçün View/SQL Mode əmrini yerinə yetirərək SQL rejimini seçirik. Klaviaturadan aşağıdakı SQL ifadəsini daxil edin:

SEÇİN *
Tələbələrdən;

Bu bəyanat iki bənddən ibarətdir "SEÇ *" və "Tələbələrdən". Birinci bənddə SELECT ifadəsi və identifikator * var ("identifikator *" cədvəlin bütün sütunlarını göstərmək deməkdir). İkinci bənddə FROM bəndi və “Tələbələr” identifikatoru var.

FROM - SELECT bəndində göstərilən sahələri ehtiva edən "Tələbələr" cədvəlini müəyyənləşdirir. Qeyd edək ki, seçim sorğusunda həmişə iki ifadə var: SELECT və FROM. Seçim şərtlərindən asılı olaraq, seçim sorğusunda digər operatorlar da ola bilər. Şəkil 1 məlumat əldə etmək sorğusunun ekran görüntüsünü göstərir.


düyü. 1. Məlumat seçimi üçün SQL SELECT sorğusu

Bu nümunədə Tələbələr cədvəlinin bütün sütunlarından məlumat seçimi formalaşdırılır.

Sorğunu “Students-query1” adı ilə saxlayırıq. “Saxla” əmrinin yerinə yetirilməsi nəticəsində “Naviqasiya sahəsi”ndə obyekt peyda olacaq – “Requests: Students-request1”.

Seçilmiş sorğunu saxladıqdan sonra "Çalış" işarəsini sıxaraq sorğunu yerinə yetirməlisiniz. "Run" əmrinin yerinə yetirilməsinin nəticələri şək. 2.



düyü. 2. Tələbələr cədvəlinin bütün sütunlarından verilənlərin seçilməsi

Praktiki iş № 9

Dərsin mövzusu: SQL sorğularının yaradılması.

Dərsin məqsədi: Sorğu yaratmaq üçün SQL dilindən necə istifadə edəcəyinizi öyrənin.

Dərs planı :

1. Seçim üçün SQL sorğularının yaradılması.

2. Seçim şərti ilə seçim üçün SQL sorğularının yaradılması.

3. Hesablama ilə SQL sorğularının yaradılması.

4. Qruplaşdırma üçün SQL sorğularının yaradılması.

SQL ( Strukturlaşdırılmış Sorğu dil) - verilənlər bazasında məlumatların yaradılması və işlənməsi üçün alətlər təqdim edən strukturlaşdırılmış sorğu dili.

SQL dil alətlərindən istifadə edərək sorğu yaratmaq üçün aşağıdakı addımları yerinə yetirməlisiniz:

    Konstruktordan istifadə edərək sorğu yaradın.

· Query Builder-də cədvəlin göstərilməsi sahəsində siçanın sağ düyməsini sıxın və kontekst menyusundan “SQL Mode” seçin.

1. yaradılışSeçim üçün SQL sorğuları.

SQL-dən istifadə edərək malları və bu mallar üçün sifarişləri seçmək üçün sadə sorğu yaradaq.

· SQL sorğu redaktorunu açın.

Redaktor pəncərəsində aşağıdakı sorğu prosedurunu daxil edin

Sifarişləri SEÇİN.[Sifariş ID-si], Məhsullar.[Məhsul adı], Sifarişlər. Kəmiyyət, Mallar. Qiymət, Məhsullar.[Vid], Sifarişlər.[Sifariş tarixi]

FROM Products INNER JOIN Orders on Products.[Məhsul ID] = Sifarişlər. məhsul;

· Sorğunu SQL sorğusu kimi yadda saxlayın.

· Sorğunun düzgün işlədiyini yoxlayın.

Bu əməliyyatın sintaksisini təhlil edək:

SELECT məlumat bazasına bu əməliyyatın sorğu olduğunu bildirən ifadədir (demək olar ki, bütün sorğular bu sözlə başlayır). SELECT ifadəsindən sonra adətən sorğuya daxil ediləcək sahələrin siyahısı başlayır. Məsələn, SELECT Sifarişlərini qeyd edin.[Sifariş Kodu] sorğunun sahəni əhatə edəcəyini bildirəcək Sifariş kodu sifariş cədvəlindən. Sahənin adında boşluqlar varsa, kvadrat mötərizə içərisində olmalıdır.

FROM məlumat mənbəyinə cavabdeh olan operatordur. Əgər cədvəllər arasında əlaqələri təyin etmək lazımdırsa, onda INNER JOIN operatorundan istifadə etməlisiniz.

İNNER JOIN - Əgər bu cədvəllərin birləşmə sahələrində eyni dəyərlər varsa, iki cədvəldən qeydləri birləşdirir. Məsələn, “FROM Products INNER JOIN Orders ON Products.[Məhsul Kodu] = Sifarişlər girişi. Məhsul" bu sorğu prosedurunda sahə deməkdir Məhsul Kodu Məhsullar cədvəlindən sahə üçün qeyd mənbəyidir Məhsul"Sifarişlər" cədvəlləri

Məşq: Məhsulu alan müştərilər haqqında məlumatı göstərməyə imkan verən SQL sorğusu yaradın.

2. Seçim şərti ilə seçim üçün SQL sorğularının yaradılması.

SQL dilindən istifadə edərək, 3-dən çox miqdarda mal satan işçilər haqqında məlumatı göstərməyə imkan verən sorğu yaradacağıq.

Seçim şərti ilə sorğular yaratmaq üçün WHERE bəndindən istifadə olunur.

Aşağıdakı sahələri ehtiva edən SQL seçim sorğusu yaradın: Tam adı işçi Sifariş kodu Hansı birinə xidmət etmək Kəmiyyət. Düzgün işlədiyini yoxlayın.

· İndi siz seçim şərti əlavə etməlisiniz. SQL redaktorunu açın və sorğu prosedurunun sonuna "HARADA (((Sifarişlər. Miqdar)>3))" əlavə edin.

· Sorğunu "SQL seçim şərti ilə seçin" adı altında saxlayın. Sorğunun işlədiyini yoxlayın.

Məşq: Qiymətinin dayandırılmadığı və qiyməti 20 valyuta vahidindən çox olmayan bütün məhsulları seçən SQL sorğusu yaradın.

3. Hesablama ilə SQL sorğularının yaradılması.

Müştərinin soyadını, məhsulun adını, sifariş məbləğini (qiymət*miqdar) göstərməyə imkan verən SQL sorğusu yaradaq.

Müraciət proseduru belə görünür:

Müştəriləri SEÇİN. Soyad, Məhsullar.[Məhsulun Adı], Sifarişlər! Miqdar*Məhsullar! Qiymət [Sifariş məbləği]

FROM Products INNER JOIN (Müştərilər INNER JOIN Sifarişlər ON Clients.[Customer ID]=Sifarişlər. Customer) ON Products.[Məhsul ID]=Sifarişlər. məhsul;

4. Qruplaşdırma üçün SQL sorğularının yaradılması.

Hər bir müştərinin sifariş etdiyi malların ümumi miqdarını müəyyən etməyə imkan verəcək sorğu yaradaq.

Qeydləri qruplaşdırmaq üçün GROUP BY bəndindən istifadə olunur.

Müraciət proseduru belə görünür:

Müştəriləri SEÇİN. Soyad, Məbləğ(Sifarişlər! Miqdar*Məhsullar! Qiymət) AS [Sifarişlərin Cəmi]

FROM Products INNER JOIN (Müştərilər INNER JOIN Orders ON Clients.[Customer ID] = Orders. Customer) ON Products.[Məhsul ID] = Sifarişlər. Məhsul

Müştərilərə görə Qrup. soyadı;

Nəzarət sualları:

1. SQL nədir?

2. SQL sorğusu necə yaradılır?

3. SQL dilinin struktur komponentləri.

4. SQL dilinin əsas operatorlarını sadalayın.

5. SELECT, WHERE, FROM, INNER JOIN, GROUP BY ifadələri haqqında ümumi məlumat.

Uğurlu tələbələr üçün tapşırıq: Qiyməti 3 pul vahidindən az olan "Məhsullar" cədvəlindən bütün qeydləri silməyə imkan verən SQL sorğusunu özünüz yaratmağa çalışın.

Nəticə: Bu işin gedişində SQL sorğularının yaradılmasının əsas yolları və üsulları öyrənilmişdir. Sorğu dilinin struktur komponentləri nəzərdən keçirilmiş, operatorlardan istifadə sintaksisi təsvir edilmişdir.

Siz proqramlaşdırmada yenisiniz və ya əvvəllər SQL öyrənməkdən yayınmısınız? Onda siz düzgün yerə gəldiniz, çünki istənilən tərtibatçı sonda bu sorğu dilini bilmək ehtiyacı ilə üzləşir. Əsas verilənlər bazası dizayneri olmasanız da, onlarla işləməkdən qaçmaq demək olar ki, mümkün deyil. Ümid edirəm ki, əsas SQL sorğularının bu qısa sintaktik icmalı maraqlı tərtibatçıya və ehtiyacı olan hər kəsə kömək edəcəkdir.

SQL verilənlər bazası nədir?

Strukturlaşdırılmış Sorğu Dili ANSI tərəfindən dəstəklənən verilənlər bazası rabitə standartıdır. Ən son versiya SQL-99-dur, baxmayaraq ki, yeni standart SQL-200n artıq inkişaf mərhələsindədir. Əksər verilənlər bazası ANSI-92 standartına ciddi şəkildə riayət edir. Daha müasir standartların tətbiqi ilə bağlı çoxlu müzakirələr aparılıb, lakin kommersiya verilənlər bazası təchizatçıları saxlanılan məlumatların manipulyasiyası üçün öz yeni konsepsiyalarını inkişaf etdirərək bundan uzaqlaşırlar. Demək olar ki, hər bir verilənlər bazası ANSI standartına çox oxşar olsa da, bəzi unikal sintaksis dəstindən istifadə edir. Əksər hallarda, bu sintaksis əsas standartın uzantısıdır, baxmayaraq ki, bu sintaksis müxtəlif verilənlər bazaları üçün fərqli nəticələr verir. Verilənlər bazası sənədlərinə baxmaq həmişə yaxşı fikirdir, xüsusən də gözlənilməz nəticələr əldə edirsinizsə.

Əgər siz SQL-də yenisinizsə, o zaman başa düşməli olduğunuz əsas anlayışlarla tanış olmalısınız.

Ümumiyyətlə, "SQL verilənlər bazası" əlaqəli verilənlər bazası idarəetmə sisteminin (RDBMS) ümumi adıdır. Bəzi sistemlər üçün "verilənlər bazası" digər oxşar konstruksiyalardan mahiyyətcə ayrı olan cədvəllər, verilənlər, konfiqurasiya məlumatları qrupuna da aiddir. Bu halda hər bir SQL verilənlər bazası quraşdırması bir neçə verilənlər bazasından ibarət ola bilər. Digər sistemlərdə onlara cədvəllər deyilir.

Cədvəl verilənlər sətirlərini ehtiva edən sütunlardan ibarət verilənlər bazası quruluşudur. Tipik olaraq, cədvəllər əlaqəli məlumatları ehtiva etmək üçün hazırlanmışdır. Eyni verilənlər bazasında bir neçə cədvəl yaradıla bilər.

Hər bir sütun işçi identifikasiya nömrələri, boy, avtomobil rəngi və s. kimi obyekt atributlarının atributunu və ya kolleksiyasını təmsil edir. Tez-tez bir sütun, "Ad sahəsində" kimi bir adla bir sahə kimi istinad edilir. Sətir sahəsi cədvəlin minimum elementidir. Cədvəldəki hər bir sütunun xüsusi adı, məlumat növü və ölçüsü var. Sütun adları cədvəl daxilində unikal olmalıdır.

Hər bir sətir (və ya qeyd) müəyyən bir obyektin atributlarının toplusudur, məsələn, cərgədə işçinin eyniləşdirmə nömrəsi, əmək haqqı, doğum ili və s. Cədvəl sətirlərinin başlıqları yoxdur. Müəyyən bir sıraya istinad etmək üçün istifadəçi onu unikal şəkildə müəyyən edən bəzi atribut (və ya atributlar dəsti) göstərməlidir.

Verilənlərlə işləyərkən yerinə yetirilən ən mühüm əməliyyatlardan biri verilənlər bazasında saxlanılan məlumatların seçilməsidir. Bunun üçün istifadəçi sorğu yerinə yetirməlidir.

İndi verilənlər bazası daxilində verilənlərin manipulyasiyasına diqqət yetirən verilənlər bazası sorğularının əsas növlərinə baxaq. Bizim məqsədlərimiz üçün bütün nümunələr istənilən mühitə uyğun standart SQL-də verilmişdir.

Məlumat sorğusu növləri

SQL-də Data Manipulation Language (DML) adlanan dörd əsas məlumat sorğusu növü vardır:
SELECT - cədvəllərdən sətirləri seçin;
INSERT - cədvələ sətirlər əlavə etmək;
YENİLƏNİB - cədvəldə sətirlərin dəyişdirilməsi;
DELETE - cədvəldəki sətirləri silmək;

Bu sorğuların hər birində verilənlər üzərində bəzi hərəkətləri yerinə yetirmək üçün istifadə edilən müxtəlif operatorlar və funksiyalar var. SELECT sorğusu ən çox seçimə malikdir. SELECT ilə birlikdə istifadə edilən JOIN və UNION kimi əlavə sorğu növləri də var. Ancaq hələlik biz yalnız əsas sorğulara diqqət yetirəcəyik.

İstədiyiniz məlumatları seçmək üçün SELECT sorğusundan istifadə edin

SELECT sorğusu verilənlər bazasında saxlanılan məlumatları əldə etmək üçün istifadə olunur. Bu sorğunun əsas hərəkəti tək bir cədvəllə məhdudlaşır, baxmayaraq ki, eyni vaxtda bir neçə cədvəldən əldə etməyə imkan verən konstruksiyalar mövcuddur. Xüsusi sütunlar üçün bütün məlumat sətirlərini əldə etmək üçün bu kimi bir sorğudan istifadə edin:
SEÇİN sütun1, sütun2 cədvəl_adından;

Həmçinin, "*" işarəsindən istifadə edərək cədvəldən bütün sütunları əldə edə bilərsiniz:
SEÇİN * cədvəl_adından;

Bu, xüsusi WHERE bəndi ilə məlumatları seçdiyiniz zaman faydalı ola bilər. Aşağıdakı sorğu "sütun1"in "3" dəyərini ehtiva etdiyi bütün sətirlərdən bütün sütunları qaytaracaq:
SEÇİN * cədvəl_adından HARADA sütun1=3;

"=" (bərabər) ilə yanaşı, aşağıdakı şərti operatorlar var:

Şərti ifadələr:
= Bərabər
<>Bərabər deyil
> Daha çox
< Меньше
>= Daha böyük və ya bərabər
<= Меньше или равно

Bundan əlavə, siz BITWEEN və LIKE şərtlərindən, həmçinin AND və OR operatorlarının kombinasiyaları ilə WHERE şərti ilə müqayisə etmək üçün istifadə edə bilərsiniz.
* Cədvəl_adından SEÇİN ((Yaş >= 18) VƏ (Soyad 'İvanov' VƏ 'Sidorov' ARASINDA)) VEYA '%Motorola%' KİMİ Şirkət;

Rus dilinə tərcümədə nə deməkdir: cədvəl_adı cədvəlindən bütün sütunları seçin, burada yaş sütununun dəyəri 18-dən böyük və ya bərabərdir və Soyad sütununun dəyəri İvanovdan Sidorov daxil olmaqla əlifba sırasındadır və ya Şirkət sütununun dəyəri Motoroladır.

Yeni məlumat daxil etmək üçün INSERT sorğusundan istifadə edin

Yeni məlumat cərgəsi yaratmaq üçün INSERT sorğusu istifadə olunur. Mövcud məlumatları və ya boş cərgə sahələrini yeniləmək üçün YENİLƏNİB sorğusundan istifadə edin.

Nümunə INSERT sorğu sintaksisi:
cədvəl_adı INSERT INTO (sütun1, sütun2, sütun3) VALUES ('data1', 'data2', 'data3');

Bütün dəyərləri cədvəlin sütunlarının göründüyü ardıcıllıqla daxil etmək niyyətindəsinizsə, sütun adlarını buraxa bilərsiniz, baxmayaraq ki, bu oxunaqlılıq baxımından daha yaxşıdır. Həmçinin, əgər siz sütunları siyahıya salırsınızsa, daxil etdiyiniz dəyərlər həmin sıraya uyğun gəldiyi müddətcə onları verilənlər bazası sırasına görə siyahıya salmaq məcburiyyətində deyilsiniz. Heç bir məlumatın daxil edilmədiyi sütunları siyahıya salmamalısınız.

Verilənlər bazasında artıq mövcud olan məlumatların dəyişdirilməsi çox oxşardır.

YENİLƏNİB sorğu və WHERE bəndi

UPDATE mövcud dəyərləri dəyişdirmək və ya bir sıra sahəni boşaltmaq üçün istifadə olunur, ona görə də yeni dəyərlər mövcud məlumat növünə uyğun olmalı və məqbul dəyərləri təmin etməlidir. Bütün sətirlərdəki dəyərləri dəyişmək istəmirsinizsə, onda WHERE bəndindən istifadə etməlisiniz.
YENİLƏNİB cədvəl_adı SET sütun1 = 'məlumat1', sütun2 = 'məlumat2' HARADA sütun3 = 'data3';

Dəyişmək istədiyiniz sütun da daxil olmaqla istənilən sütunda WHERE istifadə edə bilərsiniz. Bu, bir xüsusi dəyəri digəri ilə əvəz etmək lazım olduqda istifadə olunur.
UPDATE table_name SET FirstName = 'Vasily' WHERE FirstName = 'Vasily' AND LastName = 'Balqabaq';

Ehtiyatlı ol! DELETE sorğusu bütün sətirləri silir

DELETE sorğusu verilənlər bazasından bir sıranı tamamilə silir. Tək bir sahəni silmək istəyirsinizsə, o zaman YENİLƏNMƏ sorğusundan istifadə etməli və bu sahəni proqramınızda NULL-ə analoji olacaq dəyərə təyin etməlisiniz. SİL sorğunuzu WHERE bəndi ilə məhdudlaşdırmaq üçün diqqətli olun, əks halda cədvəlin bütün məzmununu itirə bilərsiniz.
Cədvəl_adından SİLİN HARADA sütun1 = 'data1';

Sətir verilənlər bazanızdan silindikdən sonra onu bərpa etmək mümkün deyil, ona görə də "IsActive" adlı sütunun və ya buna bənzər bir sütunun olması yaxşı olar ki, həmin sətirdəki məlumat görünüşünün bloklandığını göstərmək üçün onu sıfıra dəyişə bilərsiniz. .

İndi siz SQL sorğularının əsaslarını bilirsiniz

SQL verilənlər bazası dilidir və biz məlumatların sorğulanmasında istifadə olunan ən vacib və əsas əmrləri əhatə etdik. Bir çox əsas anlayışlara toxunulmayıb (məsələn, SUM və COUNT), lakin yuxarıda sadalaya bildiyimiz bir neçə əmr sizi hərəkətə keçməyə və SQL adlı gözəl sorğu dili haqqında daha çox öyrənməyə təşviq etməlidir.