CodeGym /Kurslar /SQL SELF /SELECT-in əsas sintaksisi: sorğunun strukturu və komponen...

SELECT-in əsas sintaksisi: sorğunun strukturu və komponentləri

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

Deməli, artıq SELECT ilə tanış olmağa başlamışıq, SQL-də cədvəldən və ya bir neçə cədvəldən məlumat çıxarmaq üçün istifadə olunan komanda. Bunu belə təsəvvür et: sanki database üçün brauzerdəki F5 düyməsidir: "nə var, göstər". Sadə sorğu strukturu belə görünür:


        SELECT kolonka1, kolonka2, … kolonkaN
        FROM cedvel
        

Burada:

  • SELECT — sorğunun başladığı açar sözdür.
  • kolonka1, kolonka2, ... — hansı sütunlardan məlumat almaq istədiyini göstərən siyahıdır.
  • FROM cedvel — məlumatın çıxarıldığı cədvəli göstərir.

Gəlin bunu dərhal nümunələrlə hissələrə bölək!

SELECT komandasının əsas strukturu

Bütün sütunlardan seçim. Əgər sən bütün məlumatları cədvəldən görmək istəyirsənsə, ulduz * istifadə edə bilərsən. Məsələn, bizdə students cədvəli var:

id name age grade
1 Alex 17 A
2 Maria 19 B
3 Otto 21 C

Bu cədvəldən bütün məlumatları çıxarmaq üçün belə sorğu yazırsan:


        SELECT * FROM students
        

Və nəticədə belə bir sütun və sətir dəsti alırsan:

id name age grade
1 Alex 17 A
2 Maria 19 B
3 Otto 21 C

Yəni — bütün cədvəl, necə istəmisənsə elə də gəlir.

Konkret sütunların seçilməsi

Əlbəttə, çox vaxt sənə yalnız lazım olan sütunları seçmək lazımdır ki, artıq məlumatlar gəlməsin. Məsələn, sən adlarıyaşı bilmək istəyirsən. Onda belə sorğu yazırsan:


        SELECT name, age FROM students
        

Sorğunun nəticəsi belə olacaq:

name age
Alex 17
Maria 19
Otto 21

Fərqi hiss etdin? Yalnız lazım olan sütunları seçəndə sorğu həm daha sürətli, həm də daha səliqəli olur.

Sorğunun icra ardıcıllığı

SQL-sorğular bir az hiyləgərdir: biz SELECT yazırıq əvvəl, amma əslində ilk FROM hissəsi işlənir, sonra nəticə qaytarılır. Bu, arxa planda belə olur:

  1. FROM hissəsindəki cədvəl işlənir: server göstərilən cədvəli tapır.
  2. Sətirlərə şərtlər tətbiq olunur (əgər varsa): yalnız şərtlərə uyğun sətirlər seçilir.
  3. Göstərilən sütunlar seçilir: qalan sətirlərdən lazım olan məlumatlar çıxarılır.

Yəni belə komandada:


        SELECT name FROM students
        

Əvvəlcə server students cədvəlini tapacaq, sonra name sütununu oxuyacaq və yalnız bundan sonra nəticəni qaytaracaq.

Praktik nümunələr

Nümunə №1: Tələbələrin siyahısı.

Təsəvvür elə ki, sən universitetin adminisən və bütün tələbələrin adlarını bilmək istəyirsən. Sorğu belədir:

SELECT name
FROM students;

Nəticə:

name
Alex
Maria
Otto

Nümunə №2: Yaş və id əlavə edirik.

İndi sənə id, ad və yaş lazımdır. Sadəcə bir neçə sütun əlavə et:

SELECT name, age, id
FROM students;

Nəticə:

name age id
Alex 17 1
Maria 19 2
Otto 21 3

Nümunə №3: İfadələr əlavə edirik.

Tutaq ki, tələbələrin yetkinliyə çatmasına neçə il qaldığını bilmək istəyirsən.

Onda age əvəzinə 21-age yazırsan. Burada gözəllik üçün fərz etdik ki, yetkinlik 21 yaşda olur:

SELECT name, 21-age
FROM students;

Və nəticə belə olacaq:

name 21-age
Alex 4
Maria 2
Otto 0

İfadələr barədə daha ətraflı növbəti dərslərdə öyrənəcəksən. İndi isə gəlin bəzi tipik səhvlərə baxaq, bəziləriniz artıq rast gəlmisiniz.

SELECT istifadə edərkən tipik səhvlər

Cədvəl və sütun adlarında yazı səhvləri.

Ən çox rast gəlinən səhvlərdən biri — cədvəl və ya sütun adını səhv yazmaqdır.

Əgər database-də studentsz cədvəli yoxdursa, belə bir səhv alacaqsan:

SELECT name
FROM studentsz; -- Sehv: cedvel yoxdur!

Və ya sütunun adı name olduğu halda sən student_name yazsan, yenə səhv çıxacaq:

SELECT student_name -- Sehv: sutun yoxdur!
FROM students;

Çarə sadədir: həmişə cədvəl və sütun adlarını yoxla.

Sorğuda sintaksis səhvləri.

Başqa bir tipik səhv — sütunları yazanda vergül qoymağı unutmaqdır:

SELECT name age id -- Sehv: vergul yoxdur!
FROM students; 

Amma narahat olma. SELECT sorğusu sadəcə məlumat seçir. Belə sorğulardakı səhvlər database-dəki məlumatlara zərər verə bilməz. Amma məlumatı dəyişən sorğulara çatanda — bax onda səhvlər baha başa gələ bilər.

* əvəzinə konkret sütunlardan istifadə etməmək.

* istifadə edəndə BÜTÜN məlumatları çıxarırsan, hətta lazım olmayanları da. Bu, performansı azaldır və böyük cədvəllərdə problem yarada bilər. Həmişə yalnız həqiqətən lazım olan sütunları seç.

2
Tapşırıq
SQL SELF, səviyyə, dərs
Bağlanıb
Cədvəldən bütün məlumatların seçilməsi
Cədvəldən bütün məlumatların seçilməsi
2
Tapşırıq
SQL SELF, səviyyə, dərs
Bağlanıb
SQL-də konkret sütunların seçilməsi
SQL-də konkret sütunların seçilməsi
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION