CodeGym /Kurslar /SQL SELF /Məlumatların filtrlenməsi müqayisə operatorları (=, >,...

Məlumatların filtrlenməsi müqayisə operatorları (=, >, <, <>) ilə

SQL SELF
Səviyyə , Dərs
Mövcuddur

Deməli, artıq bilirik ki, SELECT komandasını necə istifadə etmək olar. Yəni, ən azından bazadan məlumat çıxarmağı, lazım olan sütunları seçməyi və xam məlumatları faydalı informasiyaya çevirməyə başlayan sorğular yazmağı öyrəndik. İndi isə magik palitramıza bir az "filtr" əlavə edək. Bəli, bu gün məlumatların filtrlenməsi haqqında danışacağıq və burada belə müqayisə operatorlarından istifadə edəcəyik: =, >, <<>.

Böyük cədvəllərlə işləyəndə, çox güman ki, bütün məlumatlara baxmaq istəmirsən (ancaq xaosa qərq olmaq istəyirsənsə başqa məsələ). Yalnız lazım olan sətirləri seçmək üçün SQL-də WHERE açar sözü istifadə olunur. Bu, hər bir sətrin nəticəyə düşməsi üçün hansı şərtlərə cavab verməli olduğunu göstərməyə imkan verir. Və bu şərtlər üçün müqayisə operatorları istifadə olunur.

WHERE ilə filtrasiya sintaksisi

SELECT kolonka1, kolonka2
FROM cədvəl
WHERE şərt;

Sadə struktur: FROM ilə cədvəli göstərdikdən sonra WHERE sözünü əlavə edirik və konkret şərt yazırıq, hansı ki, sətirlər ona uyğun olmalıdır.

Məsələn, students cədvəlindən məlumat çıxarmağa baxaq:

SELECT name, age
FROM students
WHERE age > 18;

Bu sorğu yalnız yaşı 18-dən böyük olan tələbələri (ad və yaş) seçir. Hər şey sadədir, hə? İndi isə müqayisə operatorlarının dünyasına baş vuraq.

Əsas müqayisə operatorları

SQL-də bir neçə müqayisə operatoru var ki, məlumatları istədiyin kimi filtr etməyə kömək edir. Əslində bunları riyaziyyatdan bilirsən, amma bir az dəqiqləşdirmək lazımdır. Ən çox istifadə olunanların siyahısı belədir:

  1. = — Bərabərdir.
  2. <> — Bərabər deyil (alternativ: bəzi DBMS-lərdə !=, amma <> istifadə etmək daha yaxşıdır, çünki bu SQL standartıdır).
  3. > — Böyükdür.
  4. < — Kiçikdir.
  5. >= — Böyük və ya bərabərdir.
  6. <= — Kiçik və ya bərabərdir.

Müqayisə operatorları cədvəli

Operator Məna Nümunə Nəticə
= Bərabərdir age = 20 Yaşı 20 olan sətirləri qaytarır
<> Bərabər deyil age <> 20 Yaşı 20-ə bərabər olmayan sətirləri qaytarır
> Böyükdür age > 18 Yaşı 18-dən böyük olan sətirləri qaytarır
< Kiçikdir age < 18 Yaşı 18-dən kiçik olan sətirləri qaytarır
>= Böyük və ya bərabərdir age >= 18 Yaşı 18 və ya böyük olan sətirləri qaytarır
<= Kiçik və ya bərabərdir age <= 18 Yaşı 18 və ya kiçik olan sətirləri qaytarır

Müqayisə operatorlarının istifadə nümunələri

Nümunə 1: 20 yaşdan böyük tələbələri çıxarmaq

Bizim cədvəl belədir:

id name age
1 Alex Lin 22
2 Anna Song 19
3 Otto Art 21
SELECT name, age
FROM students
WHERE age > 20;

Burada age > 20 şərtini qoyuruq ki, yalnız yaşı 20-dən çox olan tələbələr seçilsin. Əgər cədvəldə yaşı 19 olan tələbə varsa, təəssüf, nəticəyə düşməyəcək.

Bizim halda nəticə belə olacaq:

name age
Alex Lin 22
Otto Art 21

Anna Song seçimə düşmədi, çünki onun yaşı cəmi 19-dur.

Nümunə 2: Maaşı ən azı 50 000 olan işçiləri çıxarmaq

Bizim employees cədvəlimiz belədir:

first_name last_name salary
Julia Kim 48000
Marcus Lee 52000
Anya Patel 50000
Ethan Zhou 61000

SQL-sorğumuz belədir:

SELECT first_name, last_name, salary
FROM employees
WHERE salary >= 50000;

Bu sorğu maaşı bərabər 50 000 və ya daha çox olan bütün işçiləri qaytarır. Bərabərlik də keçərlidir!

first_name last_name salary
Marcus Lee 52000
Anya Patel 50000
Ethan Zhou 61000

Nümunə 3: Qiyməti 100-dən az olan məhsulları çıxarmaq

product_name price
USB Cable 85
Wireless Mouse 150
Notebook 60
Mechanical Pencil 45
SELECT product_name, price
FROM products
WHERE price < 100;

Əgər sənin elektron mağazan varsa, bu sorğu ilə qiyməti 100-dən az olan bütün məhsulları seçə bilərsən (məsələn, "Hamısı 99-a!" aksiyası üçün).

product_name price
USB Cable 85
Notebook 60
Mechanical Pencil 45

Nümunə 4: Müəyyən id-yə sahib istifadəçiləri istisna etmək

SELECT id, username
FROM users
WHERE id <> 1;

Bu sorğu id-si 1 olan istifadəçidən başqa bütün istifadəçiləri seçir. <> operatoru "mənə bu dəyərə bərabər olmayanları ver" deməkdir.

users cədvəli:

id username
1 admin
2 elena.gray
3 tom.bishop
4 aria.noble

Sorğunun nəticəsi:

id username
2 elena.gray
3 tom.bishop
4 aria.noble

Müqayisə operatorları ilə filtrasiya zamanı tipik səhvlər

Filtrasiya ilə sorğular yazmağa yeni başlayanda, səhvlər tez-tez olur. Bax, ən çox rast gəlinən hallardan bir neçəsi:

Problem 1: Sütun adında səhv

Əgər sorğuda sütunun adını səhv yazsan, PostgreSQL səhv verəcək. Məsələn:

SELECT name, age
FROM students
WHERE ages > 18; -- Səhv: "ages" sütunu mövcud deyil

Sorğu yazmazdan əvvəl sütun adlarını dəqiq yoxla.

Problem 2: Müqayisə operatorunun səhv istifadəsi

Bəzən yeni başlayanlar operatorları səhv sala bilər. Məsələn:

SELECT name, age
FROM students
WHERE age => 18; -- Səhv: düzgün operator deyil

Düzgün sintaksis — >=, => yox.

Problem 3: Cədvəldə olmayan dəyərlərə görə filtrasiya

Əgər cədvəldə olmayan bir dəyərə görə sətirləri filtr edirsənsə, sorğu işləyəcək, amma nəticə boş olacaq. Məsələn:

SELECT name
FROM students
WHERE age = 999; -- Nəticə: 0 sətir

Bu sintaksis səhvi deyil, amma gözlədiyin məlumatı görməyəndə çaşdıra bilər.

Praktiki tətbiq

Müqayisə operatorları ilə məlumatların filtrlenməsi müxtəlif situasiyalarda istifadə olunur:

  • Məlumat analizi: məsələn, 10 000 rupi-dən çox xərcləyən bütün müştəriləri seçmək üçün.
  • Hesabatlar: orta maaşdan yüksək maaş alan işçiləri seçmək üçün.
  • Monitorinq: son bir ayda aktiv olmayan istifadəçiləri izləmək üçün.

SQL sənə böyük cədvəllərdən lazım olan məlumatı tez çıxarmağa imkan verir və müqayisə operatorları bu yolda ilk addımdır.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION