Sql-də yaratma əmri nə edir. SQL əmrləri. İnternetdə SQL-dən istifadə

Strukturlaşdırılmış Sorğu Dili 1970-ci illərin əvvəllərində IBM Korporasiyası tərəfindən hazırlanmışdır. 1986-cı ildə SQL ilk dəfə ANSI təşkilatları tərəfindən standartlaşdırıldı.

SQL verilənlər bazalarını idarə etmək üçün güclü, lakin sadə dildir. Demək olar ki, bütün müasir verilənlər bazaları tərəfindən dəstəklənir. SQL iki əmr alt dəstəsinə bölünür: DDL (Data Definition Language - verilənlərin təyin dili) və DML (Data Manipulation Language - verilənlərin emal dili). DDL əmrləri yeni verilənlər bazaları, cədvəllər və sütunlar yaratmaq üçün, DML əmrləri isə verilənləri oxumaq, yazmaq, çeşidləmək, filtrləmək, silmək üçün istifadə olunur.

Bu məqalə DML əmrlərinə daha yaxından nəzər salacaq, çünki onlar daha tez-tez istifadə olunur.

DDL əmrləri

CREATE - yeni cədvəllər, sütunlar və indekslər yaratmaq üçün istifadə olunur.

DROP - sütunları və indeksləri atmaq üçün istifadə olunur.

ALTER - cədvəllərə yeni sütunlar əlavə etmək və xüsusi sütunları dəyişdirmək üçün istifadə olunur.

DML əmrləri

SELECT verilənlər bazası cədvəlindən verilənlər toplusunu əldə etmək üçün istifadə edilən ən çox istifadə edilən əmrdir. SELECT əmri aşağıdakı sintaksisə malikdir:

SEÇİN sahə_siyahısı1 FROM masa_adı ]

Kvadrat mötərizənin içindəki operatorlar isteğe bağlıdır və şaquli sətir o deməkdir ki, göstərilən ifadələrdən biri olmalıdır, lakin hər ikisi deyil.

Məsələn, "dostlar" cədvəlinin "ad" və "telefon" sahələrindən məlumat almaq üçün sadə sorğu yaradaq:

SEÇİN ad, telefon FROM dostlar

Cədvəlin bütün sahələrini əldə etmək lazımdırsa, onları sadalamaq lazım deyil, sadəcə ulduz (*) qoyun:

SEÇİN * FROM dostlar

Çıxış siyahısından dublikat daxiletmələri istisna etmək üçün DISTINCT açar sözündən istifadə edin:

DİSTINCT SEÇİN ad FROM dostlar

Əgər tək qeyd almaq lazımdırsa, onda WHERE bəndindən istifadə olunur. Məsələn, "dostlar" cədvəlindən "Vasya Pupkin" telefon nömrəsini almalıyıq:

SEÇİN * FROM dostlar HARADA ad = "Vasya balqabaq"

və ya əksinə, 44-65-01 telefonunun kimə məxsus olduğunu öyrənməliyik:

SEÇİN * FROM dostlar HARADA telefon = "44-65-01"

Bundan əlavə, siz joker simvollardan istifadə edərək axtarış nümunələri yarada bilərsiniz. Bunun üçün LIKE operatorundan istifadə olunur. LIKE operatoru aşağıdakı əvəzetmə operatorlarına malikdir:

* - bir və ya bir neçə simvoldan ibarət sətirə uyğun gəlir;

İstənilən tək xarakterə uyğun gəlir;

Xüsusi dəstdən bir simvola uyğun gəlir;

Məsələn, "Vasya" sözünü ehtiva edən "ad" sahəsindən qeydlər almaq üçün sorğu belə görünəcək:

SEÇİN * FROM dostlar HARADA ad KİMİ "*Vasya*"

ORDER BY bəndi məlumatların qaytarılma sırasını müəyyən etmək üçün istifadə olunur. Bu operator olmadan qaytarılan məlumatların sırasını proqnozlaşdırmaq mümkün deyil. ASC və DESC açar sözləri sizə çeşidləmə istiqamətini təyin etməyə imkan verir. ASC - artan ardıcıllıqla, DESC - azalan sıra ilə çeşidləyir.

Məsələn, əlifba sırası ilə "ad" sahəsindən qeydlərin siyahısını almaq üçün sorğu belə görünür:

SEÇİN * FROM dostlar SİFARİŞ ad

Qeyd edək ki, ASC açar sözü standart olduğu üçün isteğe bağlıdır.

INSERT - bu əmr cədvələ yeni qeyd əlavə etmək üçün istifadə olunur. Aşağıdakı kimi yazılır:

DAXİL EDİN masa_adı DƏYƏRLƏR ( dəyər_siyahısı)

Qeyd edək ki, dəyərlər siyahısındakı dəyər növləri cədvəl sahələrinin dəyər növlərinə uyğun olmalıdır, məsələn:

DAXİL EDİN dostlar DƏYƏRLƏR ( "Anka Pulemyotçu", "32-09-81" )

Bu misalda, müəyyən edilmiş dəyərlərlə dostlar cədvəlinə yeni bir giriş əlavə olunur.

UPDATE - Bu əmr cədvəldəki məlumatları yeniləmək üçün istifadə olunur və ən çox WHERE bəndi ilə birlikdə istifadə olunur. UPDATE əmri aşağıdakı sintaksisə malikdir:

YENİLƏNİB masa_adı SET sahə_adı = məna

WHERE bəndini buraxsanız, cədvəlin bütün müəyyən edilmiş sahələrində məlumatlar yenilənəcək. Məsələn, Vasya Pupkunun telefon nömrəsini dəyişək:

YENİLƏNİB dostlar SET telefon = "55-55-55" HARADA ad = "Vasya balqabaq"

SİL - yəqin ki, artıq başa düşdüyünüz kimi, bu əmr cədvəldən qeydləri silmək üçün istifadə olunur. UPDATE kimi, DELETE əmri adətən WHERE bəndi ilə istifadə olunur, əgər bu ifadə buraxılıbsa, göstərilən cədvəldəki bütün məlumatlar silinəcək. DELETE əmrinin sintaksisi aşağıdakı kimidir:

SİLİN masa_adı

Məsələn, gəlin bu bezdirici Vasya Balqabağını masamızdan çıxaraq :) :

SİLİN dostlar HARADA ad = "Vasya balqabaq"

Son

Bu yazıda mən əsas SQL ifadələri haqqında danışdım, onlar verilənlər bazası ilə işləmək üçün kifayət qədərdir, qalan operatorlar haqqında, daha ətraflı, sizə başqa vaxt deyəcəyəm.

SQL (ˈɛsˈkjuˈɛl; ingilis dili strukturlaşdırılmış sorğu dili – “strukturlaşdırılmış sorğu dili”) relational verilənlər bazasında verilənləri yaratmaq, dəyişdirmək və idarə etmək üçün istifadə olunan deklarativ proqramlaşdırma dilidir.

Müxtəlif verilənlər bazalarının SQL standartlarına uyğunluq:

SQL (Structured Query Language - strukturlaşdırılmış sorğu dili). SQL, ilk növbədə, saxlanılan məlumatları təsvir etmək, saxlanılan məlumatları əldə etmək və məlumatların dəyişdirilməsi üçün informasiya-məntiqi bir dildir.

SQL proqramlaşdırma dili deyil. SQL mürəkkəbləşdikcə o, daha çox tətbiqi proqramlaşdırma dilinə çevrildi və istifadəçilər vizual sorğu qurucularından istifadə edə bildilər.

SQL hərflərə həssas olmayan bir dildir. SQL-də sətirlər tək dırnaqlar içərisindədir.

SQL dili operatorlar toplusudur. SQL ifadələri aşağıdakılara bölünür:

    verilənlərin tərifi ifadələri (Data Definition Language, DDL) - ANSI-də sxem təsviri dili, verilənlər bazasında obyektlər (cədvəllər, indekslər, görünüşlər və s.) yaradan əmrlərdən ibarətdir (CREATE, DROP, ALTER və s.).

    verilənlərin manipulyasiyası ifadələri (Data Manipulation Language, DML) istənilən vaxt cədvəllərdə hansı dəyərlərin təqdim olunduğunu müəyyən edən əmrlər toplusudur (INSERT, DELETE, SELECT, UPDATE və s.).

    verilənlərə girişin tərifi ifadələri (Data Control Language, DCL) - istifadəçiyə müəyyən hərəkətləri yerinə yetirməyə icazə verib-verməməyi təyin edən vasitələrdən ibarətdir (QİDİL / LƏĞV , LOCK / KİLİDİ ​​AÇMA).

    Transaction Control Language (TCL) ifadələri

Təəssüf ki, bu terminlər bütün tətbiqlərdə universal istifadə olunmur. Onlar ANSI ilə vurğulanır və konseptual səviyyədə faydalıdır, lakin əksər SQL proqramları çətin ki, onları ayrı-ayrılıqda aparır, ona görə də onlar mahiyyətcə SQL əmrlərinin funksional kateqoriyalarına çevrilirlər.

Bölməni SEÇİN QOŞULUN

    Sadə JOIN (=kesişmə JOIN =INNER JOIN) - hər iki cədvəlin yalnız ümumi qeydlərini göstərmək deməkdir. Qeydlərin necə paylaşılmış hesab edildiyi birləşmə ifadəsindəki sahələrlə müəyyən edilir. Məsələn, aşağıdakı giriş: FROM t1 JOIN t2 ON t1. id = t2. id

    o deməkdir ki, hər iki cədvəldə mövcud olan eyni id ilə qeydlər göstəriləcək.

    LEFT JOIN (və ya LEFT OUTER JOIN) sağ cədvəldə müvafiq qeydlərin olub-olmamasından asılı olmayaraq, sol cədvəldəki bütün qeydləri (qoşulma ifadəsində birinci olan) göstərmək deməkdir. Sağ cədvəldə heç bir qeyd yoxdursa, NULL təyin edilir.

    RIGHT JOIN (və ya RIGHT OUTER JOIN) LEFT JOIN-in əksidir - o, sağ (ikinci) cədvəldəki bütün qeydləri və yalnız sol (birinci) cədvəldən uyğun gələnləri göstərir.

    JOIN assosiasiyalarının digər növləri: MINUS - çıxma; FULL JOIN - tam birləşmə; CROSS JOIN - "Hər biri ilə" və ya Kartezyen məhsul əməliyyatı.

SEÇİN JOIN SUBSTRING INSERT INTO users_auth VALUES (defolt, "root" , MD5("root"));

    INSERT IGNORE Əgər IGNORE açar sözü INSERT ifadəsində çoxlu qiymətə malik sətirlərlə göstərilibsə, o zaman həmin cədvəldə təkrarlanan PRIMARY və ya UNİKAL açarları olan bütün sətirlər nəzərə alınmayacaq və daxil edilməyəcək. IGNORE təyin etməsəniz, bu daxiletmə əməliyyatı mövcud açarın dublikat dəyərinə malik cərgə aşkar edildikdə dayanır.

QİYMƏT DƏYƏRLƏRİNƏ İQNORE DAXİL EDİN(DEFULT, 1, 1111, "Fr", 50, 50, 1, 1)

REPLACE əmri INSERT-dən yalnız onunla fərqlənir ki, əgər cədvəldə indekslənmiş sahədə (unikal indeks) yeni qeydlə eyni qiymətə malik qeyd varsa, o zaman köhnə qeyd yenisi əlavə olunmazdan əvvəl silinir.

YENİLƏNİB< tablename>SET ( | ) .,. .< COLUMN name> = < VALUE expresslon>[ HARADA< predlcate>| CARİ HARADA< cursor name>(* yalnız yuva üçün* ) ] ; YENİLƏNİB həmyaşıdları SET zonası = "voip" ; # həmyaşıdlar cədvəlinin zona sütunundakı bütün sətirləri yeniləyin YENİLƏNİB stat SET whp= "13x13x13" HARADA id = 1 ; YENİLƏNİB ölkələr SET nm_ukr= ( SELECT del_countries. ukrayna FROM del_countries WHERE ölkələr. nm_en= del_countries. ingilis ) ;

WordPress istifadəsi, quraşdırma: wp_posts cədvəlində sətirdəki bütün hadisələri silin

YENİLƏNİB wp_posts SET post_content = DƏYİŞTİR (post_content, "" , "" );

SİLİN

[ HARADA | WHERE CURRENT OF (*yalnız daxiletmə*) ];

Həmyaşıdlarından SİLİN; // Peers cədvəlinin bütün məzmununu silin. FinR-DƏN SİLİN harada gün "20120415%" kimi; // ratesheet_id OLMADIĞINDA QİYMƏTLƏRDƏN SİLİN (tarif cədvəllərindən identifikatoru seçin);

DƏYİŞTİR

    Sütun üçün standart dəyərin dəyişdirilməsi. Sütun üçün yeni standart dəyər təyin etmək üçün bu kimi bir əmrdən istifadə edin: ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77 ; VEYA CƏDVƏLİ DƏYİŞTİRİN SÜTUN zonasını DEĞİŞTİRİN SET DEFAULT "voip" ;

    Qeyd edək ki, bu əmrin yerinə yetirilməsi cədvəldə artıq mövcud olan sətirlərə təsir göstərmir, əmr yalnız gələcək INSERT əmrləri üçün standart dəyəri dəyişəcək. İstənilən standart dəyəri silmək üçün istifadə edin

    ALTER TABLE məhsulları ALTER COLUMN qiyməti DROP DEFAULT ;

    Komanda standart dəyəri null olaraq təyin etməklə eyni şeyi edir. Defolt dəyərin silinməsi onu qeyri-müəyyən olaraq təyin etdiyi üçün, mövcud standart dəyər silinərsə, heç bir səhv mesajı olmayacaq.

    Sütun üçün standart dəyər kimi fəaliyyət göstərir. Bu halda, vaxt izləmə sütunu vaxt möhürü məlumat növünə aiddir, bu o deməkdir ki, onun üçün standart dəyər now() daxili funksiyasına təyin edilə bilər, yəni. yeni sətir əlavə edildikdə, cari tarix və vaxt sütununa yazılacaq ALTER TABLE timetracking ALTER COLUMN date_wd SET DEFAULT now();

    Məhdudiyyət əlavə etmək. Məhdudiyyət əlavə etmək üçün həmin məhdudiyyəti təyin etmək üçün cədvəl sintaksisi istifadə olunur. Məsələn: ALTER TABLE məhsulları ADD CHECK (ad ""); CƏDVƏL məhsulları DEĞİŞTİRİN MƏHDUD ƏLAVƏ EDİN bəzi_adlar UNİKAL(məhsul_no); CƏDVƏLİ məhsulları DEĞİŞTİRİN XARİCİ AÇAR ƏLAVƏ EDİN (product_group_id) İSTİFADƏLƏR məhsul_qrupları;

    Cədvəl məhdudiyyəti kimi yazıla bilməyən qeyri-null məhdudiyyət əlavə etmək üçün sintaksisdən istifadə edin:

    CƏDVƏL məhsulları ALTER SÜTUN ALTER product_no SET NOT NULL;

    Göstərilən məhdudiyyət dərhal tətbiq ediləcək, ona görə də məhdudiyyət əlavə edilməzdən əvvəl cədvəldəki məlumatlar məhdudiyyəti təmin etməlidir.

Aqreqasiya funksiyaları

Standart SQL-də 5 məcmu funksiya var:

    COUNT - funksiya müəyyən meyarlara uyğun gələn sətirlərin sayını qaytarır.,

    SUM - Müəyyən bir sütundakı dəyərlərin cəmini (cəmi) qaytarır. NULL dəyərləri olan sütun sətirləri SUM funksiyası tərəfindən nəzərə alınmır.

    AVG sütundakı orta qiymətdir,

Ümumi funksiyalar sorğunun SELECT bəndində sahə adları kimi istifadə olunur, bir istisna ilə: sahə adları arqument kimi istifadə olunur. SUM və AVG funksiyaları yalnız ədədi sahələrlə işləyə bilər. COUNT, MAX, MIN funksiyaları həm rəqəm, həm də simvol sahələri ilə işləyir. Simvol sahələrinə tətbiq edildikdə, MAX və MIN funksiyaları simvolların ASCII ekvivalentləri üzərində işləyə bilər.

Kitablardan [Kitabların Sayı] KİMİ SAYI(Books.ID) SEÇİN;

CROUP BY-dən istifadə qeydlər qruplarına ümumi funksiyaları tətbiq etməyə imkan verir.

[Yazıçı] TARAFINDAN Kitablar Qrupundan [Kitabların Sayı] KİMİ SAYI(Kitablar.İD) SEÇİN;

Baxışlar (VIEW)

Görünüş (VIEW) - sahibinin heç bir məlumatını ehtiva etməyən məlumat obyekti. Bu, sorğunun icrası ilə məzmunu digər cədvəllərdən seçilən cədvəl növüdür.

Əsas cədvəllər məlumatları ehtiva edən cədvəllərdir. Bununla belə, başqa cür cədvəllər var: - baxışlar (VIEW). Görünüşlər məzmunu digər cədvəllərdən seçilən və ya onlardan alınan cədvəllərdir. Onlar sorğularda və DML ifadələrində əsas cədvəllər kimi işləyirlər, lakin onların heç bir öz məlumatı yoxdur. Baxışlar, əslində əsas cədvəldə saxlanılan məlumatlara baxdığınız pəncərələrə bənzəyir.

    CREATE VIEW əmri. Görünüş CREATE VIEW əmri ilə yaradılır. O, CREATE VIEW (CREATE VIEW) sözlərindən, yaradılacaq görünüşün adından, AS (HOW) sözündən və sonra sorğudan ibarətdir. Gəlin Londonstaff görünüşünü yaradaq: CREATE VIEW Londonstaff AS SEÇİLƏN * FROM Salespeople WHERE city = "London";

    Bu görünüş hər hansı digər cədvəl kimi istifadə olunur. O, sorğulana, dəyişdirilə, daxil edilə, silinə və digər cədvəllər və görünüşlərlə əlaqələndirilə bilər. Sorğuya baxın.

    3.1 Ümumi

    Yuxarıda göstərilən RDM mexanizmləri verilənlərin manipulyasiya dillərinin əsasını təşkil etmişdir. Qeyd edək ki, RA və ya RI-nin hər hansı bir RDB dili üçün tam əsas kimi qəbul edilməsi olduqca nadirdir. Adətən dil cəbri və məntiqi konstruksiyaların bəzi qarışığına əsaslanır.

    Cədvəl məlumatların təqdim edilməsinə yönəlmiş əməliyyatlar konsepsiyasının həyata keçirilməsi kiçik cümlələr toplusu ilə kompakt bir dil yaratmağa imkan verdi - SQL. Bu dil sorğuları yerinə yetirmək üçün interaktiv dil və tətbiqi proqramların qurulması üçün daxili dil kimi istifadə edilə bilər.

    Müasir DBMS-də adətən verilənlər bazası ilə işləyərkən əsas istifadəçi interfeysini təmin etmək üçün müxtəlif alətləri ehtiva edən vahid inteqrasiya edilmiş SQL dili dəstəklənir. O, aşağıdakı komanda qruplarını ehtiva edir:

    1) cədvəlləri və indeksləri yaratmaq, dəyişdirmək, silmək, habelə verilənlər bazası sxemini müəyyən etmək üçün istifadə olunan verilənlərin təyin edilməsi əmrləri (Data Definition Commands);

    2) Verilənlərin dəyişdirilməsi (mövcud məlumatların redaktə edilməsi, qeydlərin əlavə edilməsi və silinməsi) üçün verilənlərin manipulyasiyası əmrləri;

    3) Mövcud verilənləri əldə etmək üçün Məlumat Sorğusu Komandaları;

    4) verilənlər bazasında dəyişikliklərin saxlanması və ya geri qaytarılması üçün əməliyyatlara nəzarət əmrləri (Transaction Control Commands);

    5) verilənlər bazasının bütövlüyünü yoxlamaq, verilənlərə daxil olmaq üçün imtiyazların verilməsi və ləğvi üçün verilənlərin idarə edilməsi əmrləri (Data Control Commands).

    Eyni zamanda, SQL hesablamaların və çevrilmələrin yerinə yetirilməsi, qeydlərin sifarişi və verilənlərin qruplaşdırılması kimi digər funksiyaları da təmin edir.

    SQL əmrlərinin özəlliyi ondan ibarətdir ki, onlar bu emal prosedurundan daha çox verilənlərin emalının yekun nəticəsinə diqqət yetirirlər. SQL özü verilənlərin harada yerləşdiyini, onların səmərəli icrası üçün hansı indekslərdən və əməliyyatların ardıcıllığından istifadə edilməli olduğunu müəyyən edir.

    Əsas SQL əmrlərinin sintaksisini nəzərdən keçirin. Materialı təqdim edərkən aşağıdakı qeydlərdən istifadə edəcəyik:

    – ulduz işarəsi (*) “hər şey” deməkdir və adi proqramlaşdırma mənasında istifadə olunur, yəni. “tərifi təmin edən bütün hallar”;

    – kvadrat mötərizələr () bu mötərizələrə daxil edilmiş konstruksiyaların isteğe bağlı olduğunu bildirir, yəni. buraxıla bilər;

    - qıvrımlı mötərizələr (()) bu mötərizələrə daxil edilmiş konstruksiyaların bütöv sintaktik vahidlər kimi qəbul edilməsini bildirir; bu mötərizələr SQL sintaksisində istifadə olunan adi mötərizələri əvəz edərək, sintaktik konstruksiyaların təhlili qaydasını dəqiqləşdirməyə imkan verir;

    – ellips (...) birbaşa əvvəlki sintaktik vahidin isteğe bağlı olaraq bir və ya bir neçə dəfə təkrarlana biləcəyini göstərir;

    – düz xətt (|) iki və ya daha çox variantın seçiminin olduğunu bildirir; məsələn, tikinti [term_1 | termin_2] o deməkdir ki, iki termindən biri (ya term_1 və ya termin_2) seçilə bilər; termin_1 defolt olaraq seçilir; bütün bu strukturun olmaması termin_1 seçimi kimi qəbul ediləcək;

    – nöqtəli vergül (;) SQL ifadələrinin son elementi; bu işarə hər əmrdən sonra olmalıdır;

    – siyahı elementlərini ayırmaq üçün vergüldən (,) istifadə olunur;

    – SQL cümlələrinin istənilən sintaktik konstruksiyaları arasında aydınlığı artırmaq üçün boşluqlar () daxil edilə bilər;

    – SQL dili konstruksiyalarının yazılması üçün böyük latın hərfləri və simvollarından istifadə edilir və dəyişməz yazılmalıdır;

    – istifadəçi tərəfindən seçilmiş xüsusi qiymətlərlə əvəz edilməli olan konstruksiyaların yazılması üçün kiçik hərflərdən istifadə edilir və müəyyənlik üçün bu konstruksiyaların ayrı-ayrı sözləri bir-birinə alt xətt (_) ilə əlaqələndirilir;

    SQL və ya Strukturlaşdırılmış Sorğu Dili (strukturlaşdırılmış sorğu dili) əlaqəli verilənlər bazası sistemində (RDBMS) məlumatları idarə etmək üçün nəzərdə tutulmuşdur. Bu məqalədə hər bir proqramçının bilməli olduğu ümumi istifadə edilən SQL əmrləri əhatə olunacaq. Bu material iş müsahibəsindən əvvəl SQL biliklərini təzələmək istəyənlər üçün idealdır. Bunu etmək üçün məqalədə verilmiş nümunələri təhlil edin və verilənlər bazalarını cüt-cüt keçdiyinizi unutmayın.

    Qeyd edək ki, bəzi verilənlər bazası sistemləri hər ifadənin sonunda nöqtəli vergül tələb edir. Nöqtəli vergül SQL-də hər bir ifadənin sonuna standart göstəricidir. Nümunələr MySQL-dən istifadə edir, buna görə də nöqtəli vergül tələb olunur.

    Nümunə verilənlər bazası quraşdırma

    Əmrlərin necə işlədiyini göstərmək üçün verilənlər bazası yaradın. İşləmək üçün iki fayl yükləməlisiniz: DLL.sql və InsertStatements.sql . Bundan sonra, bir terminal açın və MySQL konsoluna aşağıdakı əmrlə daxil olun (məqalədə MySQL-in artıq sistemdə quraşdırıldığı güman edilir):

    MySQL -u root -s

    Sonra parolu daxil edin.

    Aşağıdakı əmri yerinə yetirin. Verilənlər bazasını “universitet” adlandıraq:

    MƏLUMAT BAZASI YARATIN universitet; ABŞ universiteti; MƏNBƏ; SOURCE Verilənlər bazası ilə işləmək üçün əmrlər1. Mövcud verilənlər bazalarına baxmaq MƏLUMAT BAZASINI GÖSTER; 2. Yeni verilənlər bazasının yaradılması CREATE DATABASE; 3. USE istifadə etmək üçün verilənlər bazası seçilməsi; 4. .sql SOURCE faylından SQL əmrlərinin idxalı; 5. Verilənlər bazasının silinməsi DROP DATABASE ; Cədvəllərlə işləmək 6. Verilənlər bazasında mövcud olan cədvəllərə baxmaq CƏDVƏLLƏRİ GÖSTER;

    7. Yeni cədvəlin yaradılması CREATE TABLE ( , , PRIMARY KEY (), FOREIGN KEY () REFERANSLAR ()); CREATE TABLE istifadə edərkən tamlıq məhdudiyyətləri

    Cədvəldə müəyyən sütunlar üçün məhdudiyyətlər yaratmağınız lazım ola bilər. Cədvəl yaratarkən aşağıdakı məhdudiyyətləri təyin edə bilərsiniz:

    • cədvəl xanası NULL ola bilməz;
    • əsas açar - PRIMARY KEY (col_name1, col_name2, ...) ;
    • xarici açar - XARİCİ AÇAR (col_namex1, …, col_namexn) İSTİFADƏLƏR cədvəl_name(col_namex1, …, col_namexn) .

    Birdən çox əsas açarı təyin edə bilərsiniz. Bu halda, siz kompozit əsas açar əldə edirsiniz.

    Misal

    "Təlimatçı" cədvəli yaradın:

    CREATE TABLE təlimatçısı (ID CHAR(5), adı VARCHAR(20) NOT NULL, dept_name VARCHAR(20), maaş NUMERIC(8,2), PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES şöbəsi(dept_name));

    8. Cədvəl haqqında məlumat

    Aşağıdakı əmrlə cədvəlin sütunları haqqında müxtəlif məlumatlara (dəyər növü, açar və ya olmayan) baxa bilərsiniz:

    TƏSVİR ETMƏK ;

    9. Cədvələ verilənlərin əlavə edilməsi INSERT INTO (, , , …) VALUES (, , , …);

    Cədvəlin hər bir sütununa məlumat əlavə edərkən, sütun adlarını göstərməyə ehtiyac yoxdur.

    DƏYƏRLƏRƏ DAXİL EDİN (, , , ...);

    10. Cədvəl məlumatlarını yeniləyin YENİLƏNİB SET = , = , ... HARADA ; 11. Cədvəldən bütün məlumatların silinməsi DELETE FROM ; 12. Cədvəlin silinməsi DROP TABLE ; Sorğu yaratmaq üçün əmrlər13. SEÇİN

    SELECT xüsusi cədvəldən məlumat almaq üçün istifadə olunur:

    SEÇİN , , … FROM ;

    Aşağıdakı əmr cədvəldəki bütün məlumatları göstərə bilər:

    SEÇ * FROM ;

    14. SEÇİN DISTINCT

    Cədvəl sütunlarında dublikat məlumatlar ola bilər. Yalnız dublikat olmayan məlumatları əldə etmək üçün SELECT DISTINCT-dən istifadə edin.

    SEÇİN DISTINCT , , … FROM ;

    15. HARADA

    Sorğuda şərtləri müəyyən etmək üçün SELECT-də WHERE açar sözündən istifadə edə bilərsiniz:

    SEÇİN, , … HARADAN;

    Sorğuda aşağıdakı şərtləri qeyd edə bilərsiniz:

    • mətn müqayisəsi;
    • ədədi dəyərlərin müqayisəsi;
    • məntiqi əməliyyatlar AND (və), OR (və ya) və NOT (inkar).
    Misal

    Aşağıdakı əmrləri sınayın. HARADA göstərilən şərtlərə diqqət yetirin:

    SEÇİN * FROM kurs HERDƏ dept_name='Komp. Elm.'; SEÇİN * KREDİT>3 HARƏDƏ kursdan; * HARADAN kursdan SEÇİN dept_name="Comp. Sci." VƏ kreditlər>3;

    16. QRUP BY

    GROUP BY operatoru çox vaxt çıxış dəyərlərini qruplaşdırmaq üçün COUNT , MAX , MIN , SUM və AVG kimi məcmu funksiyalarla istifadə olunur.

    SEÇİN , , … QRUPDAN ;

    Misal

    Hər fakültə üçün kursların sayını göstərək:

    COUNT(kurs_id), dept_name FROM kurs QRUPUNDAN dept_adı SEÇİN;

    17. OLMAQ

    HAVING açar sözü SQL-ə əlavə edildi, çünki WHERE ümumi funksiyalarla istifadə edilə bilməz.

    , , ... OLMAQLA QRUPDAN SEÇİN

    Misal

    Birdən çox kursu olan fakültələrin siyahısını göstərək:

    COUNT(kurs_id) SEÇİN, kursun_adı COUNT(kurs_id)>1;

    18. SİFARİŞ VERİN

    ORDER BY sorğu nəticələrini artan və ya azalan qaydada çeşidləmək üçün istifadə olunur. ORDER BY, ASC və ya DESC göstərilmədikdə, artan qaydada çeşidlənəcək.

    SEÇİN , , … SİFARİŞDƏN , , … ASC|DESC;

    Misal

    Kreditlərin sayının artan və azalan ardıcıllığı ilə kursların siyahısını göstərək:

    Kreditlərə görə kurs SİFARİŞİNDƏN * SEÇİN; SEÇİN * Kursun SİFARİŞİNDƏN kreditlər DESC;

    19. ARASINDA

    BETWEEN müəyyən diapazondan məlumat dəyərlərini seçmək üçün istifadə olunur. Rəqəm və mətn dəyərlərindən, həmçinin tarixlərdən istifadə edilə bilər.

    SEÇİN, , … HARƏDƏN VƏ ARASINDA;

    Misal

    Əmək haqqı 50.000-dən çox, lakin 100.000-dən az olan təlimatçıların siyahısını göstərək:

    * Əmək haqqı 50000-100000 ARASINDA OLAN təlimatçıdan SEÇİN;

    20.BƏYƏN

    LIKE operatoru WHERE-də oxşar dəyəri axtarmaq üçün nümunə təyin etmək üçün istifadə olunur.

    LIKE-də istifadə olunan iki pulsuz operator var:

    • % (heç biri, bir və ya bir neçə simvol);
    • _ (bir simvol).
    SEÇİN , , … KİMİ YERDƏN ; Misal

    Gəlin adlarında "to" olan kursların siyahısını və adları "CS-" ilə başlayan kursların siyahısını göstərək:

    * '%to%' kimi başlığı OLAN kursdan SEÇİN; * SEÇİN kurs_id "CS-___" KİMİ YERDƏ kurs;

    21. IN

    IN ilə siz WHERE bəndi üçün bir neçə dəyər təyin edə bilərsiniz:

    SEÇİN , , … HARADA (, , …);

    Misal

    Gəlin Comp istiqamətlərindən tələbələrin siyahısını göstərək. Elm, Fizika və Elek. İngilis dili:

    SEÇİN * FROM tələbənin BÖLÜM_Adı IN ('Komp. Elm', 'Fizika', 'Seçim Müx.');

    22. QOŞULUN

    JOIN iki və ya daha çox cədvəli onların daxilində ümumi atributlardan istifadə edərək əlaqələndirmək üçün istifadə olunur. Aşağıdakı şəkil SQL-ə qoşulmağın müxtəlif yollarını göstərir. Sol xarici birləşmə ilə sağ xarici birləşmə arasındakı fərqə diqqət yetirin:

    SEÇİN , , … QOŞULUŞDAN = ;

    Misal 1

    Budur bütün kursların siyahısı və müvafiq şöbə məlumatı:

    SEÇİN * KURSDAN QOŞULUN kurs.dept_name=department.dept_name;

    Misal 2

    Bütün tələb olunan kursların siyahısı və onlar haqqında təfərrüatlar:

    prereq.course_id, başlıq, şöbə_adı, kreditlər, prereq_id SEÇİN prereq FROM SOL XARİCİ kursa QOŞULUN prereq.course_id=course.course_id;

    Misal 3

    Tələb olub-olmamasından asılı olmayaraq bütün kursların siyahısını göstərək:

    SEÇİN kurs.kurs_id, başlıq, departament_adı, kreditlər, prereq_id prereq FROM SAĞ XARİCİ QOŞULUN kursa prereq.course_id=course.course_id;

    23 Baxış

    View ifadənin icrası nəticəsində yaradılmış virtual SQL cədvəlidir. O, sətir və sütunlardan ibarətdir və adi SQL cədvəlinə çox bənzəyir. View həmişə verilənlər bazasından ən son məlumatları göstərir.

    Yaradılma SEÇİLƏN KİMİ GÖRÜNÜŞ YARAT , , … HARADAN ; DROP VIEW silinir; Misal

    Gəlin 3 kreditli kurslardan ibarət görünüş yaradaq:

    24. Ümumi funksiyalar

    Bu funksiyalar sözügedən verilənlərlə bağlı ümumi nəticə əldə etmək üçün istifadə olunur. Aşağıdakılar ümumi istifadə olunan ümumi funksiyalardır:

    • COUNT (col_name) - sətirlərin sayını qaytarır;
    • SUM (col_name) - verilmiş sütundakı dəyərlərin cəmini qaytarır;
    • AVG (col_name) - verilmiş sütunun orta qiymətini qaytarır;
    • MIN (col_name) - verilmiş sütunun ən kiçik qiymətini qaytarır;
    • MAX(col_name) - Verilmiş sütunun ən böyük dəyərini qaytarır.
    25. İç-içə alt sorğular

    İç-içə alt sorğular başqa sorğunun içərisində yerləşdirilmiş SELECT , FROM və WHERE ifadələrini ehtiva edən SQL sorğularıdır.

    Misal

    2009-cu ilin payızında və 2010-cu ilin yazında tədris olunan kursları tapaq:

    SEÇİN DISTINCT course_id FROM Bölmə HARADA semestr = 'Payız' VƏ il= 2009 AND course_id IN (SEÇİN kurs_id FROM Bölmə HARADA semestr = 'Bahar' VƏ il= 2010);

    Kirill Pozdeev, tərcüməçi

    Yandex xidmətləri fərdiləşdirmək üçün məlumatlarınızdan və maşın öyrənməsindən necə istifadə edir - .

    Əlaqəli verilənlər bazaları və cədvəllər haqqında hər hansı konseptual məlumat yalnız məlumatlarla necə qarşılıqlı əlaqə quracağınızı bildiyiniz zaman faydalıdır. SQL dili verilənlər bazasından məlumatların əlavə edilməsi, dəyişdirilməsi və silinməsi üçün strukturlaşdırılmış əmrlərdən ibarətdir. Bu əmrlər PostgreSQL serveri ilə qarşılıqlı əlaqə üçün əsas təşkil edir.

    Bu bölmə SQL əmrlərinin "anatomiyası" haqqındadır. Əmrlərin struktur komponentlərini müzakirə edir, hər bir komponentin funksiyalarını və onların qarşılıqlı əlaqələrini təsvir edir. Standart PostgreSQL komanda xətti müştərisi, psql, nümunələrdəki əmrlərin çıxışını çap edir.

    SQL əmr nümunələrinin əksəriyyəti booktown verilənlər bazasına istinad edir. Bütün psql çıxışlarına booktown=# prefiksi qoyulur.

    Bəzi nümunələr testdb test verilənlər bazasından istifadə edir. Varsayılan olaraq, psql sorğusu sistemin yeni əmrə hazır olduğunu göstərmək üçün yalnız verilənlər bazası adını və =# simvollarını göstərir (baxmayaraq ki, SQL girişinin vəziyyəti izlənildikdə = simvolunun dinamik şəkildə dəyişdiyini görəcəksiniz). Kitabda psql müştəri çıxışı ilə rahat olmağınızı asanlaşdırmaq üçün SQL girişi və çıxışı ilə birlikdə bu sorğu daxildir.

    Psql müştərisi 4-cü Fəsildə ətraflı təsvir edilmişdir. Burada yalnız SQL əmr nümunələrinin üslubunu aydınlaşdırmaq üçün qeyd edilmişdir.

    Qeyd
    Booktown verilənlər bazası sxemi (nümunə qeydləri ilə birlikdə) CD-dəki booktown.sql faylına daxil edilmişdir. Bu verilənlər bazasını quraşdırmaq üçün əmr sorğusuna psql -U postgres şablonu yazın. - f /mnt/cdrom/booktown.sql burada /mnt/cdrom quraşdırılmış CD-yə gedən yol, postgres isə PostgreSQL super istifadəçi adıdır
    .

    SQL Əmrlərinin Anatomiyası

    SQL əmrləri həmişə hərəkətlə başlayır ( fel ) - yerinə yetiriləcək əməliyyatı təsvir edən söz və ya sözlər qrupu. Bundan əlavə, SQL əmri adətən onun mənasını aydınlaşdıran bir və ya bir neçə bölmədən ibarətdir. Cədvəldə. 3.2 SQL-in əsas hərəkətlərini sadalayır.

    Cədvəl 3.2. Əsas PostgreSQL addımları.

Fəaliyyət Təsviri
MƏLUMAT BAZASI YARADIN Yeni verilənlər bazası yaradılması
İNDEKSİ YARATIN Cədvəl sütununda yeni indeks yaradın
ARDILIQ YARATIN Mövcud verilənlər bazasında yeni ardıcıllığın yaradılması
CƏDVƏL YARADIN Mövcud verilənlər bazasında yeni cədvəlin yaradılması
TRIGGER YARADIN Yeni tətik tərifi yaradın
GÖRÜNÜŞ YARADIN Mövcud cədvəl üçün yeni görünüş yaradın
SEÇİN Cədvəldən qeydlərin seçilməsi
INSERT Cədvələ bir və ya daha çox yeni qeyd daxil edin
YENİLƏNİB Mövcud qeydlərdəki məlumatların dəyişdirilməsi
SİLİN Cədvəldən Mövcud Qeydlərin Silinməsi
MƏLUMAT BAZASINI DÜŞÜN Mövcud verilənlər bazasını məhv etmək
DÜŞÜŞ İNDEKSİ Mövcud cədvəldən sütun indeksinin silinməsi
DÜŞÜLMƏ TƏTBİQİ Mövcud Ardıcıllıq Generatorunun məhv edilməsi
CƏDVƏL VERİN Mövcud Cədvəlin məhv edilməsi
TRIGGERİ DÜŞÜR Mövcud Tətik Tərifinin məhv edilməsi
GÖRÜNÜŞ Mövcud Görünüşün məhv edilməsi
İSTİFADƏÇİ YARADIN Sistemdə yeni PostgreSQL istifadəçi hesabının yaradılması
İSTİFADƏÇİYİ DEĞİŞTİR Mövcud PostgreSQL İstifadəçi Hesabının dəyişdirilməsi
İSTİFADƏÇİYİ AYIRIN Mövcud PostgreSQL İstifadəçi Hesabının Silinməsi
Qrant Verilənlər bazası obyektinə giriş hüquqlarının verilməsi
LƏĞV EDİN Verilənlər bazası obyektinə girişin ləğvi
FUNKSİYA YARAT Verilənlər bazasında yeni SQL funksiyasının yaradılması
DİL YARADIN Verilənlər bazasında yeni dil tərifi yaradın
OPERATOR YARADIN Verilənlər bazasında yeni SQL ifadəsinin yaradılması
NÖVÜ YARADIN Verilənlər bazasında yeni SQL məlumat növünün yaradılması