SQL-də verilənlər bazası və cədvəllərin yaradılması

Verilənlər bazası yaratmaq

Strukturlaşdırılmış Sorgu Dili ilə verilənlər bazası və cədvəllər yaratmağa başlamaq üçün hazırsınızmı? Bu yazıda, CREATE DATABASE və CREATE TABLE əmrləri ilə cədvəllərin əllə yaradılması prosesini tədqiq edirik. Əgər SQL-yə yeni baxırsınızsa, ilk olaraq SQL əsasları məqaləsini nəzərdən keçirək .

Biznes tələbləri

Klaviaturada oturmadan əvvəl, müştərinin tələblərinin möhkəm bir şəkildə başa düşülməsini təmin etməmiz lazımdır. Bu məlumatı əldə etmək üçün ən yaxşı yol nədir? Əlbəttə, müştəriyə danışmaq! XYZ-nin İnsan Resursları Direktoru ilə oturduqdan sonra biz bir widget satış şirkəti olduğunu öyrənirdik və əsasən onların satış işçiləri haqqında məlumatların izlənilməsində maraqlıyıq.

XYZ Corporation satış qüvvəsini şərq və qərb bölgələrinə ayırır, hər biri fərdi satış nümayəndələri ilə əhatə olunmuş bir çox əraziyə bölünür. İnsan Resursları Departamenti hər bir işçinin əhatə etdiyi ərazini, habelə hər bir işçinin əmək haqqı məlumatı və nəzarət strukturunu izləmək istəyir. Bu tələbləri yerinə yetirmək üçün, bu səhifədəki Entity-Relation diagramında göstərilən üç masadan ibarət olan bir verilənlər bazası hazırladık.

Verilənlər bazasının seçilməsi

Strukturlaşdırılmış Sorgu Dilində (SQL) qurulmuş bir verilənlər bazası idarəetmə sistemindən (və ya DBMS) istifadə etməyə qərar verdik. Buna görə, verilənlər bazası və masa yaratma əmrlərinin hamısı standart ANSI SQL ilə yazılmalıdır.

Əlavə bir fayda olaraq, ANSI uyğun SQL istifadə edərək, bu əmrlərin Oracle və Microsoft SQL Server daxil olmaqla SQL standartlarını dəstəkləyən hər hansı DBMS üzərində işləyəcəyini təmin edəcəkdir. Verilənlər bazası üçün bir platforma seçməmiş olsanız, verilənlər bazası proqram təminatı seçimi prosesi sizi seçmə prosesi boyunca aparır.

Verilənlər bazası yaratmaq

İlk addım veritabanının özünü yaratmaqdır. Bir çox verilənlər bazası idarəetmə sistemi bu addımda verilənlər bazası parametrlərini fərdiləşdirmək üçün bir sıra seçim təklif edir, lakin məlumat bazamız yalnız verilənlər bazasının sadə yaradılmasına imkan verir. Bütün əmrlərimizdə olduğu kimi, xüsusi sisteminiz tərəfindən dəstəklənən inkişaf etmiş parametrlər sizin ehtiyaclarınıza cavab verə biləcəyini müəyyən etmək üçün DBMS sənədlərinizə müraciət edə bilərsiniz. Veritabanını qurmaq üçün CREATE DATABASE əmrini istifadə edək:

DATABASE personalını yaradın

Yuxarıda göstərilən nümunədə istifadə olunan kapitallaşmanın xüsusi qeydini alın. "Personal" verilənlər bazası adı kimi istifadəçi adları üçün bütün kiçik hərflərdən istifadə edərkən, "CREATE" və "DATABASE" kimi SQL açar sözləri üçün bütün əsas məktublardan istifadə etmək üçün SQL proqramçıları arasında ümumi təcrübə. Bu konvensiyalar asan okunabilirlik təmin edir.

Veritabanımız üçün masalar yaradaraq bu təlimatı oxumağa davam edin.

Ətraflı öyrən

Strukturlaşdırılmış Sorgu dili haqqında daha çox məlumat əldə etmək istəyirsinizsə, SQL-ə Giriş oxuyun və pulsuz Learning SQL elektron poçt kursumuza üzv olun.

İndi verilənlər bazasını hazırladığımızı və yaratdığımızı, XYZ Korporasiyasının personal məlumatlarını saxlamaq üçün istifadə olunan üç cədvəl yaratmağa hazırıq. Biz bu təlimatın əvvəlki hissəsində hazırladığımız cədvəlləri tətbiq edəcəyik.

Birinci Cədvəl yaratmaq

Bizim ilk masa şirkətimizin hər bir əməkdaşı üçün şəxsi məlumatlardan ibarətdir. Hər bir işçinin adını, maaşını, şəxsiyyətini və menecerini daxil etməmiz lazımdır. Gələcəkdə məlumatların axtarışı və çeşidlənməsi üçün sadələşdirmək üçün son və ilk adları ayrı-ayrı sahələrə ayırmaq üçün yaxşı dizayn təcrübəsi. Həmçinin, hər bir işçinin menecerinin rəhbərliyində çalışan işçi kimliyinə bir istinad əlavə edilərək, hər bir işçi qeydində izləyəcəyik. Əvvəlcə istənilən işçi cədvəlinə nəzər salaq.

ReportsTo atributu, hər bir işçi üçün idarəçi kimliyini saxlayır. Göstərilən nümunə qeydlərdən Sue Scampi'nin həm Tom Kendall, həm də John Smith'in idarəçisi olduğunu təyin edə bilərik. Lakin Sue-nin meneceri haqqında məlumat bazasında heç bir məlumat yoxdur, onun sırasındaki NULL girişində göstərildiyi kimi.

İndi biz kadr bazasında cədvəl yaratmaq üçün SQL istifadə edə bilərik. Bunu etmədən əvvəl, bir USE əmri verməklə doğru verilənlər bazasında olduğumuzu təmin edək:

Istifadəçi heyəti;

Alternativ olaraq, "DATABASE personalı"; əmri eyni funksiyanı yerinə yetirir. İndi işçilərimizin cədvəlini yaratmaq üçün istifadə olunan SQL əmrinə baxa bilərsiniz:

CREATE TABLE employees (Employee INTEGER NOT NULL, lastname VARCHAR (25) NOT NULL, ilk adı VARCHAR (25) NOT NULL, reportable INTEGER NULL);

Yuxarıda göstərilən misalda olduğu kimi, proqramlaşdırma konvensiyasında istifadə etdiyimiz sütunlar və masalar üçün SQL açar sözləri və kiçik hərflər üçün bütün böyük hərflərdən istifadə etdiyimizi qeyd edirik. Yuxarıda verilən əmr ilk növbədə qarışıq görünə bilər, amma arxasında sadə bir quruluş var. İşdə bir qədər aydınlaşdıra biləcək ümumi bir fikir var:

CREATE TABLE table_name (attribute_name datatype variantları, ..., attribute_name datatype variantları);

Nitelikler ve Veri Tipleri

Əvvəlki nümunədə, cədvəl adı işçilərdir və biz dörd xüsusiyyətləri daxil edirik: employeeid, lastname, firstname və reportsto. Datatype hər sahədə saxlamağı arzuladığımız məlumatın növünü göstərir. İşçi identifikasiyası sadə bir tam ədəddir, belə ki, həm işçi sahəsində, həm də reportsto sahəsində INTEGER datatype istifadə edəcəyik. İşçilərin adları dəyişən uzunluqlu xarakterli strings olacaq və heç bir işçinin 25 simvoldan artıq olan ilk və ya sonuna sahib olmasını gözləmirik. Buna görə, bu sahələr üçün VARCHAR (25) tipini istifadə edəcəyik.

NULL dəyərlər

CREATE hesabatının variantları sahəsində NULL və ya NULL göstərə bilərik. Verilənlər bazasına satır əlavə edərkən, bu sadəcə verilənlər bazasına NULL (və ya boş) dəyərlərin bu xüsusiyyət üçün icazə verildiyini bildirir. Bizim nümunəmizdə İnsan Resursları İdarəsi hər bir işçi üçün əməkdaşı və tam adı saxlanılmasını tələb edir. Lakin hər bir işçinin meneceri yoxdur - CEO heç kimə məlumat vermir! - belə ki, bu sahədə NULL girişlərinə imkan veririk. NULL'un varsayılan değer olduğuna ve bu seçimi, bir nitelik üçün örtük olaraq NULL değerlerine izin verileceğini unutmayın .

Qalan Tabloları Bina

İndi torpaqların masasına baxaq. Bu məlumatlara sürətli bir baxdığımızda bir tamsayı və iki dəyişən uzunluqlu simli saxlamaq lazımdır. Əvvəlki nümunəmizdəki kimi, Region ID-in 25-dən çox simvol istehlak etməsini gözləmirik. Ancaq bəzi ərazilərimizdən bəziləri daha uzun adlara sahibdir, buna görə də bu xüsusiyyətin icazə verilən uzunluğunu 40 simvol olaraq genişləndirəcəyik. Müvafiq SQL-ə baxaq:

TABLE ərazilərini yaradın (ərazisində INTEGER NOT NULL, ərazinin təsviri VARCHAR (40) NOT NULL, region VARCHAR (25) NOT NULL);

Nəhayət, işçilərin və ərazilərin əlaqələrini saxlamaq üçün EmployeeTerritories cədvəlindən istifadə edəcəyik. Hər bir işçinin və ərazinin ətraflı məlumatı əvvəlki iki masada saxlanılır. Buna görə, biz yalnız bu cədvəldə iki ədəd tamsayı identifikasiya nömrəsini saxlamalıyıq. Bu məlumatları genişləndirmək lazımdırsa, bir neçə masadan məlumat almaq üçün məlumatların seçilməsi əmrlərimizdə JOIN istifadə edə bilərik. Verilən məlumatların saxlanması bu məlumat bazasında azalma azaldır və saxlama disklərimizdə yerin optimal istifadəsini təmin edir. Gələcək təlimçidə JOIN komandasını dərindən əhatə edəcəyik. Son masamızı yerinə yetirmək üçün SQL kodu:

CREATE TABLE employeeterritories (işləyən INTEGER NOT NULL, domain INTEGER NOT NULL);

Mexanizm SQL verildikdən sonra verilənlər bazasının strukturunu dəyişməyə imkan verir

Bu gün xüsusilə zərif olsanız, verilənlər bazası cədvəllərimizi həyata keçirərkən "təsadüfən" dizayn tələblərindən birini "təsadüfən" itirməmisiniz. XYZ Korporasiyasının İnsan Resursları Direktoru veritabanı izləyicisinin əmək haqqı məlumatlarını istədi və biz yaratdığımız verilənlər bazası cədvəllərində bunun təmin edilməsini laqeyd etdik.

Ancaq bütün bunlar itirilmiş deyil. Bu atributu mövcud verilənlər bazasına əlavə etmək üçün ALTER TABLE əmrini istifadə edə bilərik. Biz əmək haqqını tam dəyər olaraq saxlamaq istəyirik. Sintaksis, CREATE TABLE komutuna olduqca bənzərdir, burada:

ALTER TABLE işçiləri ADD əmək haqqı INTEGER NULL;

Bu xüsusiyyət üçün NULL dəyərlərinə icazə verildiyini bildiririk. Çox hallarda mövcud sütun əlavə edərkən heç bir seçim yoxdur. Bu, masanın artıq bu xüsusiyyətə giriş olmayan satırlar olması ilə bağlıdır. Buna görə, DBMS avtomatik olaraq boşluğu doldurmaq üçün NULL dəyərini əlavə edir.

Və bu SQL veritabanımıza və cədvəl yaratma prosesinə baxır. Bizim SQL tutorial seriyasında yeni taksitlər üçün tez-tez yoxlayın. Yeni verilənlər bazası haqqında məlumat bazaları əlavə edildikdə e-poçt xatırlatıcısı istəyirsinizsə, bülletenimizə abunə olduğunuza əmin olun!