Hər birimiz müntəzəm olaraq müxtəlif verilənlər bazası ilə qarşılaşırıq və istifadə edirik. E-poçt ünvanı seçdiyimiz zaman verilənlər bazası ilə işləyirik. Verilənlər bazaları axtarış xidmətlərindən, müştəri məlumatlarını saxlamaq üçün banklardan və s.
Lakin, verilənlər bazalarının daimi istifadəsinə baxmayaraq, hətta bir çox inkişaf etdiricilər üçün proqram sistemləri eyni terminlərin müxtəlif şərhlərinə görə çoxlu "boş yerlər" var. SQL dilinə nəzər salmazdan əvvəl baza verilənlər bazası terminlərinin qısa tərifini verəcəyik. Belə ki.
Verilənlər bazası - sifarişli məlumat strukturlarını və onların əlaqələrini saxlamaq üçün fayl və ya fayl dəsti. Çox vaxt verilənlər bazası idarəetmə sistemi adlanır - bu, yalnız müəyyən bir formatda məlumat deposudur və müxtəlif DBMS ilə işləyə bilər.
Cədvəl - Müəyyən bir atribut üzrə qruplaşdırılmış sənədləri, məsələn, son bir ay üçün sifarişlərin siyahısını saxlayan bir qovluğu təsəvvür edək. Bu kompüterdəki cədvəldir.Ayrıca cədvəlin özünəməxsus adı var.
Məlumat növü - müəyyən bir sütunda və ya cərgədə saxlanmasına icazə verilən məlumat növü. Bu rəqəmlər və ya müəyyən bir formatın mətni ola bilər.
Sütun və sıra- hamımız sətir və sütunları olan elektron cədvəllərlə işləmişik. İstənilən əlaqəli verilənlər bazası cədvəllərlə eyni şəkildə işləyir. Satırlar bəzən qeydlər adlanır.
əsas açar- hər bir cədvəl sətirində onu unikal şəkildə müəyyən etmək üçün bir və ya bir neçə sütun ola bilər. Əsas açar olmadan, istədiyiniz sətirləri yeniləmək, dəyişdirmək və silmək çox çətindir.
SQL(İngilis dili - strukturlaşdırılmış sorğu dili) yalnız verilənlər bazası ilə işləmək üçün hazırlanmışdır və hazırda bütün məşhur DBMS üçün standartdır. Dilin sintaksisi az sayda operatordan ibarətdir və öyrənmək asandır. Ancaq xarici sadəliyə baxmayaraq, imkan verir sql yaradılması istənilən ölçülü verilənlər bazası ilə mürəkkəb əməliyyatlar üçün sorğular.
1992-ci ildən ANSI SQL adlı ümumi qəbul edilmiş standart mövcuddur. O, operatorların əsas sintaksisini və funksiyalarını müəyyənləşdirir və ORACLE kimi DBMS bazarının bütün liderləri tərəfindən dəstəklənir. Nümunələr dilin sadəliyini və imkanlarını aydın şəkildə göstərir:
Verilənlər bazası cədvəlindəki bütün sütunlar eyni tipli məlumatları saxlayır. SQL-də məlumat növləri digər proqramlaşdırma dillərində olduğu kimidir.
SQL-də yeni verilənlər bazası, cədvəllər və digər sorğular yaratmağın iki yolu var:
Operator tərəfindən yeni verilənlər bazası yaradılır MƏLUMAT BAZASI YARADIN<наименование базы данных>; . Gördüyünüz kimi, sintaksis sadə və yığcamdır.
Aşağıdakı parametrlərlə CREATE TABLE ifadəsindən istifadə edərək verilənlər bazası daxilində cədvəllər yaradırıq:
Nümunə olaraq, aşağıdakı sütunlardan ibarət Əmtəə cədvəlini yaradaq:
Cədvəl yaradırıq:
CƏDVƏL YARATIN Əmtəə
(əmtəə_id CHAR(15) NULL DEYİL,
vendor_id CHAR(15) NULL DEYİL,
əmtəə_adı CHAR(254) NULL,
əmtəə_qiyməti DECIMAL(8,2) NULL,
əmtəə_dec VARCHAR(1000) NULL);
Cədvəldə beş sütun var. Addan sonra məlumat növü gəlir, sütunlar vergüllə ayrılır. Sütun dəyəri boş ola bilər (NULL) və ya doldurulmalıdır (NULL DEYİL) və bu, cədvəl yaradılarkən müəyyən edilir.
Məlumat seçimi operatoru ən çox istifadə edilən SQL sorğusudur. Məlumat əldə etmək üçün belə bir cədvəldən nəyi seçmək istədiyimizi göstərməlisiniz. Əvvəlcə sadə bir nümunə:
Əmtəədən əmtəə_adını SEÇİN
SELECT ifadəsindən sonra informasiyanın alınması üçün sütunun adını, FROM isə cədvəli müəyyən edir.
Sorğunun icrasının nəticəsi verilənlər bazasına daxil edildiyi ardıcıllıqla Əmtəə_adı dəyərləri olan bütün cədvəl sətirləri olacaq, yəni. heç bir çeşidləmə olmadan. Nəticəni sifariş etmək üçün əlavə ORDER BY bəndindən istifadə olunur.
Çoxsaylı sahələrə sorğu vermək üçün aşağıdakı nümunədə olduğu kimi onları vergüllə ayırın:
Əmtəədən əmtəə_id, əmtəə_adı, əmtəə_qiymətini SEÇİN
Sorğunun nəticəsi olaraq sətrin bütün sütunlarının qiymətini almaq mümkündür. Bunun üçün "*" işarəsi istifadə olunur:
Əmtəədən * SEÇİN
Cədvələ sətir əlavə etmək üçün INSERT ifadəsi ilə SQL sorğularından istifadə olunur. Əlavə etmək üç yolla edilə bilər:
Tam sətir əlavə etmək üçün cədvəlin adını və yeni sətirin sütunlarının (sahələrinin) dəyərlərini göstərməlisiniz. Budur bir nümunə:
Əmtəə DƏYƏRLƏRİNƏ DAXİL EDİN("106 ", "50", "Coca-Cola", "1,68", "Spirtsiz ,)
Nümunə cədvələ yeni məhsul əlavə edir. Dəyərlər hər sütun üçün VALUES-dən sonra müəyyən edilir. Sütun üçün uyğun dəyər yoxdursa, NULL göstərilməlidir. Sütunlar cədvəl yaradılarkən göstərilən ardıcıllıqla dəyərlərlə doldurulur.
Əgər satırın yalnız bir hissəsini əlavə etsəniz, nümunədə olduğu kimi sütunların adlarını açıq şəkildə göstərməlisiniz:
INSERT INTO əmtəə (əmtəə_id, satıcı_id, əmtəə_adı)
DƏYƏRLƏR("106 ", '50", "Coca Cola",)
Biz yalnız məhsulun identifikatorlarını, təchizatçını və onun adını daxil etdik, qalan sahələri isə boş buraxdıq.
INSERT əsasən sətirlər əlavə etmək üçün istifadə olunur, lakin SELECT ifadəsinin nəticələrini əlavə etmək üçün də istifadə edilə bilər.
Verilənlər bazası cədvəlinin sahələrində məlumatları dəyişdirmək üçün YENİLƏNİB ifadəsindən istifadə etməlisiniz. Operator iki şəkildə istifadə edilə bilər:
UPDATE üç əsas elementdən ibarətdir:
Məsələni nəzərdən keçirək. Tutaq ki, ID=106 olan məhsulun qiyməti dəyişib, ona görə də bu sıra yenilənməlidir. Aşağıdakı bəyanatı yazırıq:
YENİLƏNİN Əmtəə SET əmtəə_qiyməti = "3.2" HARADA əmtəə_id = "106"
Cədvəlin adını, bizim vəziyyətimizdə Əmtəə, yeniləmənin həyata keçiriləcəyi yeri, sonra SET-dən sonra - sütunun yeni dəyərini göstərdik və WHERE-də istədiyiniz ID dəyərini göstərərək istədiyiniz qeydi tapdıq.
Bir neçə sütunu dəyişdirmək üçün SET ifadəsindən sonra vergüllə ayrılmış çoxlu sütun-dəyər cütlərini təyin edin. Məhsulun adının və qiymətinin yeniləndiyi bir nümunəyə baxaq:
Əmtəə SETini YENİLƏNİB əmtəə_adı='Fanta', əmtəə_qiyməti = "3.2" HARADA əmtəə_id = "106"
Sütundakı məlumatı silmək üçün cədvəl strukturu icazə verərsə, onu NULL olaraq təyin edə bilərsiniz. Yadda saxlamaq lazımdır ki, NULL tam olaraq "yox" dəyəridir və mətn və ya rəqəm şəklində sıfır deyil. Məhsul təsvirini silin:
YENİLƏNİB Əmtəə SET-i commodity_desc = NULL HERE commodity_id = "106"
Cədvəldəki sətirləri silmək üçün SQL sorğuları DELETE əmri ilə yerinə yetirilir. İki istifadə halı var:
Cədvəldən bir sətirin silinməsinə misal:
commodity_id = "106" olduğu Əmtəədən SİLİN
DELETE FROM-dan sonra sətirlərin silinəcəyi cədvəlin adını müəyyənləşdiririk. WHERE bəndində sətirlərin silinməsi üçün seçiləcəyi şərt var. Nümunədə ID=106 olan məhsul xəttini silirik. HARADA qeyd etmək çox vacibdir. bu ifadəni buraxmaq cədvəldəki bütün sətirləri siləcək. Bu, sahələrin dəyərinin dəyişdirilməsinə də aiddir.
DELETE bəyanatı sütun adlarını və ya meta simvollarını göstərmir. O, sətirləri tamamilə silir, lakin bir sütunu silə bilməz.
Adətən interaktiv şəkildə cədvəllər, verilənlər bazaları yaratmaq, verilənlər bazasındakı məlumatları idarə etmək, dəyişdirmək, təhlil etmək və rahat interaktiv sorğu dizayneri (Query Designer) vasitəsilə SQL Access sorğularını həyata keçirmək üçün istifadə olunur, ondan istifadə edərək istənilən mürəkkəblikdə SQL ifadələrini yarada və dərhal icra edə bilərsiniz.
Serverə giriş rejimi də dəstəklənir, burada Access DBMS istənilən ODBC məlumat mənbəyinə SQL sorğularının generatoru kimi istifadə edilə bilər. Bu imkan Access proqramlarının istənilən formatla qarşılıqlı əlaqədə olmasına imkan verir.
SQL sorğuları döngüler, filiallar və s. kimi prosedur proqramlaşdırma dillərinin bütün xüsusiyyətlərinə malik olmadığından, DBMS təchizatçıları qabaqcıl xüsusiyyətlərə malik SQL-in öz versiyasını hazırlayırlar. İlk növbədə, bu, saxlanılan prosedurlara və prosedur dillərinin standart operatorlarına dəstəkdir.
Dilin ən çox yayılmış dialektləri:
MySQL DBMS GNU General Public License əsasında paylanır. Xüsusi modullar hazırlamaq imkanı olan kommersiya lisenziyası var. Onun ayrılmaz hissəsi kimi, XAMPP, WAMP və LAMP kimi internet serverlərinin ən populyar məclislərinə daxildir və İnternetdə proqramların hazırlanması üçün ən populyar DBMS-dir.
O, Sun Microsystems tərəfindən hazırlanıb və hazırda Oracle Corporation tərəfindən saxlanılır. 64 terabata qədər verilənlər bazalarını, SQL:2003 sintaksis standartını, verilənlər bazalarının replikasiyasını və bulud xidmətlərini dəstəkləyir.
Access-də sorğular verilənlər bazası cədvəllərində verilənlərin seçilməsi, yenilənməsi və işlənməsi üçün əsas vasitədir. Access, əlaqəli verilənlər bazası konsepsiyasına uyğun olaraq, sorğuları yerinə yetirmək üçün Strukturlaşdırılmış Sorğu Dilindən (SQL) istifadə edir. SQL ifadələrinin köməyi ilə Access-də istənilən sorğu həyata keçirilir.
Sorğunun əsas növü seçmə sorğudur. Bu sorğunun nəticəsi sorğu bağlanana qədər mövcud olan yeni cədvəldir. Sorğunun qurulduğu cədvəllərin qeydlərini birləşdirərək qeydlər formalaşdırılır. Cədvəl qeydlərinin birləşdirilməsi üsulu verilənlərin sxemində onların əlaqəsini təyin edərkən və ya sorğu yaratarkən müəyyən edilir. Sorğuda tərtib edilmiş seçim şərtləri cədvəllərin birləşməsinin nəticəsini təşkil edən qeydləri süzgəcdən keçirməyə imkan verir.
Access-də bir neçə növ sorğu yaradıla bilər:
Dizayn rejimində Access-də sorğular istifadə olunan cədvəlləri əks etdirən məlumat sxemini və sorğu cədvəlinin strukturunun və qeydlərin seçilməsi şərtlərinin qurulduğu sorğu formasını ehtiva edir (şək. 4.1).
Sorğudan istifadə edərək, aşağıdakı məlumat emalı növlərini həyata keçirə bilərsiniz:
Access-də sorğular digər sorğular, formalar, hesabatlar üçün qeyd mənbəyi kimi xidmət edir. Sorğudan istifadə edərək, bir neçə cədvəldən müəyyən bir mövzu sahəsi sənədini formalaşdırmaq üçün tam məlumat toplaya bilərsiniz, sonra ondan forma yaratmaq üçün istifadə edə bilərsiniz - bu sənədin elektron təqdimatı. Əgər forma və ya hesabat bir neçə əlaqəli cədvəl əsasında sehrbaz tərəfindən yaradılıbsa, o zaman sorğu mənbəyi kimi onlar üçün avtomatik olaraq yaradılır.
Düzəltmək üçün video təlimatına baxın.
SQL verilənlər bazasından məlumatları əldə etmək üçün istifadə olunur. SQL ingilis dilinə çox bənzəyən, lakin verilənlər bazası idarəetmə proqramları üçün nəzərdə tutulmuş proqramlaşdırma dilidir. Access-də hər bir sorğuda SQL istifadə olunur.
SQL-in necə işlədiyini başa düşmək sizə daha dəqiq sorğular yaratmağa kömək edir və yanlış nəticələr verən sorğuları düzəltməyi asanlaşdırır.
Bu məqalə Access üçün SQL məqalələr seriyasının bir hissəsidir. O, məlumatların əldə edilməsi üçün SQL-dən istifadənin əsaslarını təsvir edir və SQL sintaksisinin nümunələrini təqdim edir.
SQL faktlar toplusu və onlar arasındakı əlaqələrlə işləmək üçün nəzərdə tutulmuş proqramlaşdırma dilidir. Microsoft Office Access kimi əlaqəli verilənlər bazası proqramları verilənlərin manipulyasiyası üçün SQL-dən istifadə edir. Bir çox proqramlaşdırma dillərindən fərqli olaraq, SQL hətta yeni başlayanlar üçün də oxumaq və başa düşmək asandır. Bir çox proqramlaşdırma dilləri kimi, SQL də ISO və ANSI kimi standartlar komitələri tərəfindən tanınan beynəlxalq standartdır.
Verilənlər dəsti suallara cavab vermək üçün SQL-də təsvir edilmişdir. SQL-dən istifadə edərkən düzgün sintaksisdən istifadə edilməlidir. Sintaksis dilin elementlərini düzgün birləşdirməyə imkan verən qaydalar toplusudur. SQL sintaksisiİngilis sintaksisinə əsaslanır və Visual Basic for Applications (VBA) dil sintaksisi ilə bir çox elementləri paylaşır.
Məsələn, Mary adlı kontaktların soyadlarının siyahısını əldə edən sadə SQL ifadəsi belə görünə bilər:
Soyadı SEÇİN
Kontaktlardan
WHERE First_Name = "Məryəm";
Qeyd: SQL dili yalnız verilənlər üzərində əməliyyatları yerinə yetirmək üçün deyil, həm də verilənlər bazası obyektlərinin, məsələn, cədvəllərin strukturunu yaratmaq və dəyişdirmək üçün istifadə olunur. SQL-in verilənlər bazası obyektlərini yaratmaq və dəyişdirmək üçün istifadə olunan hissəsi DDL adlanır. DDL bu məqalədə əhatə olunmur. əlavə informasiya bax Data Definition Sorğu ilə Cədvəllər və ya İndekslər yaradın və dəyişdirin.
SELECT ifadəsi SQL-də verilənlər toplusunu təsvir etmək üçün istifadə olunur. O, verilənlər bazasından əldə ediləcək məlumat dəstinin tam təsvirini, o cümlədən aşağıdakıları ehtiva edir:
məlumatları ehtiva edən cədvəllər;
müxtəlif mənbələrdən alınan məlumatlar arasında əlaqə;
məlumatların seçildiyi sahələr və ya hesablamalar;
sorğunun nəticəsinə daxil edilmiş məlumatların yerinə yetirməli olduğu seçim şərtləri;
ehtiyac və çeşidləmə üsulu.
SQL ifadəsi bəndlər adlanan bir neçə hissədən ibarətdir. SQL ifadəsindəki hər bir bəndin bir məqsədi var. Bəzi təkliflər məcburidir. Aşağıdakı cədvəldə ən çox istifadə olunan SQL ifadələri verilmişdir.
SQL bəndi | Təsvir | Məcburi |
---|---|---|
İstədiyiniz məlumatları ehtiva edən sahələri müəyyən edir. |
||
SELECT bəndində göstərilən sahələri ehtiva edən cədvəlləri müəyyən edir. |
||
Nəticələrə daxil olan bütün qeydlərin cavab verməli olduğu sahə seçimi meyarlarını müəyyən edir. |
||
Nəticələr üçün çeşidləmə qaydasını təyin edir. |
||
Ümumi funksiyaları ehtiva edən SQL ifadəsində SELECT bəndində heç bir xülasə dəyəri hesablanmayan sahələri müəyyən edir. |
Yalnız belə sahələr varsa |
|
Ümumi funksiyaları ehtiva edən SQL ifadəsində SELECT bəndində ümumi dəyərin hesablandığı sahələrə tətbiq edilən şərtləri müəyyən edir. |
Hər bir SQL cümləsi nitq hissələri ilə müqayisə oluna bilən terminlərdən ibarətdir. Aşağıdakı cədvəldə SQL terminlərinin növləri verilmişdir.
SQL termini | Nitqin müqayisəli hissəsi | Tərif | Misal |
---|---|---|---|
identifikator |
isim |
Sahə adı kimi verilənlər bazası obyektini müəyyən etmək üçün istifadə edilən ad. |
Müştərilər.[Telefon Nömrəsi] |
operator |
fel və ya zərf |
Fəaliyyəti təmsil edən və ya dəyişdirən açar söz. |
|
Sabit |
isim |
Dəyişməyən dəyər, məsələn, rəqəm və ya NULL. |
|
ifadə |
sifət |
Tək qiymətə qiymətləndirən identifikatorların, operatorların, sabitlərin və funksiyaların birləşməsi. |
>= Mallar.[Qiymət] |
SQL ifadələrinin ümumi formatı:
SEÇİM sahəsi_1
Cədvəldən_1
HARADA meyar_1
;
Qeydlər:
Access SQL ifadəsindəki sətir fasilələrinə hörmət etmir. Buna baxmayaraq, SQL ifadəsinin həm onu yazan şəxs, həm də başqaları üçün asan oxunması üçün hər cümləni yeni sətirdən başlamaq tövsiyə olunur.
Hər SELECT ifadəsi nöqtəli vergül (;) ilə bitir. Nöqtəli vergül ya sonuncu cümlənin sonunda, ya da SQL ifadəsinin sonunda ayrıca sətirdə ola bilər.
Aşağıdakı nümunə sadə seçim sorğusu üçün Access-də SQL ifadəsinin necə görünə biləcəyini göstərir.
1. SELECT bəndi
2. FROM bəndi
3. WHERE bəndi
SQL sintaksisinin necə işlədiyini başa düşmək üçün nümunəni cümlələrə bölək.
SELECT , Şirkət
Bu SELECT bəndidir. O, iki identifikatordan sonra ("[E-poçt ünvanı]" və "Şirkət") (SEÇİM) ifadəsini ehtiva edir.
Əgər identifikatorda boşluqlar varsa və ya xüsusi işarələr(məsələn, "E-poçt ünvanı"), kvadrat mötərizə içərisində olmalıdır.
SELECT bəndində siz sahələr olan cədvəlləri göstərməyə ehtiyac yoxdur və siz nəticələrə daxil ediləcək məlumatların yerinə yetirməli olduğu seçim şərtlərini təyin edə bilməzsiniz.
SELECT ifadəsində SELECT bəndi həmişə FROM bəndindən əvvəl gəlir.
Kontaktlardan
Bu FROM bəndidir. O, ifadəni (FROM) və ardınca identifikatordan (Əlaqə) ehtiva edir.
FROM bəndi seçiləcək sahələri müəyyən etmir.
WHERE City="Seattle"
Bu WHERE bəndidir. O, (HARADA) operatorundan sonra ifadədən ibarətdir (Şəhər="Rostov").
SELECT, FROM və WHERE bəndləri ilə çox şey edə bilərsiniz. Bu təkliflərdən necə istifadə etmək barədə ətraflı məlumat üçün aşağıdakı məqalələrə baxın:
Microsoft Excel kimi, Access də cədvəldəki sorğunun nəticələrini çeşidləməyə imkan verir. ORDER BY bəndindən istifadə edərək, sorğu yerinə yetirildikdə nəticələrin necə çeşidlənəcəyini də təyin edə bilərsiniz. Əgər ORDER BY bəndi istifadə olunursa, o, SQL ifadəsinin sonunda olmalıdır.
ORDER BY bəndi çeşidləmənin tətbiq olunacağı eyni ardıcıllıqla çeşidlənəcək sahələrin siyahısını ehtiva edir.
Tutaq ki, məsələn, siz nəticələri ilk olaraq "Şirkət" sahəsinə görə azalan qaydada çeşidləmək istəyirsiniz, sonra isə "Şirkət" sahəsində eyni dəyərə malik qeydlər varsa, onları "E-poçt ünvanı" üzrə çeşidləyin. " sahəsi artan qaydada. ORDER BY bəndi belə görünür:
ŞİRKƏT DESC TARAFINDAN SİFARİŞ,
Qeyd: Varsayılan olaraq, Access dəyərləri artan qaydada (A-dan Z-yə, kiçikdən böyüyə) çeşidləyir. Əvəzində dəyərləri azalan qaydada çeşidləmək üçün müəyyən etməlisiniz açar söz DESC.
ORDER BY bəndi haqqında ətraflı məlumat üçün ORDER BY bəndinə baxın.
Bəzən ümumi aylıq satışlar və ya stokda olan ən bahalı əşyalar kimi ümumi məlumatlarla işləmək lazımdır. Bunun üçün SELECT bəndi sahəyə ümumi funksiya tətbiq edir. Məsələn, sorğunun nəticəsi hər bir şirkət üçün e-poçt ünvanlarının sayını qaytarmaqdırsa, SELECT bəndi belə görünə bilər:
Bir və ya digərindən istifadə etmək imkanı məcmu funksiya sahədə verilənlərin növündən və istədiyiniz ifadədən asılıdır. Mövcud məcmu funksiyalar haqqında daha çox məlumat üçün SQL Ümumi Funksiyaları məqaləsinə baxın.
Ümumi funksiyalardan istifadə edərkən adətən GROUP BY bəndi yaratmalısınız. GROUP BY bəndi toplama funksiyasının tətbiq olunmadığı bütün sahələri müəyyən edir. Əgər məcmu funksiyalar sorğunun bütün sahələrinə tətbiq edilirsə, sizə GROUP BY bəndi yaratmağa ehtiyac yoxdur.
GROUP BY bəndi, WHERE bəndi yoxdursa, dərhal WHERE və ya FROM bəndindən sonra gəlməlidir. GROUP BY bəndində sahələr SELECT bəndində olduğu kimi eyni ardıcıllıqla müəyyən edilir.
Əvvəlki nümunəyə davam edək. Əgər SELECT bəndi yalnız [E-poçt ünvanı] sahəsinə aqreqasiya funksiyasını tətbiq edirsə, o zaman GROUP BY bəndi belə görünür:
Şirkətə görə Qrup
GROUP BY bəndi haqqında ətraflı məlumat üçün GROUP BY bəndinə baxın.
Nəticələri məhdudlaşdırmaq üçün şərtləri müəyyən etmək istəyirsinizsə, lakin onları tətbiq etmək istədiyiniz sahə ümumi funksiyada istifadə olunursa, siz WHERE bəndindən istifadə edə bilməzsiniz. Əvəzində HAVING bəndindən istifadə edilməlidir. HAVING bəndi WHERE bəndi ilə eyni işləyir, lakin ümumiləşdirilmiş məlumatlar üçün istifadə olunur.
Tutaq ki, məsələn, AVG funksiyası (orta dəyəri hesablayır) SELECT bəndindəki birinci sahəyə tətbiq edilir:
SELECT COUNT(), Şirkət
Əgər siz COUNT funksiyasının dəyəri əsasında sorğu nəticələrini məhdudlaşdırmaq istəyirsinizsə, WHERE bəndində bu sahəyə filtr şərti tətbiq edə bilməzsiniz. Bunun əvəzinə şərt HAVING bəndində yerləşdirilməlidir. Məsələn, sorğunun yalnız şirkətin birdən çox e-poçt ünvanı olduqda sətirləri qaytarmasını istəyirsinizsə, aşağıdakı HAVING bəndindən istifadə edə bilərsiniz:
COUNT()>1
Qeyd: Sorğuya həm WHERE bəndində, həm də HAVING bəndində daxil ola bilər, bunun üçün WHERE bəndində göstərilən ümumi funksiyalarda istifadə edilməyən sahələr üçün şərtlər və ümumi funksiyalarda istifadə olunan sahələr üçün şərtlər HAVING bəndində göstərilmişdir. .
HAVING bəndi haqqında ətraflı məlumat üçün HAVING bəndinə baxın.
UNION operatoru birləşmiş dəst kimi çoxsaylı oxşar seçmə sorğular tərəfindən qaytarılan bütün məlumatlara eyni vaxtda baxmaq üçün istifadə olunur.
UNION operatoru iki SELECT ifadəsini bir yerdə birləşdirməyə imkan verir. Birləşdirilmiş SELECT ifadələri eyni və ya uyğun məlumat növləri ilə çıxış sahələrinin eyni sayda və sırasına malik olmalıdır. Sorğu icra edildikdə, hər bir uyğun sahə dəstindən alınan məlumatlar bir çıxış sahəsinə birləşdirilir, buna görə də sorğunun çıxışı hər bir SELECT ifadəsi qədər sahəyə malikdir.
Qeyd: Birlik sorğularında ədədi və mətn məlumat növləri uyğun gəlir.
UNION operatorundan istifadə edərək, əgər varsa, təkrar sətirlərin sorğu nəticələrinə daxil edilib-edilməməsini təyin edə bilərsiniz. Bunu etmək üçün ALL açar sözündən istifadə edin.
İki SELECT ifadəsini birləşdirən sorğu aşağıdakı əsas sintaksisə malikdir:
SEÇİM sahəsi_1
Cədvəldən_1
BİRLİK
SEÇİN sahə_a
Cədvəldən_a
;
Tutaq ki, "Məhsullar" və "Xidmətlər" adlı iki cədvəl var. Hər iki cədvəldə məhsul və ya xidmətin adı, qiymət və zəmanət məlumatı, həmçinin təklif olunan məhsul və ya xidmətin müstəsnalığını göstərən sahələr var. Baxmayaraq ki, "Məhsullar" və "Xidmətlər" cədvəlləri təqdim edir fərqli növlər zəmanətlər, əsas məlumat eynidir (ayrı-ayrı məhsullar və ya xidmətlər üçün keyfiyyət zəmanətinin təmin edilib-edilməməsi). İki cədvəldən dörd sahəni birləşdirmək üçün aşağıdakı qoşulma sorğusundan istifadə edə bilərsiniz:
Ad, qiymət, zəmanət_mövcud, eksklüziv_təklif SEÇİN
Məhsullardan
BÜTÜN BİRLİK
Ad, qiymət, zəmanət_mövcud, eksklüziv_təklif SEÇİN
FROM Xidmətlər
;
UNION operatorundan istifadə edərək SELECT ifadələrinin birləşdirilməsi haqqında ətraflı məlumat üçün məqaləyə baxın
"Mağaza" təhsil layihəsinin təsviriCədvəl keçid sxemi
Cədvəllərin təsviri
m_kateqoriya - məhsul kateqoriyaları
m_income - malların qəbulu
m_nəticə - malların istehlakı
m_product - kataloq, məhsul təsviri
m_supplier - kataloq; təchizatçı məlumat
m_unit - kataloq; vahidlər
Bu dərslikdə verilən nümunələri praktiki olaraq yoxlamaq üçün sizdə aşağıdakı proqram təminatı olmalıdır:
Microsoft Access 2003 və ya daha sonra.
Cədvəl sahəsində redaktə rejiminə keçmək üçün yuxarı paneldə Dizayn rejimini seçin:
SQL sorğusunun nəticəsini göstərmək üçün sol paneldə sorğu adının üzərinə iki dəfə klikləyin:
SQL sorğusunun redaktə rejiminə keçmək üçün yuxarı paneldə SQL rejimini seçin:
SQL sorğusu Q001.İstədiyiniz ardıcıllıqla yalnız tələb olunan sahələri əldə etmək üçün nümunə SQL sorğusu:
SELECT dt, product_id, məbləğ
SQL sorğusu Q002. Bu SQL sorğu nümunəsində ulduz simvolu (*) m_product cədvəlinin bütün sütunlarını göstərmək üçün, başqa sözlə, m_product əlaqəsinin bütün sahələrini əldə etmək üçün istifadə olunur:
SEÇİN*
FROM m_product;
SorğuSQLQ003. DISTINCT ifadəsi dublikat qeydləri aradan qaldırmaq və bir çox unikal qeydlər əldə etmək üçün istifadə olunur:
FƏRQLİ məhsul_id SEÇİN
SQL sorğusu Q004. ORDER BY ifadəsi qeydləri müəyyən bir sahənin dəyərlərinə görə çeşidləmək (sifariş etmək) üçün istifadə olunur. Sahənin adı ORDER BY bəndindən sonra gəlir:
SEÇİN*
m_gəlirdən
SQL sorğusu Q005. ASC ifadəsi ORDER BY ifadəsinə əlavə olaraq istifadə olunur və artan çeşidi müəyyən etmək üçün istifadə olunur. DESC ifadəsi ORDER BY ifadəsinə əlavə olaraq istifadə olunur və azalan çeşidi müəyyən etmək üçün istifadə olunur. Nə ASC, nə də DESC göstərilmədiyi halda, ASC-nin olması (defolt) qəbul edilir:
SEÇİN*
m_gəlirdən
SQL sorğusu Q006. Cədvəldən lazımi qeydləri seçmək üçün seçim şərtini ifadə edən müxtəlif məntiqi ifadələrdən istifadə olunur. Boolean ifadəsi WHERE bəndindən sonra gəlir. m_income cədvəlindən məbləğin dəyəri 200-dən çox olan bütün qeydləri əldə etmək nümunəsi:
SEÇİN*
m_gəlirdən
SQL sorğusu Q007. Mürəkkəb şərtləri ifadə etmək üçün istifadə edin məntiqi əməliyyatlar AND (bağlama), OR (dizyunksiya) və NOT (məntiqi inkar). m_outcome cədvəlindən məbləğ dəyəri 20 və qiymət dəyəri 10-dan böyük və ya ona bərabər olan bütün qeydləri əldə etməyə nümunə:
qiymət
SQL sorğusu Q008.İki və ya daha çox cədvəldəki məlumatları birləşdirmək üçün INNER JOIN, LEFT JOIN, RIGHT JOIN ifadələrindən istifadə edin. Aşağıdakı nümunə dt, product_id, məbləğ, qiymət sahələrini m_income cədvəlindən və başlıq sahəsini m_product cədvəlindən alır. m_income cədvəlinin qeydi m_product cədvəlinin qeydinə m_income.product_id dəyəri m_product.id dəyərinə bərabər olduqda bağlanır:
SQL sorğusu Q009. Bu SQL sorğusunda diqqət etməli olduğunuz iki şey var: 1) axtarış mətni tək dırnaq içərisindədir ("); 2) tarix MS üçün düzgün olan #Month/Day/Year# formatındadır. Giriş. Digər sistemlərdə tarix formatı fərqli ola bilər. 12 iyun 2011-ci il tarixində südün qəbulu haqqında məlumatın göstərilməsi nümunəsi. Tarix formatına diqqət yetirin #6/12/2011#:
SELECT dt, product_id, başlıq, məbləğ, qiymət
SQL sorğusu Q010. BETWEEN təlimatı bir sıra dəyərlərin ona aid olub olmadığını yoxlamaq üçün istifadə olunur. 1 iyun və 30 iyun 2011-ci il tarixləri arasında alınan mallar haqqında məlumatı əks etdirən nümunə SQL sorğusu:
SEÇİN*
FROM m_income DAXİLİ QOŞULUN m_product
Sorğu Q011. Kodları da m_income cədvəlində olan m_product cədvəlindəki məhsullar haqqında məlumatları göstərir:
SEÇİN*
m_məhsulundan
Sorğu Q012. m_product cədvəlindən kodları m_outcome cədvəlində olmayan məhsulların siyahısı göstərilir:
SEÇİN*
m_məhsulundan
Sorğu Q013. Bu SQL sorğusu m_income cədvəlində kodları olan, lakin m_outcome cədvəlində olmayan kodların və məhsul adlarının unikal siyahısını qaytarır:
SEÇİN DISTINCT product_id, başlıq
Sorğu Q014. Kateqoriyaların unikal siyahısı m_kateqoriya cədvəlində göstərilir, adları M hərfi ilə başlayır:
DISTINCT başlığı SEÇİN
Sorğu Q015. Sorğuda sahələr üzrə hesab əməliyyatlarının yerinə yetirilməsi və sorğuda sahələrin adının dəyişdirilməsi nümunəsi (ləqəb). Bu nümunə, mənfəətin satışın 7 faizini nəzərə alaraq, hər bir məhsulun istehlak qeydi üçün xərc = kəmiyyət*qiymət və mənfəəti hesablayır:
Sorğu Q016. Arifmetik əməliyyatları təhlil edərək və sadələşdirərək, sorğunun icra sürətini artıra bilərsiniz:
Dt, məhsul_id, məbləğ, qiymət, məbləğ*qiymət AS nəticə_cəmi,
Q017 sorğusu. INNER JOIN ifadəsindən istifadə edərək, bir neçə cədvəldən məlumatları birləşdirə bilərsiniz. Aşağıdakı misalda, ctgry_id dəyərindən asılı olaraq, m_income cədvəlindəki hər bir giriş məhsulun aid olduğu m_kateqoriya cədvəlindəki kateqoriyanın adı ilə uyğunlaşdırılır:
c.title, b.title, dt, məbləğ, qiymət, məbləğ*qiymət gəlir_summa kimi SEÇİN
Sorğu Q018. SUM - cəm, COUNT - kəmiyyət, AVG - arifmetik orta, MAX - maksimum dəyər, MIN - minimum qiymət kimi funksiyalar məcmu funksiyalar adlanır. Onlar birdən çox dəyər alır və emal edildikdə bir dəyər qaytarır. SUM məcmu funksiyasından istifadə edərək sahələrin məbləğinin və qiymətinin məhsulunun cəminin hesablanması nümunəsi:
Cəmi_məblək kimi CƏMİ(məbləğ*qiymət) SEÇİN
Sorğu Q019.Çoxlu məcmu funksiyalardan istifadə nümunəsi:
Məbləği (məbləği) Məbləğ_Məbləği, AVG(məbləği) Məbləğ_AVG AS SEÇİN,
Q020 sorğusu. Bu misalda 2011-ci ilin iyun ayında alınan kodu 1 olan bütün maddələrin cəmi hesablanır:
Cəmi(məbləğ*qiymət) gəlir_cəmi kimi SEÇİN
Q021 sorğusu. Aşağıdakı SQL sorğusu 4 və ya 6 kodlu malların nə qədər satıldığını hesablayır:
Nəticə_cəmi kimi Cəmi (məbləğ*qiymət) SEÇİN
Sorğu Q022. 12 iyun 2011-ci il tarixində 4 və ya 6 kodu olan malların hansı məbləğdə satıldığı hesablanır:
Nəticə_cəmi kimi Cəmi (məbləğ*qiymət) SEÇİN
Sorğu Q023. Vəzifə budur. "Bişmiş məhsullar" kateqoriyasındakı malların kreditləşdirildiyi ümumi məbləği hesablayın.
Bu problemi həll etmək üçün üç cədvəl üzərində işləməlisiniz: m_income, m_product və m_category, çünki:
Bu problemi həll etmək üçün aşağıdakı alqoritmdən istifadə edirik:
Sorğu Q024."Bişmiş məhsullar" kateqoriyasına aid malların ümumi məbləğinin hesablanması problemi aşağıdakı alqoritmlə həll ediləcək:
- m_kateqoriya cədvəlindən onun məhsul_id dəyərindən asılı olaraq m_gəlir cədvəlinin hər bir qeydi kateqoriyanın adına uyğun gəlir;
- kateqoriyası "Bişmiş məhsullar"a bərabər olan qeydləri seçin;
- gəlirin məbləğini hesablayın = kəmiyyət * qiymət.
FROM (m_məhsul DAXİLİ QOŞULMA KİMİ m_gəlir AS b ON a.id=b.product_id)
WHERE c.title="Bişmiş məmulatlar";
!}
Sorğu Q025. Bu nümunə neçə maddənin istehlak edildiyini hesablayır:
COUNT(məhsul_id) məhsul_cnt kimi SEÇİN
Sorğu Q026. Qeydləri qruplaşdırmaq üçün GROUP BY bəndindən istifadə olunur. Tipik olaraq, qeydlər bir və ya bir neçə sahənin dəyərinə görə qruplaşdırılır və hər bir qrupa ümumi əməliyyat tətbiq edilir. Məsələn, aşağıdakı sorğu malların satışı haqqında hesabat yaradır. Yəni, malların adlarını və satıldıqları məbləği ehtiva edən bir cədvəl yaradılır:
Başlıq SEÇİN, SUM(məbləğ*qiymət) nəticə_cəmi AS
Sorğu Q027. Kateqoriya üzrə satış hesabatı. Yəni, məhsul kateqoriyalarının adlarını, bu kateqoriyaların mallarının satıldığı ümumi məbləği və satışın orta məbləğini ehtiva edən bir cədvəl yaradılır. ROUND funksiyası orta dəyəri ən yaxın yüzliyə yuvarlaqlaşdırmaq üçün istifadə olunur (onluq ayırıcıdan sonra ikinci onluq yer):
SEÇİN c.başlıq, SUM(məbləğ*qiymət) nəticə_cəmi,
Sorğu Q028. Hər bir məhsul üçün onun qəbzlərinin ümumi və orta sayı hesablanır və mədaxillərinin ümumi sayı ən azı 500 ədəd olan mallar haqqında məlumat göstərilir:
məhsul_id SEÇİN, SUM(məbləğ) məbləği_sum,
Sorğu Q029. Bu sorğu hər bir maddə üzrə onun 2011-ci ilin ikinci rübündə daxilolmalarının cəmini və orta hesablamasını hesablayır. Malların qəbulunun ümumi məbləği 1000-dən az deyilsə, bu məhsul haqqında məlumat göstərilir:
Başlıq SEÇİN, SUM(məbləğ*qiymət) gəlir_cəmi AS
Sorğu Q030. Bəzi hallarda hansısa cədvəlin hər bir qeydini digər cədvəlin hər bir qeydi ilə uyğunlaşdırmaq lazımdır; dekart məhsulu adlanır. Belə birləşmə nəticəsində yaranan cədvəl Dekart cədvəli adlanır. Məsələn, bəzi A cədvəlində 100, B cədvəlində isə 15 giriş varsa, onda onların Dekart cədvəli 100*15=150 qeyddən ibarət olacaq. Aşağıdakı sorğu m_income cədvəlindəki hər girişi m_outcome cədvəlindəki hər girişlə birləşdirir:
m_gəlirdən, m_nəticədən;
Sorğu Q031. Qeydləri iki sahə üzrə qruplaşdırmaq nümunəsi. Aşağıdakı SQL sorğusu hər bir təchizatçı üçün ondan alınan malların miqdarını və miqdarını hesablayır:
Sorğu Q032. Qeydləri iki sahə üzrə qruplaşdırmaq nümunəsi. Aşağıdakı sorğu hər bir təchizatçı üçün bizim tərəfimizdən satılan məhsullarının miqdarını və miqdarını hesablayır:
təchizatçı_id, məhsul_id, SUM(məbləğ) məbləği_sum,
Sorğu Q033. Bu nümunədə yuxarıdakı iki sorğu (q031 və q032) alt sorğular kimi istifadə olunur. Bu sorğuların nəticələri LEFT JOIN metodundan istifadə edərək bir hesabatda birləşdirilir. Aşağıdakı sorğuda hər bir təchizatçı üçün alınan və satılan məhsulların sayı və miqdarı haqqında hesabat göstərilir. Diqqət yetirməlisiniz ki, əgər hansısa məhsul artıq gəlibsə, lakin hələ satılmayıbsa, bu qeyd üçün nəticə_cəmi xanası boş olacaq. bu sorğu yalnız istifadə nümunəsidir mürəkkəb sorğular alt sorğu kimi. Performans sorğu verilmişdir Böyük miqdarda verilənlərə malik SQL şübhəlidir:
SEÇİN*
FROM
Sorğu Q034. Bu nümunədə yuxarıdakı iki sorğu (q031 və q032) alt sorğular kimi istifadə olunur. Bu sorğuların nəticələri RIGTH JOIN metodundan istifadə edərək bir hesabatda birləşdirilir. Aşağıdakı sorğu hər bir müştərinin istifadə etdiyi ödəniş sistemləri üçün ödənişlərinin məbləği və etdikləri investisiyaların məbləği haqqında hesabat çap edir. Aşağıdakı sorğuda hər bir təchizatçı üçün alınan və satılan məhsulların sayı və miqdarı haqqında hesabat göstərilir. Nəzərə alın ki, əgər məhsul artıq satılıbsa, lakin hələ alınmayıbsa, bu giriş üçün gəlir_sum xanası boş olacaq. Belə boş hüceyrələrin olması satışın uçotunda səhvin göstəricisidir, çünki satışdan əvvəl ilk növbədə müvafiq məhsulun gəlməsi lazımdır:
SEÇİN*
FROM
Sorğu Q035. Məhsullar üzrə gəlir və xərclərin məbləği haqqında hesabat göstərilir. Bunun üçün m_gəlir və m_nəticə cədvəllərinə uyğun məhsulların siyahısı yaradılır, sonra bu siyahıdan hər bir məhsul üçün m_gəlir cədvəlinə uyğun olaraq onun daxilolmalarının cəmi və m_nəticə cədvəlinə uyğun olaraq xərclərinin cəmi hesablanır:
məhsul_id, gəlir_məbləği AS SUM(məbləğlə) SEÇİN,
Sorğu Q036. EXISTS funksiyası ona ötürülən çoxluq elementlərdən ibarətdirsə, TRUE qaytarır. EXISTS funksiyası ona ötürülən çoxluq boşdursa, yəni heç bir elementi yoxdursa FALSE qaytarır. Aşağıdakı sorğu həm m_income cədvəlində, həm də m_outcome cədvəlində olan məhsul kodlarını qaytarır:
FƏRQLİ məhsul_id SEÇİN
Sorğu Q037. Həm m_income cədvəlində, həm də m_outcome cədvəlində olan məhsul kodları göstərilir:
FƏRQLİ məhsul_id SEÇİN
Sorğu Q038. m_income cədvəlində olduğu kimi, lakin m_outcome cədvəlində olmayan məhsul kodları göstərilir:
FƏRQLİ məhsul_id SEÇİN
Sorğu Q039.Ən yüksək satış məbləği olan məhsulların siyahısı göstərilir. Alqoritm belədir. Hər bir məhsul üçün onun satışlarının məbləği hesablanır. Sonra bu məbləğlərin maksimumu müəyyən edilir. Sonra hər bir məhsul üçün onun satışlarının məbləği yenidən hesablanır və satışların cəmi maksimuma bərabər olan kod və malların satışının cəmi göstərilir:
məhsul_id, SUM(məbləğ*qiymət) məbləği_sum kimi SEÇİN
Sorğu Q040. IIF (şərti operator) sözü məntiqi ifadəni qiymətləndirmək və nəticədən asılı olaraq hərəkəti yerinə yetirmək üçün istifadə olunur (TRUE və ya FALSE). Aşağıdakı misalda, miqdar 500-dən az olarsa, malın çatdırılması "kiçik" sayılır. Əks halda, yəni qəbz miqdarı 500-dən çox və ya ona bərabər olarsa, çatdırılma "böyük" sayılır:
SELECT dt, product_id, məbləğ,
SQL sorğusu Q041. IIF ifadəsinin bir dəfədən çox istifadə edildiyi halda onu SWITCH ifadəsi ilə əvəz etmək daha rahatdır. SWITCH operatoru (çox seçim operatoru) məntiqi ifadəni qiymətləndirmək və nəticədən asılı olaraq hərəkəti yerinə yetirmək üçün istifadə olunur. Aşağıdakı misalda, partiyadakı malların miqdarı 500-dən az olarsa, təhvil verilmiş lot “kiçik” sayılır. Əks halda, yəni malın miqdarı 500-dən çox və ya ona bərabər olarsa, lot “böyük” sayılır. ":
SELECT dt, product_id, məbləğ,
Sorğu Q042. Növbəti sorğuda daxil olan partiyada malların miqdarı 300-dən azdırsa, o zaman partiya “kiçik” sayılır. Əks halda, yəni şərt məbləği SELECT dt, product_id, məbləğ,
IIF(məbləğ IIF(m_gəlirdən məbləğ;
SQL sorğusu Q043. Növbəti sorğuda daxil olan partiyada malların miqdarı 300-dən azdırsa, o zaman partiya “kiçik” sayılır. Əks halda, yəni şərt məbləği SELECT dt, product_id, məbləğ,
SWITCH(məbləğin məbləği>=1000,"böyük") AS işarəsi
m_gəlirdən;
SQL sorğusu Q044. Aşağıdakı sorğuda satışlar üç qrupa bölünür: kiçik (150-yə qədər), orta (150-dən 300-ə qədər), böyük (300 və daha çox). Sonra, hər bir qrup üçün ümumi məbləğ hesablanır:
Kateqoriya SEÇİN, SUM(nəticə_cəmi) Ctgry_Total
SQL sorğusu Q045. DateAdd funksiyası verilən tarixə günlər, aylar və ya illər əlavə etmək və yeni tarix əldə etmək üçün istifadə olunur. Növbəti sorğu:
1) dt sahəsindən tarixə 30 gün əlavə edin və göstərin yeni tarix dt_plus_30d sahəsində;
2) dt sahəsindən tarixə 1 ay əlavə edin və dt_plus_1m sahəsində yeni tarixi göstərin:
SEÇİN dt, dateadd("d",30,dt) AS dt_plus_30d, dateadd("m",1,dt) AS dt_plus_1m
SQL sorğusu Q046. DateDiff funksiyası iki tarix arasındakı fərqi müxtəlif vahidlərdə (günlər, aylar və ya illər) hesablamaq üçün nəzərdə tutulmuşdur. Aşağıdakı sorğu dt sahəsindəki tarix ilə cari tarix arasındakı fərqi günlər, aylar və illərlə hesablayır:
SEÇİN dt, DateDiff("d",dt,Tarix()) AS son_gün,
SQL sorğusu Q047. Malların qəbul edildiyi gündən (cədvəl m_gəlir) cari tarixə qədər olan günlərin sayı DateDiff funksiyasından istifadə etməklə hesablanır və son istifadə tarixi müqayisə edilir (cədvəl m_məhsul):
SQL sorğusu Q048. Malların qəbul edildiyi tarixdən cari tarixə qədər olan günlərin sayı hesablanır, sonra bu rəqəmin istifadə müddətini keçib-keçməməsi yoxlanılır:
SELECT a.id, product_id, dt, lifedays,
SQL sorğusu Q049. Malların qəbul edildiyi tarixdən cari tarixə qədər olan ayların sayı hesablanır. month_last1 sütunu ayların mütləq sayını, month_last2 sütunu tam ayların sayını hesablayır:
dt, DateDiff("m",dt,Tarix()) AS ay_son1, SEÇİN
SQL sorğusu Q050. 2011-ci il üçün alınan malların miqdarı və miqdarı haqqında rüblük hesabat göstərilir:
SEÇİM kvartal, SUM(nəticə_cəmi) AS Ümumi
Sorğu Q051. Aşağıdakı sorğu istifadəçilərin malların qəbulu məbləğindən çox olan məbləğə malların istehlakı haqqında məlumatı sistemə daxil edə bilib-bilmədiyini öyrənməyə kömək edir:
məhsul_id SEÇİN, SUM(cəmdə) gəlir_cəmi AS, SUM(xərc_cəm) nəticə_cəmi AS
COUNT(*) N, b.id, b.məhsul_id, b.miqdar, b.qiymət kimi SEÇİN
Sorğu Q053. Satış məbləğinə görə məhsullar arasında ilk beşlik göstərilir. İlk beş qeydin çıxışı TOP təlimatından istifadə etməklə həyata keçirilir:
TOP 5, məhsul_id, cəm(məbləğ*qiymət) cəm kimi SEÇİN
Sorğu Q054. Satışların həcminə görə məhsullar arasında ilk beşlik göstərilir və nəticədə sətirlər nömrələnir:
COUNT(*) N, b.məhsul_id, b.summa kimi SEÇİN
Sorğu Q055. Aşağıdakı SQL sorğusu MS Access SQL-də COS, SIN, TAN, SQRT, ^ və ABS riyazi funksiyalarının istifadəsini göstərir:
SEÇ (m_income-dən say(*) seçin) N kimi, 3.1415926 pi, k,
YENİLƏNİB m_gəlir SET qiyməti = qiymət*1.1
U002 sorğusu. Aşağıdakı SQL yeniləmə sorğusu m_income cədvəlindəki bütün məhsulların kəmiyyətini adları "Kərə yağı" sözü ilə başlayan 22 vahid artırır:
YENİLƏNİB m_gəlir SET məbləği = məbləğ+22
U003 sorğusu. m_outcome cədvəlində aşağıdakı SQL dəyişiklik sorğusu OOO Sladkoe tərəfindən istehsal olunan bütün malların qiymətlərini 2 faiz azaldır:
YENİLƏNİB m_nəticə SET qiyməti = qiymət*0.98
SQL sorğusu SQL ifadələrindən istifadə etməklə yaradılmış sorğudur. SQL (Structured Query Language) sorğular yaratmaq və Microsoft Access verilənlər bazası kimi əlaqəli verilənlər bazalarını yeniləmək və idarə etmək üçün istifadə olunur.
İstifadəçi Sorğu Dizaynı görünüşündə sorğu yaratdıqda, Microsoft Access avtomatik olaraq ekvivalent SQL ifadəsini yaradır. Yalnız SQL rejimində edilə bilən bir sıra sorğular var. Təcrübəli proqramçılar tez-tez SQL-də ifadəni dərhal yazmağı sorğu yaratmaqdan daha asan tapırlar.
Konstruktorda sorğu növü:
Mürəkkəb hesablamalarla nəticə əldə etmək üçün ardıcıl olaraq bir neçə sorğu verməlisiniz. Aydındır ki, bu hərəkətlər istifadəçi müdaxiləsi olmadan avtomatik olaraq həyata keçirilməlidir.
Bunun üçün bir neçə ardıcıl yerinə yetirilən əmrlərdən ibarət makrolardan istifadə olunur.
Sorğularda hesablamalar, düsturlar yaratmaq və redaktə etmək bacarığı.
Sorğu sxemində göstərilən cədvəllərdən sahələr üçün istənilən hesablamaları təyin edə bilərsiniz.
Hesablamaları yerinə yetirmək üçün sorğuya əlavə hesablanmış sahələr əlavə etməlisiniz, onların dəyərləri digər sorğu sahələrinin dəyərlərinə əsasən hesablanır.
Yekun sorğular, qruplaşdırma, yekun funksiyalar.
Son sorğu rejimindən istifadə etməklə yaradılır - Xülasə sorğusu.
Bağlantı cədvəli də daxil olmaqla üç cədvəldən istifadə edilə bilər.
Bu halda, sorğunun istənilən yerindən (sağ siçan düyməsini) kontekst menyusuna zəng edə və "qrup əməliyyatları" funksiyasını seçə bilərsiniz.
Sorğu forması görünəcək yeni xətt Qruplaşdırma.
Cəmi funksiyalar: cəmləri hesablamaq istədiyimiz sahədə seçilmiş sahələrin bütün dəyərlərini yekunlaşdırmaq üçün siyahıdan "Cəmi" funksiyasını seçin. Count funksiyası sahə dəyərlərinin sayını hesablayacaq. microsoft məlumat redaktəsi
Sorğu hər hansı məlumat əməliyyatlarını yerinə yetirmək üçün DBMS-ə edilən çağırışdır: ümumi həcmdən məlumatların bir hissəsini seçmək, hesablanmış sahələri əlavə etmək, məlumatların kütləvi şəkildə dəyişdirilməsi və s.
Müraciətdə siz:
Müraciət növləri:
Sorğular formalar və hesabatlar üçün qeyd mənbələri kimi istifadə olunur. Əksər hallarda, həm formalarda, həm də hesabatlarda, verməzdən əvvəl bəzi şərtlərə uyğun olaraq məlumatların bir hissəsini seçmək və məlumatları çeşidləmək lazımdır. Bu istəklərlə edilir. Sorğu ayrıca saxlanıla və ya forma və ya hesabatla əlaqələndirilə bilər.
Microsoft Access-də bir neçə növ sorğu var.