SQL Harada: istifadə və nümunələr. Harada İstifadə Edildiyi və Nümunələr Verildiyi Yerlə Sadə Filtrləmə

Bir cədvəldən qeydlər alarkən, hansı qeydlərə ehtiyacımız olduğunu və hansının olmadığını müəyyən etmək üçün müəyyən şərtlər qoymaq demək olar ki, həmişə lazımdır. Və istifadə edərək təyin edilə bilən bu şərtlərdir SQL -də WHERE cümlələri... Sizi artıq onunla tanış etmişəm, amma bu yazıda sizi tanış etmək qərarına gəldim HARADA biraz daha yaxın.

İstifadə edərək sadə bir nümunə nümunəsi ilə başlayacağam SQL -də WHERE bəndləri:

SEÇİN * FOR tablodan WHERE count = 5

Qeydlər geri qaytarılacaq " saymaq"mənası var 5 ... İndi sorğunu çətinləşdirək:

Sayını seçin = 5 VƏ id olan cədvəldən * seçin< 100

Beləliklə, sahə ilə qeydlər " saymaq"mənası var 5 sahə " id"daha az əhəmiyyət kəsb edir 100 .

Əlbəttə ki, digər məntiqi əməliyyatlardan da istifadə edə bilərsiniz. Onların tam siyahı:

  • ! (inkar)
  • ()
  • OR (OR)
  • XOR (EKSKLÜZİV YA DA, bəzən də deyilir Montaj və ya, lakin bu ada əsasən mikroprosessor ədəbiyyatında rast gəlinir)

Çoxlu boolean operatorlardan istifadə nümunəsi:

* HARADA masadan seçin! (Id<= 120 AND (count=10 OR date > "10/11/1980"))

Bu, ilk baxışdan çox mürəkkəbdir SQL sorğusu... Bunu özünüz anlamağa çalışın.

Həmçinin SQL -də WHERE cümləsi ehtiva edə bilər KİMİ. KİMİ göstərilən sətrin müəyyən bir nümunəyə uyğun olub olmadığını müəyyən etməyə imkan verir. Bir az aydınlaşdırmaq üçün bir nümunə verəcəyəm:

"% Bəzi mətn%" kimi mətnin olduğu yerdən * seçin.

The SQL sorğusu geri dönəcək nəticə_kimi sahədəki qeydləri ehtiva edir " mətn"aşağıdakı mətni var:" bəzi mətn". Qeyd edək ki, bu bərabərlik testi deyil. Mətn böyük ola bilər, ancaq sətirdən ibarətdirsə:" bəzi mətn", sonra KİMİ geri dönəcək doğru.

Gəlin yazaq LIKE şablonu necə qurulub:

  • % - Sizinlə birlikdə istifadə etdiyimiz budur. Ən çox istifadə olunur və mənasını verir istənilən uzunluqdakı hər hansı bir tel... Əslində xətt " % bəzi mətn%"Deyirik ki, hər hansı bir uzunluqdakı hər hansı bir ip əvvəlcə gəlir" bəzi mətn"və sonra yenidən istənilən uzunluqdakı hər hansı bir simli. Mətn bu nümunəyə uyğun gəlirsə, geri qayıdın doğru, əks halda yalan.
  • tək bir xarakterdir. Bu şablondan istifadə etmək üçün aralıqları təyin etməlisiniz, məsələn, bu kimi: " bəzi%". Bu model ilk gələnin mənasını verəcək 1 xarakter (hər hansı bir xarakter aəvvəl z), Daha " bəziləri"və sonra istənilən uzunluqdakı hər hansı bir simli.
  • _ hər hansı bir xarakterdir.
  • [^] əksinədir. Məsələn, bu nümunəni verə bilərsiniz: " [^ az] bəzi_". Bu nümunə hər hansı bir xarakterin yalnız ilk olaraq gəldiyini bildirir YOX "a"və YOX "z". Sonrakı bir xətt olmalıdır" bəziləri"Ardınca yalnız bir xarakter gəlir.

Bilik və istifadə etmək bacarığı KİMİçox vacibdir, təcrübəmə güvən. Ən sadə LIKE istifadə edərək nümunə- bu Sayt axtarışı... Axı, məzmun verilənlər bazasındadır və yalnız axtarış sətirində göstərilən sətri ehtiva edən qeydləri çıxarmalısınız. Və sonra köməyə gəlir KİMİ... Axtarış bu saytda mənim tərəfimdən həyata keçirilir.

Bu məqalə çərçivəsində sizə bir sıra vəzifələrdəki məlumat uçotunun bir yığın kod parçasına çevriləcəyi şərti CASE ifadəsi haqqında məlumat verəcəyəm və bunun SQL sorğularında necə istifadə ediləcəyini söyləyəcəyəm.

Verilənlər bazanızı nə qədər yaxşı tərtib etsəniz də, şərtlərin əvəzedilməz olduğu problemlər həmişə olacaq. Məsələn, böyük ədədlər əvəzinə şifahi bir təsvir alın və ya məlumatların mövcudluğundan (olmamasından) asılı olaraq sətirə əlavə simvollar əlavə edin və ya fərqli nüanslardan asılı olaraq daha mürəkkəb bir nümunə olaraq girişi xüsusi qrup. Vəziyyətlər çoxdur.

Əsasən, at bu operatorən azı iki forma var fərqli əsaslar məlumatlar. Birinci seçim hər hansı bir proqramlaşdırma dilindən adi bir keçidə bənzəyir. İkincisi, boolean ifadələrdən asılıdır.

Bununla birlikdə, bu məqalə çərçivəsində ikinci variantı nəzərdən keçirəcəyəm, çünki CASE WHEN NULL (verilənlər bazasındakı null müəyyən bir dəyər deyil, buna görə də belə bir keçid ifadəsində istifadə edilə bilməz) kimi vəziyyətlərlə problemi yoxdur. ). Bundan əlavə, gündəlik həyatda vəzifələr ən çox ikinci seçim - məntiqi ifadələrlə hesablama ilə qarşılaşır. Buna görə dərhal öyrənmək və istifadə etməyə davam etmək daha yaxşıdır.

Ümumiyyətlə, belə təsvir olunur (sintaksis verilənlər bazasına görə dəyişə bilər):

CASE WHOL bool_expression1 SONRA dəyər1 ..... WHE bool_expressionNƏNCƏDƏN dəyər digər dəyər DİĞƏR SON

bool_expressionX bir boolean şərtdir

valueX, müvafiq boole şərti yerinə yetirildikdə əvəz olunacaq dəyərdir

valueElse, əvvəllər heç bir şərt yerinə yetirilmədikdə əvəz ediləcək dəyərdir.

Bu qədər kiçik bir köməkdən sonra gəlin praktikaya keçək.

Qeyd: Yeri gəlmişkən, bilmək lazımdır ki, adətən bu operator yalnız seçilmişdə deyil, həm də sahələrin istifadə oluna biləcəyi hər yerdə istifadə edilə bilər. Məsələn, cədvəllərə qoşularkən və ya qruplaşdırarkən (qruplaşdırarkən) süzgəcdən keçirərkən (malik olmaqla).

ŞƏRTLİ ŞƏRH VƏZİYƏ ... VAXT ... SONRA

Daha yaxşı başa düşmək üçün şərti operator VƏSƏ ... VAXTDA ... O zaman kiçik bir vəzifə təsəvvür edək. Tutaq ki, müştərilər və onların ümumi alış sayı haqqında məlumatları olan bir cədvəliniz var. Və vəzifə dinamik bir endirim yaratmaqdır. Əlbəttə ki, endirimi əl ilə təyin etmək olardı. Ancaq bir həddiniz var və həddlər sabitdir (məsələn: məbləğ 1000 -dən çoxdur, 2%endirim əldə edin və 5000 -dən çox - 5%alın) və bunu etmək üçün bu prosesi avtomatlaşdırmaq istərdiniz. səhvləri axtarmağa ehtiyac yoxdur və hər dəfə verilənlər bazasını qazanda (müştəri lazımi məbləği yığdı - endirim avtomatik olaraq ortaya çıxdı).

Üç müştəri olan şərti müştəri cədvəlini götürək. Məsələn, onlar kifayət qədər olacaq.

İndi tapşırığa əsasən avtomatik olaraq endirim verilməsi üçün bir neçə şərt qoyaq. Eyni zamanda, hər halda müştəriyə maksimum endirim veriləcəyinə inanırıq.

1. 1000 -dən 2% -ə qədər endirim

2. 5000 -dən 5% -ə qədər endirim

3. Məbləğ 10000 - 8% endirim

4. Sifarişlərin sayı 10 - 7% endirimlə

5. 20 - 8% endirimdən sifariş sayı

Gördüyünüz kimi, endirim iki faktordan asılıdır: məbləğ və miqdar. İndi gəlin onlardan endirim əsasında şərtlər yaratmağa çalışaq, yəni qaydalar əksinədir ki, sql sorğusunda istifadə olunsun. Aşağıdakıları alırıq:

1.2% - 1000 -dən 4999 -a qədər olan məbləğ və sifariş sayı 10 -dan azdır.

2.5% - 5000 -dən 9999 -a qədər olan məbləğ və sifariş sayı 10 -dan azdır.

3.7% - 10 -dan 19 -a qədər olan sifarişlərin sayı və 10.000 -dən azdır

4.8% - 20 -dən kəmiyyət və ya 10000 -dən başlayan məbləğ

İndi yalnız onu yazmaq qalır. Aşağıdakı sql sorğusunu əldə edək

Adı və digər məlumatları göstərin adı, order_count, total_sum seçin, - İndi isə CASE endirimini göstərin - İlk qayda 2% zaman c.total_sum> = 1000 və c.total_sum<= 4999 and c.order_count < 10 THEN 2 -- Второе правило 5% WHEN c.total_sum >= 5000 və c.total_sum<= 9999 and c.order_count < 10 THEN 5 -- Третье правило 7% WHEN c.total_sum < 10000 and c.order_count >= 10 və c.order_count<= 19 THEN 5 -- Четвертое правило 8% WHEN c.total_sum >= 10000 və ya c.order_count> = 20 THEN 5 - Heç bir qayda yerinə yetirilmir, buna görə endirim 0. ELSE 0 SON müştəridən endirim olaraq c

İcra nəticəsində aşağıdakı cədvəli alırıq:

Gördüyünüz kimi, iki müştəriyə 8 faiz, bir müştəriyə 2 faiz endirim edilib. Eyni zamanda, hər sifarişlə faiz avtomatik olaraq hesablanacaq və heç bir şeyi tənzimləməyinizə ehtiyac olmayacaq. Məsələn, Petyanın məbləği 5000 -ə qədər artarsa, endirimi avtomatik olaraq 5% -ə yüksələcək (ən azı, hələ də bir sıra sifarişlər olduğu üçün).

SQL Server WHERE bəndinin sintaksisini izah etmək çətindir, buna görə də bəzi nümunələrə baxaq.

WHERE maddəsini yalnız bir şərtlə necə istifadə edəcəyimizə baxaraq başlayacağıq.

İşçilərdən * HARADA SEÇİN first_name = "Jane";

Bu SQL Server WHERE bəndinin nümunəsində, nəticələrimizi filtrdən keçirmək üçün WHERE cümləsini istifadə etdik. işçilər masa. Yuxarıdakı SELECT ifadəsi bütün satırları işçilər olduğu cədvəl ilk_ad"Jane" dir. * SELECT -də istifadə edildiyinə görə işçilər cədvəl nəticə dəstində görünür.

Misal - AND şərtindən istifadə

AND şərti ilə WHERE cümləsini necə istifadə edəcəyimizə baxaq.

SEÇİN * FROM işçilərindən WHERE last_name = "Anderson" AND ажилтан_id> = 3000;

Bu SQL Server WHERE bənd nümunəsi, birdən çox şərti müəyyən etmək üçün WHERE cümləsini istifadə edir. Bu vəziyyətdə, bu SELECT ifadəsi hamısını qaytarmaq üçün AND şərtindən istifadə edir işçilər ki, var Soyad"Anderson" və işçi_kimiyyəti 3000 -dən çox və ya bərabərdir.

Misal - OR şərtindən istifadə

OR şərti ilə WHERE cümləsini necə istifadə edəcəyimizə baxaq.

SEÇİN işçi_kimi, soyad_adı, ad_adı FROM işçilərindən WHERE last_name = "Johnson" OR first_name = "Danielle";

Bu SQL Server WHERE bənd nümunəsi bir çox şərtləri müəyyən etmək üçün WHERE cümləsini istifadə edir, lakin AND şərtini istifadə etmək əvəzinə OR şərtini istifadə edir. Bu vəziyyətdə, bu SELECT ifadəsi hamısını qaytaracaq işçi_kimiyyəti, Soyadilk_ad dan dəyərlər işçilər olduğu cədvəl Soyad"Johnson" və ya ilk_ad"Danielle" dir.

Misal - AND & OR şərtlərinin birləşdirilməsi

AND & OR şərtlərini tək bir SQL ifadəsində birləşdirdiyimiz zaman WHERE cümləsini necə istifadə edəcəyimizə baxaq.

İşçiləri HARADAN SEÇİN * (dövlət = "Kaliforniya" VƏ soyadı = "Smith") YAXŞI (işçi_kimiyyəti = 82);

Bu SQL Server WHERE bənd nümunəsi bir çox şərtləri müəyyən etmək üçün WHERE cümləsini istifadə edir, lakin AND şərtini və ya OR şərtini birləşdirir. Bu nümunə hamısını qaytaracaq işçilər-da yaşayanlar dövlət"Kaliforniya" və kimin Soyad"Smith" olduğu kimi bütün işçiləri də işçi_kimiyyəti 82 -yə bərabərdir.

Parantezlər sıranı təyin edir VƏ və OR şərtləri qiymətləndirilir. Necə ki, Riyaziyyat dərsində əməliyyatlar sırasını öyrəndiniz!

Misal - Cədvəllərə qoşulma

Birdən çox cədvəli birləşdirdiyimiz zaman WHERE cümləsini necə istifadə edəcəyimizə baxaq.

İşçiləri SEÇİN.

Bu SQL Server WHERE bənd nümunəsi, çoxlu cədvəlləri bir SELECT ifadəsində birləşdirmək üçün WHERE cümləsini istifadə edir. Bu SELECT ifadəsi ilk_ad içində işçilər masa "Sarah" dır. Və işçi s və kontaktlarüzərində masalar birləşdirilir işçi_kimiyyəti etibarən işçilər masa və contact_id etibarən kontaktlar masa.

Gizli dönüşümlər SQL tətbiqlərində edilə bilər. Beləliklə, məsələn, növlərin dəyərlərini müqayisə edərkən və ya birləşdirərkən T-SQL-də kiçikint, kimi məlumatlar kiçikörtüylə yazmağa çevrilə bilər int... MS SQL Server -də açıq və gizli tip çevrilmə haqqında daha ətraflı məlumatı BOL -da tapa bilərsiniz.

Misal. Notbukların orta qiymətini "orta qiymət =" prefiksi ilə göstərin.
Bir sorğunu yerinə yetirməyə cəhd


Nəticədə lazım olanı əldə edirik:

nəticə verəcək 1926. Prinsipcə, hər şey düzgündür, çünki Nəticədə istədiyimizi əldə etdik - İL. Bununla birlikdə, arifmetik orta təxminən 1926.2381 olacaq. Burada qeyd etmək lazımdır ki, məcmu funksiyalar (funksiya istisna olmaqla) COUNT həmişə bir tam ədəd qaytaran) işlənən dəyərlərin məlumat tipini miras alır. Başlatılan sahə tamsayı olduğundan, kəsirli hissəsi atılan ortalamanı əldə etdik (qeyd - yuvarlaqlaşdırılmamışdır).
Nəticə ilə müəyyən bir dəqiqliklə maraqlanırıqsa, deyək ki, iki ondalık işarəyə qədər? Bir ifadə tətbiq etmək DÖKÜM ortalamaya yuxarıdakı səbəbdən heç nə verməyəcək. Həqiqətən,
Nəticə 1926.238095 -dir. Yenə də deyil. Səbəb, ortalamanı hesablayarkən gizli bir növ çevrilmənin həyata keçirilməsidir. Bir addım daha ataq:

Bunlar. tam ədəd arqumentinin həqiqi bir vahidlə vuraraq dəqiq bir rəqəm tipinə (TAM SAYI) çevrilməsini istifadə etdik, bundan sonra məcmu funksiyasının nəticəsinin açıq tipli çevrilməsini tətbiq etdik.

Oxşar tipli dönüşümlər funksiyadan istifadə etməklə həyata keçirilə bilər ÇEVİRMƏK:


Burada tarixin simli təsvirini yazmağa çeviririk Tarix vaxt və sonra formatlama nəticəsini göstərmək üçün tərs çevrilməni həyata keçirin. Stil göstərilmədiyi üçün standart dəyər (0 və ya 100) istifadə olunur. Nəticədə əldə edirik

Bütün mümkün arqument dəyərlərinin siyahısı üslub BOL -da baxmaq olar.

CASE ifadəsi

Bütün kompüter modellərinin siyahısını qiymətləri ilə birlikdə göstərmək istədiyinizi düşünün. Bu vəziyyətdə, model satışda deyilsə (PC cədvəlində deyilsə), qiymət əvəzinə "Mövcud deyil" yazısını göstərin.
İstifadə edərək qiymətləri olan bütün PC modellərinin siyahısını əldə edə bilərsiniz:

Fərqli məhsulu seçin.model, qiymət Məhsuldan SOL QATILIN pc
ON məhsul.model = c.model
WHERE product.type = "pc";

Nəticə dəstində itkin qiymət NULL dəyəri ilə əvəz olunacaq:
model qiymət
1121 850
1232 350
1232 400
1232 600
1233 600
1233 950
1233 980
1260 350
2111 SIFIR
2112 SIFIR

NULL dəyərləri əvəz etmək üçün istədiyiniz mətn, operatorundan istifadə edə bilərsiniz ƏDDİA:
Operator ƏDDİA göstərilən şərtlərdən asılı olaraq bir çox mümkün dəyərlərdən birini qaytarır. Bizim nümunəmizdə şərt NULL yoxlamaqdır. Bu şərt yerinə yetirildikdə "Stokda yoxdur" yazısı geri qaytarılır, əks halda ( BAŞQA) qiymət qaytarılır. Burada bir əsas məqam var. Operatorun nəticəsindən bəri SEÇİN həmişə bir cədvəldir, onda hər hansı bir sütunun bütün dəyərləri eyni məlumat tipinə malik olmalıdır (gizli tip çevrilməsini nəzərə alaraq). Buna görə də qiymətlə (rəqəmsal tip) birlikdə simvolik sabit çıxara bilmərik. Bu səbəbdən dəyər sahələrini simvolik təsvirlərə çevirmək üçün bir növ çevrilmə tətbiq olunur. Nəticədə əldə edirik
model qiymət
1121 850
1232 350
1232 400
1232 600
1233 600
1233 950
1233 980
1260 350
2111 Mövcud deyil
2112 Mövcud deyil

Operator ƏDDİA iki sintaktik qeyd formasından birində istifadə edilə bilər:

1 -ci forma
ƏDDİA<проверяемое выражение>
NƏ VAXT<сравниваемое выражение 1>
SONRA<возвращаемое значение 1>

NƏ VAXT<сравниваемое выражение N>
SONRA<возвращаемое значение N>
SON

2 -ci forma
ƏDDİA
NƏ VAXT<предикат 1>
SONRA<возвращаемое значение 1>

NƏ VAXT<предикат N>
SONRA<возвращаемое значение N>
SON

Bütün təkliflər NƏ VAXT eyni sintaktik formaya malik olmalıdır, yəni. birinci və ikinci formaları qarışdıra bilməzsiniz. İlk sintaktik forma istifadə edildikdə, şərt NƏ VAXT dəyərdən dərhal sonra razı qaldı test edilən ifadə bərabər olacaq ifadənin dəyəri cümlədə göstərilmişdir NƏ VAXT... İkinci sintaktik forma istifadə edildikdə, şərt NƏ VAXT kimi razı qaldı predikat TRUE dəyərini alır. Şərt təmin edildikdə, operator ƏDDİA müvafiq bənddə göstərilən dəyəri qaytarır SONRA... Şərtlərin heç biri yoxdursa NƏ VAXT uğursuz olarsa, cümlədə göstərilən dəyər istifadə ediləcək BAŞQA... Yoxluqla BAŞQA, NULL dəyəri qaytarılacaq. Bir neçə şərt yerinə yetirildikdə, təklifin dəyəri geri qaytarılacaqdır SONRA birincisi.
Yuxarıdakı nümunədə operatorun ikinci forması istifadə edilmişdir ƏDDİA.
Qeyd edək ki, NULL testi üçün standart operatorun daha qısa formasını təklif edir - COALESCE... Bu operator ixtiyari sayda parametrə malikdir və ilk NULL olmayan dəyəri qaytarır. İki parametr üçün COALESCE (A, B) ifadəsi aşağıdakı ifadəyə bərabərdir ƏDDİA:

VƏSİFƏ NULL OLMADIĞINDAN BAŞQA B SON

Operatordan istifadə edərkən yuxarıdakı nümunənin həlli COALESCE aşağıdakı kimi yenidən yazıla bilər:

Bir ifadənin ilk sintaktik formasından istifadə ƏDDİA aşağıda göstərilə bilər nümunə : Bütün mövcud PC modellərini qiymətlə göstərin. Ən bahalı və ən ucuz modelləri qeyd edin.

SEÇİN DISTINCT modeli, qiyməti,
CASE qiyməti VAXTINDA (SEX MAX (qiymət) kompüterdən) SONRA "Ən bahalı"
VAXTINDA (MİNİ (qiymət) kompüterdən) SONRA "Ən Ucuz"
Başqa "Orta qiymət" SON şərh
FROM pc ORDER BY qiymətinə görə;

Sorğunun yerinə yetirilməsi nəticəsində əldə edirik

model qiymət Şərh
1232 350 Ən ucuz
1260 350 Ən ucuz
1232 400 orta qiymət
1233 400 orta qiymət
1233 600 orta qiymət
1121 850 orta qiymət
1233 950 orta qiymət
1233 980 Ən əziz

Verilənlər bazası ilə işləmək üçün ən çox yayılmış proqramlaşdırma dillərindən biri SQL -dir. Dil quruluşları yalnız bir verilənlər bazası yaratmağa deyil, həm də məlumatları dəyişdirmək və ya seçmək üçün müxtəlif manipulyasiyalar həyata keçirməyə imkan verir.

Verilənlər bazasından məlumat seçmək üçün [cədvəl adı] quruluşundan [verilənlər bazası] seçin. Təcrübə göstərir ki, məlumat seçimi üçün sorğuların istifadəsinin 80% -ində müxtəlif şərtlər - parametrlər tətbiq etməlisiniz. Bunun üçün SQL-Where şərti dilə daxil edilir, sorğuya əlavə olaraq onun mürəkkəbliyi.

Where bəndinin tətbiqi yolları

Çox vaxt bir proqramçı, əsasən bir məlumat vermək üçün verilənlər bazasında saxlanılan məlumatları seçməlidir. Bunun üçün sadə bir sorğu yaratmaq kifayət olmaya bilər. Bir qayda olaraq, kifayət qədər çox ola biləcək müxtəlif şərtləri, nümunə parametrlərini nəzərə almaq və ya yoxlamaq lazımdır. verilənlərin müəyyən bir diapazonda olması və ya müəyyən bir cədvəldə olması.

SQL-Where konstruksiyası, məlumatların alınması şərtlərini müəyyən etmək və ya məlumatların seçmə və ya xarici cədvələ daxil olub-olmadığını yoxlamaq üçün istifadə edilə bilər.

Alınan Parametrlərin Harada Göstəriləcəyindən İstifadə Edin

Hesabat bazasından seçim üçün xüsusi parametrlər təyin etməlisinizsə, SQL-Where konstruksiyasının sintaksisi olduqca sadə şəkildə təşkil edilə bilər. Bunu etmək üçün aşağıdakı qaydaları istifadə edə bilərsiniz:

    Tikintidən Seç * istifadə edərək standart bir sorğu qurmalısınız.

    Birləşdirmə düyməsinin köməyi ilə seçimin hansı cədvəllərdən aparılacağını təyin edin.

    Harada tikinti istifadə edərək, seçim üçün parametrlərin siyahısını göstərin.

Bu cür sorğuların qurulması olduqca sadədir və hətta yeni başlayanlar üçün də çətinlik yaratmır.

Vəziyyəti yoxlamaq üçün Construct -dan istifadə

Proqramçıya yalnız bir cədvəldən məlumatları şərtlərə görə seçmək deyil, həm də fərqli bir planın bir və ya daha çox cədvəlinə daxil olmasını yoxlamaq vəzifəsi qoyulubsa, SQL-Harada tikintisi əvəzolunmaz olacaq.

Bu quruluşun sintaksisindən istifadə edərək, eyni şərtləri qura bilərsiniz, ancaq bir sıra xarici verilənlər bazası cədvəllərində seçilmiş satırların meydana gəlməsini yoxlayacaq daxili sorğularla.

Bir qayda olaraq, bu məqsədlər üçün, girişi yoxlamaq üçün lazım olan bütün məlumat dəstinin qeyd olunduğu müvəqqəti bir cədvəl formalaşdırılır.

Harada istifadə nümunələri

İndi nümunələr veriləcək Əvvəlcə təsəvvür edək ki, məlumatları olan iki cədvəl var - Tovar və TovarAmount. Birincisi, satılan məhsulun adlarını, qiymətini, satış tarixini və məhsulu alan müştərini ehtiva edir. İkincisi, malların mövcudluğunu, daha doğrusu, stokda olanı göstərir.

Müəyyən bir gün ərzində satılan bütün malları göstərəcək bir parametrə malik bir sorğu nümunəsi aşağıdakı xarakterli bir tikinti ola bilər:

Tovardan * seçin

Harada T_Date> = '12/01/2016' və T_Date<= ‘’12/07/1016 and T_PriceOut >0

Belə bir planın sorğusu, seçim şərtlərindən birinin göstərdiyi kimi dekabr ayının ilk yeddi günündə satılan məhsulların siyahısını, cədvəldəki məlumatları qaytaracaq: T_PriceOut> 0.

Stokda olan malların geri çəkilmə şərtini nəzərə alsaq, dizayn aşağıdakı planda olacaq:

Tovardan * seçin

T_Tovarın olduğu yer (TA_ Məbləği> 0 olan TA_Tovar seçin)

Harada bir çox yuva şərti ola bilər, amma qeyd etmək lazımdır ki, nə qədər çox şərt qoyulsa, sorğu o qədər uzun çəkəcək. Müvəqqəti masaların istifadəsinə səbəb olan budur. Bunlardan bir neçəsini yaratmaq və sonra içindəki məlumatları müqayisə etmək, bir neçə səviyyəli məlumatın təsdiqlənməsi ilə şərt qurmaqdan daha sürətlidir.