SQL əsasları

DDL, DML və JOIN'lar haqqında məlumat əldə edin

Strukturlaşdırılmış Sorgu dili müasir məlumat bazası arxitekturasının əsas quruluşu bloklarından biridir. SQL bütün əsas platformalarda relational veritabanlarını yaratmaq və idarə etmək üçün istifadə olunan metodları müəyyən edir. Birinci baxışda dil qorxuducu və mürəkkəb görünə bilər, ancaq bu çətin deyil.

SQL arxasındakı əsaslara bu giriş verilənlər bazalarını yaratmaq və dəyişdirmək üçün istifadə olunan əsas əmrlərdən birində qısaca nəzər salır.

SQL haqqında

SQL-in düzgün tələffüzü verilənlər bazası cəmiyyətində mübahisəli məsələdir. SQL standartında, Amerika Milli Standartları İnstitutu rəsmi tələffüz "es queue el" olduğunu elan etdi. Lakin, bir çox verilənlər bazası işçiləri "sonradan" sözcük tələsinə çatıblar. Seçim sənindir.

SQL çox tatlarla gəlir. Oracle verilənlər bazaları özəl PL / SQL istifadə edir. Microsoft SQL Server, Transact-SQL istifadə edir. Bütün varyasyonlar ANSI SQL standartlarına əsaslanır. Bu giriş hər hansı bir müasir relational database sistemi üzərində işləyən ANSI uyğun SQL əmrlərindən istifadə edir.

DDL və DML

SQL əmrləri iki əsas alt dilə bölünə bilər. Məlumatın Təsviri Dil (DDL) verilənlər bazası və verilənlər bazası obyektlərini yaratmaq və məhv etmək üçün istifadə olunan əmrləri ehtiva edir. Verilənlər bazası strukturu DDL ilə müəyyən edildikdən sonra verilənlər bazası administratorları və istifadəçilər, daxil olan məlumatları daxil etmək, əldə etmək və dəyişmək üçün Data Manipulyasiya Dilini (DML) istifadə edə bilər.

Məlumatların Təsviri Dil Komutları

Məlumatların Təsviri Dil veritabanları və verilənlər bazası obyektlərini yaratmaq və məhv etmək üçün istifadə olunur. Bu əmrlər əsasən verilənlər bazası layihəsinin qurulması və aradan qaldırılması mərhələləri zamanı verilənlər bazası administratorları tərəfindən istifadə olunur. Burada dörd əsas DDL əmrinin quruluşu və istifadəsinə bir nəzər var:

CREATE. Bir verilənlər bazası idarəetmə sisteminin bir kompüterə qurulması, bir çox müstəqil verilənlər bazası yaratmaq və idarə etməyə imkan verir. Məsələn, satış departmanınız üçün müştəri əlaqə məlumat bazasını və HR bölməmizin personal məlumat bazasını saxlamaq isteyebilirsiniz. CREATE əmri, bu verilənlər bazalarınızın hər birini platformada qurmaq üçün istifadə olunur. Məsələn, əmr:

DATABASE işçilərini yaradın

DBMS-də "işçilər" adlı boş bir məlumat bazası yaradır. Verilənlər bazasını yaratdıqdan sonra növbəti addım məlumatları olan masalar yaratmaqdır. Bu məqsəd üçün CREATE əmrinin bir variantını istifadə edə bilərsiniz. Komanda:

CREATE TABLE personal_info (first_name char (20) not null, last_name char (20) null, employee_id int null)

cari veritabanında "personal_info" adlı bir masa yaradır. Məsələn, cədvəldə üç əsas xüsusiyyət var: first_name, last_name və employee_id bir sıra əlavə məlumatlar.

Istifadə edin. USE əmri, DBMS daxilində işləmək istədiyiniz verilənlər bazasını müəyyən etməyə imkan verir. Hal-hazırda satış bazasında işləyən və işçilərin məlumat bazasını təsir edəcək bəzi əmrlər vermək istəsəniz, onları aşağıdakı SQL əmri ilə açın:

İstifadəçi işçiləri

Verilən məlumatları manipulyasiya edən SQL əmrlərini verməzdən əvvəl həmişə işləyən məlumat bazasının şüurlu olması vacibdir.

ALTER. Bir verilənlər bazasında bir masa yaratdıqdan sonra onun tərifini dəyişdirmək istəyə bilərsiniz. ALTER komandası silmək və yenidən yaratmadan bir masanın strukturunda dəyişiklik etməyə imkan verir. Aşağıdakı əmrə nəzər salın:

ALTER TABLE personal_info Əmək haqqı nağd əlavə et

Bu nümunə personal_info masasına yeni bir xüsusiyyət əlavə edir - işçinin əmək haqqı. "Pul" mübahisəsi göstərir ki, işçinin əmək haqqı bir dollar və sent formatı ilə saxlanılır. Nəhayət, "null" söz veritabanına bu sahənin hər hansı bir işçi üçün heç bir dəyər verməməsi üçün yaxşı olduğunu bildirir.

DAMCI. Data Definition Language, DROP-nun son əmri, bütün verilənlər bazası obyektlərini DBMS-dən çıxarmamıza imkan verir. Məsələn, yaratdığımız personal_info masasını qalıcı olaraq aradan qaldırmaq üçün aşağıdakı əmrləri istifadə edəcəyik:

DROP TABLE personal_info

Eynilə, aşağıdakı əmr bütün işçilərin məlumat bazasını çıxarmaq üçün istifadə olunacaq:

DROP DATABASE işçiləri

Bu komandanı diqqətlə istifadə edin. DROP əmri bütün verilənlər strukturlarını bazadan çıxarır. Fərdi qeydləri silmək istəsəniz, Data Manipulation Dilinin DELETE əmrini istifadə edin.

Data Manipulation Dil Komutları

Data Manipulation Language (DML) verilənlər bazası məlumatlarını almaq, daxil etmək və dəyişdirmək üçün istifadə olunur. Bu əmrlər verilənlər bazasının müntəzəm istismarı zamanı bütün verilənlər bazası istifadəçiləri tərəfindən istifadə olunur.

INSERT. SQL-də INSERT əmri mövcud cədvəldə qeydlər əlavə etmək üçün istifadə olunur. Əvvəlki bölmədən şəxsi_info nümunəsinə qayıtsaq, HR şöbümüzün məlumat bazasına yeni bir işçi əlavə etməsi lazım olduğunu düşünün. Buna oxşar bir əmr istifadə edə bilərsiniz:

Personal_info dəyərlərinə INSERT ('bart', 'simpson', 12345, $ 45000)

Qeyd üçün qeyd olunan dörd dəyər var. Bunlar cədvəl xüsusiyyətlərinə aiddir: first_name, last_name, employee_id və əmək haqqı.

SEÇİM. SELECT əmri, SQL-də ən çox istifadə edilən əmrdir. Verilənlər bazasının istifadəçiləri istədikləri məlumatları əməliyyat bazasından əldə etməyə imkan verir. Bir neçə nümunəyə nəzər salın, yenidən işəgötürənlər bazasından personal_info masasını istifadə edin.

Aşağıda göstərilən əmr şəxsi_info masasında olan bütün məlumatları alır. Yulduzda SQL-də bir joker kimi istifadə edildiyini unutmayın. Bu sözün anlamı "Hər şeyi şəxsi_info masasından seçin" deməkdir.

SEÇİN * FROM personal_info

Alternativ olaraq, istifadəçilər verilənlər bazasından alınan xüsusiyyətləri məhdudlaşdırmaq istəyirlər. Məsələn, İnsan Resursları departamenti şirkətdəki bütün işçilərin son adlarının siyahısını tələb edə bilər. Aşağıdakı SQL əmri yalnız bu məlumatları alacaq:

Personal_info FROM last_name SELECT

WHERE bəndində müəyyən meyarlara cavab verən qeydlərə məhdudlaşdırmaq üçün istifadə edilə bilər. CEO bütün yüksək ödənişli işçilərin kadr qeydlərini nəzərdən keçirməkdə maraqlı ola bilər. Aşağıdakı əmr personal_info-da olan bütün məlumatları $ 50,000-dən çox əmək haqqı olan qeydlər üçün alır:

SEÇİC * FROM personal_info ÜCRETİ Harada $ 50000

ƏLAVƏ OLUNUB. UPDATE komandası kütləvi şəkildə və ya fərdi olaraq bir cədvəldə olan məlumatı dəyişdirmək üçün istifadə edilə bilər. Şirkət bütün işçilərə maaşlarının illik 3% artımını verir. Aşağıdakı SQL əmri bu məlumat bazasında saxlanan bütün işçilərə tez tətbiq etmək üçün istifadə edilə bilər:

Personal_info SET'i yeniləyin = maaş * 1.03

Yeni işləyən Bart Simpson vəzifə çağırışının üstündən və kənarında performans nümayiş etdirdikdə rəhbərlik, onun mükəmməl nailiyyətlərini 5 min dollar artırmağı xahiş edir. WHERE bəndində Bartın bu yüksəlişə görə ayrılması üçün istifadə edilə bilər:

Personal_info SET'i yeniləyin = maaş + $ 5000 WHERE employee_id = 12345

DELETE. Nəhayət, DELETE əmrinə nəzər salaq. Bu komutun sintaksisinin digər DML əmrlərinə oxşar olduğunu görəcəksiniz. Təəssüf ki, bizim son korporativ mənfəət hesabatı gözləntiləri kifayət qədər yerinə yetirməyib və yoxsul Bart buraxıldı. DELETE əmrini WHERE bəndində qeyd etmək üçün istifadə edilə bilər ki, onun qeydini personal_info masasından çıxarmaq olar:

Personal_info'dan silin employee_id = 12345

YOİRLƏR

İndi SQL-nin əsaslarını öyrəndiniz, dilin təqdim etdiyi ən güclü anlayışlardan birinə - JOIN ifadəsinə keçmək vaxtıdır. A JOIN ifadəsi böyük miqdarda məlumatların effektiv şəkildə işlənməsi üçün bir çox masalarda məlumatları birləşdirməyə imkan verir. Bu bəyanatlar bir verilənlər bazasının əsl gücünün olduğu yerdir.

Verilən məlumatları iki cədvəldə birləşdirmək üçün əsas JOIN əməliyyatının istifadəsini araşdırmaq üçün PERSONAL_INFO cədvəlini istifadə edərək nümunə ilə davam edin və qarışığa əlavə bir masa əlavə edin. Aşağıdakı ifadəsi ilə yaradılmış DISCIPLINARY_ACTION adlı bir masa var:

CREATE TABLE disciplinary_action (fəaliyyət_id int null, employee_id int null, comments char (500))

Bu cədvəl şirkətin işçilərinə intizam tədbirlərinin nəticələrini ehtiva edir. İşçilərin sayından başqa işçi haqqında heç bir məlumatı olmadığını görəcəksiniz. DISCIPLINARY_ACTION və PERSONAL_INFO cədvəllərindən məlumatları birləşdirmək istədiyiniz bir çox ssenariləri təsəvvür etmək asandır.

40.000 ABŞ dollarından daha çox əmək haqqı olan bütün işçilərə qarşı intizam tənbehi siyahıları verən bir hesabat yaratmaqla vəzifələndirildiniz. Bu vəziyyətdə bir JOIN əməliyyatının istifadəsi sadədir. Aşağıdakı əmri istifadə edərək, bu məlumatları ala bilərik:

Personal_info.first_name, personal_info.last_name, disiplinar_aktivlər SEÇİN personal_info, disiplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

Kod, FROM bəndinə qoşulmaq istəyirik ki, iki cədvəlləri müəyyənləşdirir və nəticədə, nəticəni 40 min ABŞ dollarından daha çox əmək haqqı göstəricilərinə uyğunlaşdıraraq və əmək haqqı kriteriyalarına cavab verən qeydlərə məhdudlaşdırmaq üçün WHERE bəndində bir bəyanat daxildir.