Transact-SQL və CREATE DATABASE operatoru nümunələrlə

Salam Dostlar.

Bir şeyin öz əllərimizlə yaradılması prosesi nə qədər də gözəldir! Bəli, bu gündən etibarən biz sizinlə təcrübə dərslərinə başlayırıq. Dərslərimizin əvvəlində çox qısa şəkildə ümumi anlayışlar veriləcək, ortasında yaradıcılıqla məşğul olacağıq və sonda ev tapşırıqları veriləcək. Beləliklə, biz daim nə isə yazacağıq, pozacağıq, yaradacağıq və sonda kifayət qədər təcrübə əldə edəcəyik. Mövzuları bacardığım qədər sadə və Ana dilimizdə anlaşılan şəkildə təqdim etməyə çalışacağam.

Güman edirəm ki, münasibətli (relational) verilənlər bazasının, SQL, T-SQL, PL/SQL nə olduğunun keçən nəzəri dərslərimizdən artıq bilirsiniz. Münasibətli modelinin əsas prinsiplərini bilmək verilənlər bazası ilə iş zamanı olduqca vacibdir. Keçən dərslərimizdən öyrəndiniz ki, verilənlər bazasında bütün verilənlər münasibətli çoxluqlar şəklində saxlanılır. Həmin çoxluqlar verilənlər bazasının cədvəllərini, çoxluqların atributları – cədvəllərin sütunlarını və çoxluqların elementləri – cədvəllərin sətirlərini təşkil edir. Şirkət əməkdaşlarının verilənlər bazası barədə keçən dərslərimizdə danışdıq. Onun bəzi cədvəllərini vizual olaraq təsvir etdik və hətta həmin bazadan bəzi məlumatlar əldə etdik. Bütün bu prosesləri biz xüsusi bir vasitə ilə həyata keçirdik. Verilənlər bazasından məlumatın alınması, daxil edilməsi və silinməsi prosesini həyata keçirmək üçün xüsusi bir vasitə – sorğu dili yaradılmışdır. Lakin həmin sorğular adi bildiyimiz suallardan fərqlənir: sorğular strukturlaşdırılmışdır, yəni dəqiq struktura malikdir, başqa sözlə, mütəşəkkildir. Bəs sorğular, kodlar nəyin üzərində yazılır? Hər hansı bir mətn redaktorunda istənilən kodu yaza bilərik, çünki kod da xüsusi bir mətndir. Lakin həmin kodu icra edə bilməyəcəyik. Kodu icra etmək üçün də xüsusi bir vasitə lazımdır. Excel cədvəlini yaratmaq üçün biz nə edirik? Microsoft Excel proqramını açırıq və istədiyimiz məlumatları yeni cədvələ daxil edirik. Bildiyiniz kimi, Excel proqramında xüsusi funksiyalar və hesablamalar aparmaq olar. Deməli, Microsoft Excel cədvəl yaratmaq və bəzi əməliyyatlarını icra etmək üçün bir platformadır. Verilənlər bazasının özünü və cədvəllərini yaratmaq və ümumiyyətlə, verilənlər bazasını idarə etmək üçün xüsusi platformalar yaradılmışdır. Həmin platformalar Verilənlər Bazalarının İdarəetmə Sistemi (gələcəkdə mətndə VBİS) adlandırılır.  Uzağa getməyək: T-SQL sorğu dili ilə işləmək üçün Microsoft SQL Server, PL/SQL sorğu dili ilə işləmək üçün Oracle Database Server və SQL/PSM  sorğu dili ilə işləmək üçün MySQL VBİS-i mövcuddur. Çoxlu sayda digər VBİS-lər də mövcuddur, lakin ən çox istifadə edilənlər yuxarıda göstərilənlərdir. Verilənlər Bazalarının İdarəetmə Sistemləri proqram kompleksidir və bir neçə hissədən ibarətdir.

Verilənlər Bazalarının İdarəetmə Sistemləri funksionallığına və strukturuna görə bir-birindən fərqlənir. Tələbələrin ən çox verdiyi suallardan biri: SQL sorğu dilini öyrənmək üçün hansı VBİS istifadə edim? Məsələ bundadır ki, sadalanan VBİS-in özünəməxsus SQL dialektləri vardır. Bütün dialektlərin kökündə standart ANSİ SQL durur. VBİS istehsalçıları həmin standartdan kənar çoxlu sayda əlavələr də ediblər. Buna görə də deyirlər ki, SQL dialektləri bir-birindən kəskin fərqlənir. Bəli, fərqlər mövcuddur, lakin əsas prinsiplər eynidir və standarta uyğunluq vardır. Buna görə də PL/SQL öyrənən tələbə T-SQL də olan əlavə imkanları da nəzərdən keçirib, çox asanlıqla və qısa bir zamanda T-SQL də işləyə bilər. MySQL əsasən WEB platformaları və kiçik həcmli proqramlar üçün nəzərdə tutulub. Gələcəkdə WEB platformaları ilə işləməyi planlaşdıran tələbələrə MySQL-də istifadə olunan dialekti öyrənmək tövsiyə olunur. Nəzərə alınmalıdır ki, MySQL-də istifadə olunan SQL/PSM dialektini öyrənəndən sonra digər platformalara keçid zamanı hər iki nəhəng dialektlərdə olan fərqləri də öyrənməyə lazım olacaq.

Mənim fikrimcə, Transact-SQL və ya T-SQL öyrənılməsi daha asandır, PL/SQL daha mürəkkəb və geniş imkanlıdır və ilk başlayanlar üçün bir qədər çətin görünə bilər. T-SQL əsas üstünlüyü ondan ibarətdir ki, çox geniş sosial şəbəkəyə malikdir: çoxlu sayda forumlar, dərsliklər və saytlar mövcuddur. Siz hər hansı bir sualla müraciət etsəniz sualınız dərhal cavablandırılır, bəzən bir neçə dəqiqə ərzində lazım olan cavabı ala bilərsiniz. Həmin cavablar Microsoft rəsmi mənbələrdən alınır, yəni suallar real peşəkarlar: MVP, MCM, expertlər tərəfindən cavablandırılır. Microsoft SQL Serverin əsas üstünlükləri: nisbətən asan olması və geniş sosial şəbəkəsidir. Lakin, Oracle Database Server böyük həcmli verilənlər bazalarında daha çox istifadə olunur, bu sahədə bazarda liderdir və əsasən Linux əməliyyat sistemi üzərində qurulur. Buna görə də əlavə olaraq Linux əməliyyat sistemləri barə də anlayışınız olmalıdır. Seçim sizindir. Hansı VBİS üzrə ixtisaslaşacağınızdan asılı olmayaraq ilk mərhələdə SQL-in əsaslarını öyrənməlisiniz. Daha sonra geniş ədəbiyyat və dərsliklərindən isitifadə etməklə ixtisasınızı dəqiqləşdirə bilərsiniz.

Digər məsələ ondan ibarətdir ki, çox vaxt Oracle Database Serverdə istifadə olunan verilənlər bazasını Microsoft SQL Serverə və əksinə keçirmək (miqrasiya etmək) lazım olur. Həmin verilənlər bazalarının keçirilməsi (miqrasiyası) SQL dialektlərində olan fərqlərə görə çətinləşir. Bu zaman müxtəlif vasitələr (SQL Server Migration Assistant, Oracle Migration Workbench və s.) axtarılır. Lakin T-SQL kodunu PL/SQL koduna tam problemsiz çevirən sehrli bir “tool” və mexanizm mövcud deyil. Əksər hallarda kod yenidən əl ilə yazılmalıdır. Verilənlər bazasının kodları ANSİ SQL standartlarına mümkün qədər yaxın yazılsa miqrasiya prosesi çox asanlaşar və universal, müxtəlif VBİS-lər arasında daşınan bir verilənlər bazası yaratmaq olar. Beləliklə, biz dərslərimizdə Microsoft SQL Server verilənlər bazası üzərində ANSİ SQL standartına mümkün qədər yaxın bir şəkildə Transact-SQL dialektini öyrənəcəyik. Həmçinin, hər bir kod PL/SQL ilə də müqayisə olunacaq, imkanları və fərqləri araşdırılacaq.

Qeyd etmək lazımdır ki, yuxarıda sadalanan VBİS-lər həm pullu, həm də pulsuz versiyaları mövcuddur. Pulsuz versiyalar “Express” adlandırlır və onları asanlıqla endirib quraşdırmaq olar. MySQL VBİS pulsuz versiyası “MySQL Community Edition” adlandırlır.

İndi isə iş mühitimizi yaradaq. İlk növbədə Microsoft SQL Server 2014 Express versiyasını aşağıda göstərilən qaynaqdan yükləyək:

Microsoft® SQL Server® 2014 Express

“Download” düyməsini sıxdıqda bizə bir neçə faylı seçməyi təklif olunur. Qeyd etmək lazımdır ki, Microsoft SQL Server 2014 Express iki versiyasında bizə lazım olan həm serverin özü, həm də “Management Studio” vardır: Express with Tools (əməliyyat sisteminin dərəcəsində asılı olaraq  ExpressAndTools 32BIT\SQLEXPRWT_x86_ENU.exe və ExpressAndTools 64BIT\SQLEXPRWT_x64_ENU.exe fayllarıdır) və Express with Advanced Services (əməliyyat sisteminin dərəcəsində asılı olaraq ExpressAdv 32BIT\SQLEXPRADV_x86_ENU.exe və ExpressAdv 64BIT\SQLEXPRADV_x64_ENU.exe  fayllarıdır). İkinci versiyada nisbətən geniş imkanlar olduğu üçün biz bu versiyanı seçirik.

Məndə olan əməliyyat sisteminin dərəcəsi 64 bitdir. Buna görə də mən ExpressAdv 64BIT\SQLEXPRADV_x64_ENU.exe faylını seçib “Next” düyməsini sıxaraq həmin faylı endirirəm:

 Mssql_download1

Faylın həcmi 1.1 Gb-dır və digər proqramlar kimi “exe” tipindədir. Faylı işə salırıq. Əsas qurulum fayllarının hara çıxarılması barədə sorğu pəncərəsi çıxır. Yüklədiyimiz faylın yanına çıxarmaq istəyiriksə OK düyməsini sıxırıq:

 mssqlsetup_2

SQLEXPRADV_x64_ENU qovluğu yaranır. Qovluğu açırıq və orada olan SETUP.EXE faylını işə salırıq. Açılan pəncərədə New SQL Server stand-alone installation or add features to an existing installation seçirik:

 MSSQLsetup_3

Yeni açılan pəncərədə İ accept the license terms seçirik və Next düyməsini sıxırıq:

 MSSQLSetup_4

Yeni açılan pəncərədə Next düyməsini sıxırıq:

 MSSQLSetup_5

Qeyd etmək lazımdır ki, bu mərhələdə əməliyyat sisteminin bəzi hissələri yoxlanılır və ən əsas tələb Microsoft .NET Framework 3.5 Service Pack 1 –in işlək vəziyyətdə olmasıdır. Əgər yoxdursa aşağıdakı mənbədən yükləyib qurmaq lazımdır:

Microsoft .NET Framework 3.5 Service Pack 1

Açılan pəncərədə yenilikləri (update) yüklənilməsi istənilir. Bu cür yenilikləri daha sonra da yükləmək olar. Xananı boş qoyub yenə də Next düyməsini sıxırıq:

 MSSQLSetup_6

Feauture selection hissəsinə gəlib çatdıq. Burada LocalDB-dən başqa bütün xanaları seçirik:

 MSSQLSetup_7

Açılan pəncərədə bizə SQL serverin nüsxəsini seçməsi istənilir. Əgər bu sizin ilk SQL serverinizdirsə Default instance seçin. Əgər kompüterdə əvvəl SQL Server quraşdırlımışdırsa, bu zaman Named instance seçin. Bu bizim ilk SQL serverimizdir, buna görə də biz Default instance  seçirik və Next düyməsini sıxırıq:

 MSSQLSetup_8

Yeni açılan pəncərədə servisləri işlədəcək istifadəçi adı və Callation (Çeşidləmə) seçilməsi istənilir. Kompüteri yenidən başlatdıqda həmin servislər işə düşməyə bilər. Bu zaman servisləri işlədəcək istifadəçi adı NT AUTHORITY\SYSTEM seçilməsi daha məsləhətdir (tədris zamanı bu cür təhlükəsizlik sazlaması keçərlidir). Bu dəyişikləri, əgər tələb olunarsa, daha sonra da edə bilərik. Hal-hazırda olduğu kimi saxlayıb Next düyməsini sıxırıq:

 MSSQLSetup_10

Yeni açılan pəncərədə Server Configuration bölməsində bir neçə seçim edirik. Authentication Mode hissəsində Mixed Mode seçirik və “sa” sistem istifadəçi üçün parol təyin edirik. Parol güclü olmalıdır, əks təqdirdə səhv (error) çıxacaq. Specify SQL Server administrators hissəsində Add current user seçirik. Bununla biz SQL Serverə qoşulma icazəsini alırıq. Next düyməsini sıxmağa hələ tələsməyin:

 SQLSetup_11

Data directories bölməsində verilənlər bazasının faylların yerləşəcəyi qovluqları seçirik. Qovluğun yolu C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data göstərilib. Öyrənmək məqsədilə biz fayllarımızı burada, yəni C diskində də saxlaya bilərik. Lakin mənim kompüterimin C diskində yer az olduğu üçün başqa qovluq seçirəm. Həmin qovluqları öncədən yaratmaq lazımdır. Digər bölmələri olduğu kimi saxlayıb Next düyməsini sıxırıq:

 MSSQLSetup_12

Yeni açılan pəncərədə hər şeyi olduğu kimi saxlayıb Next düyməsini sıxırıq və qurulma başlayır:

 MSSQLSetup_13

Bir qədər gözlədikdən sonra açılan pəncərədə Close düyməsini sıxırıq (bütün proseslərin statusu Succeeded olmalıdır). Bununla da Microsoft SQL Serverin qurulumu bitir:

 MSSQLSetup_14

İşləmək üçün bizə lövhə lazımdır. Bunu üçün SQL Server 2014 Managemant Studio – nu işə salaq. Start > All Programs > Microsoft SQL Server 2014 > SQL Server 2014 Management Studio keçidindən proqramımızı işə salırıq. Connect to Server pəncərəsində Server name xanasında mötərizədə local sözünü yazırıq – bu şəkildə: (local) və Authentication (giriş icazəsi) üsulunu seçirik. İki cür giriş icazəsi seçə bilərik: Windows authenticationSQL Server authentication. SQL Server authentication seçərək Login yerinə sa sözünü yazırıq, Password yerinə isə qurulma zamanı təyin etdiyimiz parolu yazırıq, Remember password seçirik və Connect düyməsini sıxırıq:

 MSSQLSetup_15

“SQL Server 2014 Managemant Studio” açıldıqdan sonra bizi iki hissə maraqlandırır. Yuxarıda olan New Query və sol tərəfdə olan “Object explorer”-dəki Databases menyusu:

 MStudio_1

Sorğularla işləmək üçün New Query düyməsini sıxırıq. Bizim iş lövhəmiz hazırdır. Burada biz yeni sorğular yaza, sorğuları yadda saxlaya və icra edə biləcəyik. Bir qədər sazlamalar edək. Sorğu yazılan lövhədə sorğuların hər bir sətirinin nömrəsinin olması sorğu yazan zaman çox kömək edir. Bu nömrələri aktiv etmək üçün Tools > Options menyusuna keçirik. Açılan pəncərənin sol tərəfində Text Editor > All Languages seçirik. Sağ tərəfdəki Display basığı altındakı Line numbers xanasını seçirik:

 MStudio_2

Beləliklə, işləmək üçün tam hazırıq:

 MStudio_3

Gördüyünüz kimi çox asan şəkildə həm işlək VBİS-ini, həm də çox güclü sorğu redaktorunu qurduq. Qeyd etmək lazımdır ki, Oracle VBİS-də sorğularla işləmək üçün Oracle SQL Developer əlavə yükləmək lazımdır. MySQL VBİS-də sorğularla işləmək üçün MySQL Workbench və ya başqa proqram təminatları: PHPMyAdmin, SQLyog və s. əlavə yükləmək lazımdır.

SQL dili barədə əksər ədəbiyyatda təlim SELECT sorğusundan başlayır. Lakin SELECT mövcud olan verilənlər bazasından məlumatın alınmasıdır. Bizim isə hələ verilənlər bazamız yoxdur. İlk növbədə verilənlər bazasını yaradıb onu məlumatlarla doldurmalıyıq ki, sonra oradan məlumat sorğusu alaq.

İndi isə ilk verilənlər bazamızı yaradaq. Qeyd etmək lazımdır ki, SQL Server 2014 qurulandan sonra verilənlər bazası avtomatik olaraq yaranmır. Verilənlər bazasını biz SQL Server 2014 Managemant Studio köməyi ilə özümüz yaratmalıyıq. Bunu iki cür etmək olar: Managemant Studio GUİ interfeysi vasitəsilə və yeni sorğu vasitəsilə. Bizi birinci üsul hələ ki maraqlandırmır, buna görə də New Query düyməsini sıxaraq yeni sorğu lövhəsini açırıq və orada verilənlər bazasını yaratmaq üçün ilk kodumuzu daxil edirik.

Verilənlər bazasının yaradılması CREATE DATABASE operatoru vasitəsilə həyata keçirilir. Burada Oracle Database Serveri və PL/SQL ilə ilk fərqimiz aşkarlanır. Qeyd etmək lazımdır ki, Oracle Database Serverdə verilənlər bazasını serverin qurulması (setup) zamanı yaratmaq mümkündür. Bunu sonra da etmək olar, lakin sonradan baza yaratmaq istəsək çox mürəkkəb və uzun bir kod yazmalı olacağıq. SQL Server 2014 bir nüsxəsində (instance) istənilən qədər baza yaratmaq olar. Oracle Database Serverdə isə yeni baza yaratmaq üçün yeni instance qurulmalıdır. Oracle-da CREATE və ALTER DATABASE çox güclü komandalardır və yalnız təcrübəli inzibatçılar tərəfindən istifadə olunur. Həmçinin, bu komandalar çox mürəkkəbdir: məsələn, yalnız Oracle rəsmi ədəbiyatının təxminən 50 səhifəsi ALTER DATABASE komandasına həsr edilmişdir. Yeni başlayan tələbələr bilməlidir ki, Oracle-da CREATE DATABASE operatoru mövcud verilənlər bazasında bütün məlumatları silir.

CREATE DATABASE

ANSI standartında CREATE DATABASE operatorunun təsviri yoxdur. Praktik olaraq bütün platformalar bu operatoru dəstəkləyirlər. Lakin, ümumi bir standart olmadığı  üçün ayrı-ayrı VBİS-də bu operator kəskin fərqlənir.

SQL Server-də bütün verilənlər bazaları barədə məlumat master verilənlər bazasının sysdatabases cədvəlində saxlanılır.

CREATE DATABASE operatorun minimal sintaksisi (yazılış qaydası) ilə tanış olaq:

Birinci sətir komandanın (operatorun) adını və onun parametrini göstərilir:

CREATE DATABASE database_name

Parametr qismində yaradılan yeni verilənlər bazasının adı çixış edir.

Bazanın adı bir sözdən ibarətdirsə heç bir dırnaq və ya mötərizə qoyulmur.:

CREATE DATABASE Bazamız

Əgər ad iki sözdən ibarət olmalıdırsa, onda o kvadrat mötərizəyə alınır:

CREATE DATABASE [İlk bazamız] 

SQL Server 2014 Managemant Studio –da  New Query düyməsini basaq. Göstərilən kodu ora daxil edək. Yeni bazamızın adını Test qoyaq:

CREATE DATABASE Test

Yuxarıdakı lövhədə Execute düyməsini sıxırıq və yeni bazamız yaranır. Sol tərəfdəki Object Explorer lövhəsində Databases üstünə gəlib mausun sağ düyməsini sıxıb Refresh  edin. Yeni bazamızı siyahıda görəcəyik:

 Create_Database1

Beləliklə, bugünkü məqalənin də sonuna gəlib çatdıq. Bu gün biz sizinlə SQL Server 2014 və Managemant Studio qurduq və ilk bazamızı yaratdıq. SQL DDL (İng. Data Definition Language – “Verilənlərin Təyini Dili”) –in CREATE DATABASE  operatoru ilə tanış olduq.

Növbəti məqalədə CREATE DATABASE operatoru barədə bəhsimizi davam edəcəyik, yazılış qaydası (sintaksisi) təfərrüatı ilə təhlil edəcəyik və SQL operatorlarının təsvirlərinin oxunulması və yazılması qaydalarını öyrənəcəyik. Əsasən Microsoft SQL Serverin geniş rəsmi ədəbiyyat (BOL) sistemində bu cür yazılarla tez-tez rastlaşacaqsınız. Müxtəlif nümunələr üzərində işimizi davam edəcəyik.

Tapşırıqlar:

  1. Microsoft SQL Server 2014 Express endirin və quraşdırın;
  2. SQL Server 2014 Managemant Studio işə salın və məqalədə göstərilən sazlamaları edin;
  3. CREATE DATABASE operatoru ilə yeni baza yaradın.

Növbəti məqalələrdə görüşənədək.

Diqqətinizə görə təşəkkür edirəm.

Səs: +60. Bəyənilsin Zəifdir

Müəllif: Rauf Khalafov

Şərhlər ( 2 )

  1. Əllərinizə sağlıq. Tapşırıqlarınız okdir. Keçək növbəti dərsə :))

  2. Çox sağolun

Şərh yazın