Vytváranie databáz a tabuliek v SQL

Vytvorenie databázy

Ste pripravení začať vytvárať databázy a tabuľky s jazykom štruktúrovaných dopytov ? V tomto článku skúmame proces vytvárania tabuliek ručne pomocou príkazov CREATE DATABASE a CREATE TABLE. Ak ste novým jazykom v systéme SQL, môžete najskôr skontrolovať článok nášho jazyka SQL .

Obchodné požiadavky

Predtým, než si sadneme na klávesnicu, musíme zabezpečiť, aby sme plne pochopili požiadavky zákazníka. Aký je najlepší spôsob, ako získať tento prehľad? Hovoriť so zákazníkom, samozrejme! Po usadení sa s riaditeľom ľudských zdrojov spoločnosti XYZ sme sa dozvedeli, že ide o firmu na predaj miniaplikácií a zaujímajú sa predovšetkým o sledovanie informácií o predajcovi.

XYZ Corporation rozdeľuje svoju predajnú silu na východné a západné regióny, z ktorých každá je rozdelená na mnohé územia pokryté jednotlivými obchodnými zástupcami. Oddelenie ľudských zdrojov by chcelo sledovať územie, na ktoré sa vzťahuje každý zamestnanec, ako aj informácie o mzdách a štruktúre dohľadu každého zamestnanca. Aby sme splnili tieto požiadavky, navrhli sme databázu pozostávajúcu z troch tabuliek, ktoré sú uvedené v schéme entity-relationship na tejto stránke.

Výber databázovej platformy

Rozhodli sme sa použiť databázový systém riadenia (alebo DBMS), ktorý je postavený na štruktúrovanom jazyku dotazu (SQL). Preto by mali byť všetky naše príkazy na tvorbu databázy a tabuľky zapísané so štandardným ANSI SQL.

Ako dodatočný prínos, pomocou SQL-kompatibilného systému ANSI sa zabezpečí, že tieto príkazy budú fungovať na akomkoľvek DBMS, ktorý podporuje štandard SQL vrátane Oracle a Microsoft SQL Server. Ak ste ešte nevybrali platformu pre svoju databázu, v článku sa dostanete k výberu databázového softvéru .

Vytvorenie databázy

Prvým krokom je vytvorenie samotnej databázy. Mnoho databázových systémov ponúka v tomto kroku rad možností, ako prispôsobiť parametre databázy, ale naša databáza umožňuje len jednoduché vytvorenie databázy. Rovnako ako u všetkých našich príkazov, môžete si prečítať dokumentáciu k vášmu DBMS, aby ste zistili, či niektoré pokročilé parametre podporované vašim špecifickým systémom vyhovujú vašim potrebám. Použite príkaz CREATE DATABASE na nastavenie našej databázy:

Vytvorte personál DATABASE

Osobitne si všimnite kapitalizáciu použitú v príklade vyššie. Je bežnou praxou medzi programátormi SQL použiť všetky veľké písmená pre kľúčové slová SQL ako "CREATE" a "DATABASE" pri používaní všetkých malých písmen pre užívateľom definované mená ako "personálny" názov databázy. Tieto konvencie zabezpečujú ľahkú čitateľnosť.

Pokračujte v čítaní tohto tutoriálu pri vytváraní tabuliek pre našu databázu.

Viac informácií

Ak sa chcete dozvedieť viac o jazyku Štruktúrovaný dopyt , prečítajte si Úvod do SQL alebo zaregistrujte sa pre náš bezplatný kurz e-mailu Learning SQL.

Teraz, keď sme navrhli a vytvorili našu databázu, sme pripravení vytvoriť tri tabuľky, ktoré slúžia na ukladanie údajov o zamestnancoch spoločnosti XYZ Corporation. Budeme realizovať tabuľky, ktoré sme navrhli v predchádzajúcej časti tohto tutoriálu.

Vytvorenie našej prvej tabuľky

Naša prvá tabuľka pozostáva z osobných údajov pre každého zamestnanca našej spoločnosti. Musíme zahrnúť meno, plat, ID a manažéra každého zamestnanca. Je dobré osvedčiť, aby ste oddelili posledné mená a mená do samostatných polí, aby ste v budúcnosti zjednodušili vyhľadávanie a triedenie údajov. Tiež budeme sledovať manažéra každého zamestnanca vložením odkazu na ID zamestnanca manažéra do každého záznamu zamestnanca. Najprv sa pozrite na požadovanú tabuľku zamestnancov.

Atribút ReportsTo uloží ID správcu pre každého zamestnanca. Z ukázaných záznamov môžeme zistiť, že Sue Scampi je manažérom Tom Kendall a John Smith. Neexistujú však žiadne informácie v databáze správcu spoločnosti Sue, ako to naznačuje položka NULL v jej riadku.

Teraz môžeme pomocou SQL vytvoriť tabuľku v našej personálnej databáze. Skôr ako to urobíme, skontrolujte, či sme v správnej databáze vydaním príkazu USE:

USE personál;

Alternatívne "personál databázy DATABASE"; príkaz by vykonal rovnakú funkciu. Teraz sa môžeme pozrieť na príkaz SQL použitý na vytvorenie tabuľky zamestnancov:

CREATE TABLE zamestnanci (zamestnanec INTEGER NOT NULL, priezvisko VARCHAR (25) NOT NULL, meno VARCHAR (25) NOT NULL, reportsto INTEGER NULL);

Rovnako ako v prípade vyššie uvedeného príkladu si všimnite, že konvencia programovania určuje, že používame všetky veľké písmená pre kľúčové slová SQL a malé písmená pre stĺpce a tabuľky s názvom používateľov. Príkaz uvedený vyššie sa môže na prvý pohľad zdá byť nejasný, ale za ňou je vlastne jednoduchá štruktúra. Tu je všeobecný pohľad, ktorý by mohol trochu vyčistiť veci:

CREATE TABLE tabuľka_obsah (atribút_obsahu dátových typov, ..., atribúty_databázky);

Atribúty a typy údajov

V predchádzajúcom príklade je názov tabuľky zamestnanci a zahŕňame štyri atribúty: employeeid, lastname, firstname, and reportsto. Dátový typ označuje typ informácií, ktoré chceme uložiť v každom poli. Identifikátor zamestnanca je jednoduché celé číslo, a preto použijeme typ dát INTEGER pre pole employeeid aj reportsto. Názvy zamestnancov budú znakové reťazce s premennou dĺžkou a neočakávame, že žiaden zamestnanec bude mať meno alebo priezvisko dlhšie ako 25 znakov. Pre tieto polia použijeme typ VARCHAR (25).

Hodnoty NULL

Môžeme tiež zadať buď pole NULL alebo NOT NULL v poli voľby príkazu CREATE. To jednoducho informuje databázu, či sú pri pridávaní riadkov do databázy povolené hodnoty NULL (alebo prázdne) pre daný atribút. V našom príklade oddelenie ľudských zdrojov vyžaduje, aby pre každého zamestnanca bolo uložené ID zamestnanca a úplné meno. Avšak nie každý zamestnanec má manažéra - generálny riaditeľ sa hlási nikomu! - preto povolíme zápisy NULL v tomto poli. Všimnite si, že NULL je predvolená hodnota a vynechaním tejto možnosti implicitne povolíte hodnoty NULL pre atribút.

Budovanie zostávajúcich tabuliek

Teraz sa pozrime na tabuľku území. Z rýchleho pohľadu na tieto údaje sa zdá, že musíme uložiť celé číslo a dva reťazce s premenlivou dĺžkou. Rovnako ako v predchádzajúcom príklade neočakávame, že ID regiónu bude spotrebovať viac ako 25 znakov. Niektoré naše územia majú však dlhšie názvy, takže rozšírime povolenú dĺžku tohto atribútu na 40 znakov. Poďme sa pozrieť na zodpovedajúce SQL:

CREATE TABLE územia (territoryid INTEGER NOT NULL, territory Popis VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

Nakoniec použijeme tabuľku Employee Territories na ukladanie vzťahov medzi zamestnancami a územiami. Podrobné informácie o každom zamestnancovi a území sú uložené v predchádzajúcich dvoch tabuľkách. Preto v tejto tabuľke potrebujeme uložiť dve celé čísla. Ak potrebujeme tieto informácie rozširovať, môžeme použiť príkaz JOIN v príkazoch na výber údajov na získanie informácií z viacerých tabuliek. Táto metóda ukladania údajov znižuje redundanciu v našej databáze a zabezpečuje optimálne využitie priestoru na našich pamäťových diskoch. Príručku JOIN pokryjeme hĺbkovo v budúcom výučbe. Tu je kód SQL na implementáciu našej finálnej tabuľky:

CREATE TABLE zamestnancov (zamestnanec INTEGER NOT NULL, territoryid INTEGER NOT NULL);

Mechanizmus SQL poskytuje zmenu štruktúry databázy po vytvorení

Ak ste dnes obzvlášť šikovní, možno by ste si všimli, že "náhodou" sme pri implementácii našich databázových tabuliek vynechali niektorú z návrhových požiadaviek. Riaditeľ ľudských zdrojov spoločnosti XYZ Corporation požiadal, aby databáza sledovala informácie o mzdách zamestnancov a zanedbali sme to v tabuľkách databáz, ktoré sme vytvorili.

Všetko však nie je stratené. Príkaz ALTER TABLE môžeme použiť na pridanie tohto atribútu do našej existujúcej databázy. Chceme uložiť plat ako celočíselnú hodnotu. Syntax je veľmi podobný syntaxi príkazu CREATE TABLE, tu je:

ALTER TABLE zamestnanci ADD plat INTEGER NULL;

Všimnite si, že sme pre tento atribút povolili hodnoty NULL. Vo väčšine prípadov neexistuje žiadna možnosť pri pridávaní stĺpca do existujúcej tabuľky. Je to spôsobené skutočnosťou, že tabuľka už obsahuje riadky bez záznamu pre tento atribút. DBMS preto automaticky vloží hodnotu NULL na vyplnenie prázdneho miesta.

A to obklopuje náš pohľad na databázu SQL a proces tvorby tabuliek. Čítajte späť často o nových splátkach v našom seriáli SQL tutorial. Ak by ste chceli pripomenúť e-mailom pri pridávaní nových článkov na stránku O databázach, uistite sa, že si prihláste náš newsletter!