Data Manipulasiya dili

Posted on 2024-02-12 00:49:37

Manual QA kursu üçün.

Böyük ehtimal məqalə o qədər də böyük olmayacaq. Ona görə inanıram məqaləni tamamlayan təcrübə üçün gətirdiyimiz nümunələr olacaq. DML-in əsas məntiqi verilənlər bazasında olan məlumatı idarə etməkdir. İdarə etmək deyərkən buraya məlumatı verilənlər bazasına əlavə etmək, orada onu yeniləmək, dəyişmək və silmək kimi əməliyyatlar nəzərdə tutulur. Adətən ingilis dilində bu əməliyyatlara CRUD deyilir, səbəb də Create, Read, Update və Delete ingilis sözlərinin ilk hərfləridir. Tərcümədə elə yuxarıda qeyd etdiyim əməliyyatlar olur.

DML — SQL (Structured Query Language) üçün əsas komponentlərdən biri sayılır. Burada DML əməliyyatlarını yerinə yetirən əmrlər biraz fərqli olsada eyni məqsədə qulluq edir:

İNSERT — yeni yazı daxil etmək,

SELECT — yazı vəya yazıları əldə etmək,

UPDATE — yazı vəya yazıları dəyişmək vəya yenilənəmək,

DELETE — yazı və yazıları silmək.

İNSERT Əmri.

INSERT deməyimizə baxmayaraq sintaksini analiz edək və yadda saxlayaq:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

Azərbaycan dilinə tərcümə etsəm belə olacaq table_name cədvəlinə (sütun1, sütun2, sütun3, …) növbəti dəyərləri əlavə et (value1, value2, value3, …); Sütun və sətirlərin sayı uyğun olamlıdır və ardıcıllığa əsasən sütun dəyərlər tutuzdurulacaq. Məqalədən yadınızdadırsa vəya youtube videomuzdan manual_qa verilənlər bazasında countries cadvəlimiz var. Hətta həmin cədvələ biz cədvəlləri əlavə etmək üçün INSERT INTO sorğusundan istifadə edirik. Təklif edirəm yeni bir ölkəni həmin cədvələ yenidən əlavə edək, təcrübə üçün özünüz bunu çox edə bilərsiniz:

INSERT INTO manual_qa.countries (name, short_code)
VALUES ("Tajkistan","TJ");

Verilənlər bazasında olmayan ölkələri, qısaldılmış kodları ilə birlikdə təcrübə üçün ayrı ayrı əlavə edə bilərsiniz. Yazıları əlavə etdikdən sonra biz həmin yazıları əldə etmək üçün növbəti DML əmrlərindən “SELECT” istifadə edəcəyik.

SELECT əmri.

“SELECT” əmri deyərdim tester tərəfindən ən çox istifadə edilən əmrlərdən biridir. Bunun vasitəsi ilə biz cədvəldən istədiyimiz məlumatları əldə edə bilirik. İlk öncə istəyirəm ümumi sintaksisinə baxaq:

SELECT column1, column2, ...
FROM table_name;

“SELECT” sözündən sonra hansı sütünların nəticələrini görmək istəyiriksə onları vergül ilə ayıraraq sadalayırıq. Sonra isə “FROM” sözünü qoyaraq məlumatı haradan, yəni hansı cədvəldən götürmək istədiyimizi qeyd edirik və nöqtə vergül ilə tamamlayırıq. Hal-hazırda bizim “countries” cədvəlimizdə 3 dənə sütün var: id, name, short_code. Deməli biz belə yazmalıyıq:

SELECT id, name, short_code FROM manual_qa.countries;

Beləliklə bizə bütün yazılar gələcək, cədvəlimizin bütün sütunları ilə. Burda belə bir məsələ var ki, biz hansı sütunlarımızın olduğunu bilmiyə bilərik, o zaman * işarəsini qeyd edərək bütün olan sütunların məlumatı əldə etmiş olacağıq. Necə deyərlər bir dəfə görmək daha yaxşıdır:

SELECT * FROM manual_qa.countries;
Burada fikirləşdim özünüzə tapşırıq kimi, ölkələrin ancaq adlarını ekrana çıxarmaq üçün sorğunu yaza bilərsiniz.

Hələlik SELECT əmri ilə bağlı bu qədər. “SELECT” haqqında ayrıca bir bütöv məqalə həsr edə bilərik.

UPDATE əmri.

“UPDATE” yeniləmək üçün istifadə olunan sorğudur və adətən heç testerlərə istifadə üçün icazə verilmir. Yəni verilənlər bazasının administratoru adətən testerlər üçün oxumaq icazəsini verirlər, hansıki “SELECT” sorğularını nəzərdə tutur. Uzun sözün qısası, gəlin sintaksisə baxaq və nümunələr gətirək:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

“UPDATE” sözündən sonra dəyişikliyi hansı cədvəldə edəcəyimizi qeyd edərək, “SET” sözünü yazırıq ki, hansı dəyişiklikləri edəcəyimizi göstərək. AMMA nəzərə alın ki, əgər şərtimizi verməsək bütün yazıları dəyişəcək bizim sorğumuz. Şərt vermək üçün “WHERE” açar sözündən istifadə edəcəyik. Misal yuxarıda “İNSERT” sorğusunda “Tajikistan” əvəzinə “Tajkistan” yazmışım, “i” hərfini unudaraq səhv yazmışdım. İndi onu düzəltmək üçün “UPDATE” soröusundan istifadə edəcəyik:

UPDATE manual_qa.countries SET name="Tajikistan" WHERE name="Tajkistan";

Şərtimizdə qeyd edirik ki, o yazılar ki, harada “name” bərabərdir “Tajkistan”a, yeniləməni et və “name” üçün dəyəri “Tajikistan” qoy.

Bəzi hallarda testerlərə həqiqətən də yeniləmə etməyə ehtiyac olur. Deyək ki, e-commerce bir saytı test edirsiniz və orada belə bir funksionallıq var ki, əgər məhsulun bitmə vaxtı çatıbsa adminə email vəya bildiriş getməlidir. Elə təsəvvür edək ki, nə GUİ (graphic user interface) istifadə etməklə bitmə tarixini dəyişmək olur, nə də ki, məhsulu əlavə edərkən bitmə tarixini bitmiş qoymaq olur. Deməli biz məhsulun bitmə tarixini gəlməsini ya gözləməliyik, ya da ki gedib verilənlər bazasından dəyişməliyik. Gözləmək efektiv olmayacaq, deməli gedək verilənlər bazasında “UPDATE” sorğusu ilə dəyişək. Yəni situasiyadan asılı olaraq, şirkət sizə DML əmrlərinə icazələrlə təmin edə bilər.

DELETE əmri.

“DELETE” sorğusu vasitəsi ilə biz yazıları silə bilərik. Bu sorğu bütöv yazını silir, yalnız dəyəri silmək üçün “UPDATE” istifadə edə bilərik. “DELETE” əmrinin də sintaksisinə baxaq və yadda saxlayaq:

DELETE FROM table_name WHERE condition;

Sorğu sadəcə yazını silir deyə şərt verərək hansı yazı silməyimizi istədiyimizi qeyd edirik. ƏKS HALDA bütün yazıları siləcək. Ona görə diqqətli olub, şərti qeyd etməyi unutmayaq. İndi təcrübə üçün hansı ölkəni istəyirsinizsə silə bilərsiniz. Misal kimi biz elə yenə “Tajikistan” adlı ölkəni cədvəlimizdən silmək üçün sorğu yazaq:

DELETE FROM manual_qa.countries WHERE name="Tajikistan";

Sorğu cədvəlimizdən şərtə uyğun gələn bütün yazıları siləcək və yenidən həmin dəyərlərdə yazılar əlavə etsək, yeni “id” ilə cədvələ əlavə olunacaq yeni yazılar.

QEYD: Ehtiyatlı olun: DELETE və UPDATE sorğusu ilə şərti verməsəniz, əməliyyat bütün yazılara atəsir edəcək. Fikir verdinizsə sorğularda cədvəlin adından qabaq hansı verilənlər bazasına aid olduğunu qeyd edirdim “manual_qa.countries”. Bunu sorğudan əvvəl use manual_qa; yazaraq işlətməklə, yalnız cədvəlin adını yazaraq da istifadə edə bilərsiniz. Misal:

use manual_qa;
SELECT * FROM countries;

Hələlik bu qədər, bizim məqalələri davamlı oxumaq üçün bizi izləyin və alqışlarınızı əsirgəməyin. Bizi kofe qonağı etmək üçün, buyurun. Bilirdiniz ki, bizim youtube kanalımız da var?

Testing — Manual QA — sahəsini mənimsəmək istəyənlər üçün Udemy platformasında Azərbaycan dilində kurs tətbiq etmişik. Nəzərdən keçirib endirimlə əldə etmək istəsəniz, əlaqə saxlayın.