Vytváření databází a tabulek v SQL

Vytvoření databáze

Jste připraveni začít vytvářet databáze a tabulky s jazykem strukturovaných dotazů ? V tomto článku zkoumáme proces vytváření tabulek ručně pomocí příkazů CREATE DATABASE a CREATE TABLE. Pokud jste noví v programu SQL, můžete nejprve přečíst článek našeho článku SQL Basics .

Obchodní požadavky

Předtím, než si sedneme na klávesnici, musíme zajistit, abychom měli pevné pochopení požadavků zákazníka. Jaký je nejlepší způsob, jak získat tento náhled? Samozřejmě mluvit se zákazníkem! Poté, co jsme se usadili s ředitelem pro lidské zdroje společnosti XYZ, zjistili jsme, že se jedná o prodejní společnost s widgety a především se zajímají o sledování informací o svých prodejních pracovnících.

Společnost XYZ Corporation rozděluje své prodejní síly na východní a západní oblasti, z nichž každá je rozdělena na mnoho oblastí, na které se vztahují jednotlivé obchodní zástupce. Personální oddělení by chtělo sledovat území, na které se vztahuje každý zaměstnanec, jakož i informace o platu a strukturu dohledu každého zaměstnance. Abychom vyhověli těmto požadavkům, navrhli jsme databázi sestávající ze tří tabulek, které jsou uvedeny v diagramu Entity-Relationship na této stránce.

Výběr platformy databáze

Rozhodli jsme se použít databázový systém (nebo DBMS), který je založen na jazyce strukturovaných dotazů (SQL). Proto by měly být všechny příkazy pro tvorbu databáze a tabulky zapsány se standardním ANSI SQL.

Další výhodou je, že pomocí SQL kompatibilního s ANSI zajistí, že tyto příkazy budou pracovat na jakémkoli DBMS, který podporuje standard SQL , včetně Oracle a Microsoft SQL Server. Pokud jste dosud nezvolili platformu pro svou databázi, článek Volby softwaru pro databázi vám prochází procesem výběru.

Vytvoření databáze

Naším prvním krokem je vytvoření samotné databáze. Mnoho databázových systémů nabízí řadu možností přizpůsobení parametrů databáze v tomto kroku, ale naše databáze umožňuje pouze jednoduchou tvorbu databáze. Stejně jako u všech našich příkazů si můžete přečíst dokumentaci vašeho DBMS, abyste zjistili, zda některé pokročilé parametry podporované vaším konkrétním systémem odpovídají vašim potřebám. Použijte příkaz CREATE DATABASE pro nastavení naší databáze:

Vytvořte personál DATABASE

Zvláštní upozornění na kapitalizaci používané ve výše uvedeném příkladu. Je běžnou praxí mezi programátory SQL používat všechny velká písmena pro klíčová slova SQL, jako jsou "CREATE" a "DATABASE" při použití všech malých písmen pro uživatelsky definované názvy, jako je "personální" název databáze. Tyto konvence zajišťují snadnou čitelnost.

Pokračujte ve čtení tohoto tutoriálu při vytváření tabulek pro naši databázi.

Další informace

Pokud byste se chtěli dozvědět více o jazyce strukturovaných dotazů , přečtěte si Úvod do SQL nebo se zaregistrujte k bezplatnému kurzu e-mailu Learning SQL.

Nyní, když jsme navrhli a vytvořili naši databázi, jsme připraveni začít vytvářet tři tabulky používané k ukládání osobních údajů společnosti XYZ Corporation. Budeme provádět tabulky, které jsme navrhli v předchozí části tohoto tutoriálu.

Vytvoření naší první tabulky

První tabulka obsahuje osobní údaje pro každého zaměstnance naší společnosti. Musíme zahrnout jméno, plat, ID a správce každého zaměstnance. Je dobré, aby se poslední a první jména oddělily do samostatných polí, aby se v budoucnu zjednodušilo vyhledávání a třídění dat. Také budeme sledovat správce každého zaměstnance vložením odkazu na zaměstnané ID manažera v každém záznamu o zaměstnancích. Nejprve se podívejme na požadovanou tabulku zaměstnanců.

Atribut ReportsTo ukládá ID manažera pro každého zaměstnance. Z ukázkových záznamů můžeme určit, že Sue Scampi je manažerem jak Tom Kendall, tak John Smith. Neexistují však žádné informace v databázi správce společnosti Sue, jak je naznačeno položkou NULL v jejím řádku.

Nyní můžeme pomocí SQL vytvořit tabulku v naší osobní databázi. Než tak učiníme, ujistěte se, že jsme ve správné databázi vydáním příkazu USE:

USE personál;

Případně "pracovníci databáze DATABASE"; příkaz by prováděl stejnou funkci. Nyní se můžeme podívat na příkaz SQL použitý k vytvoření tabulky zaměstnanců:

CREATE TABLE zaměstnanci (employeeid INTEGER NOT NULL, příjmení VARCHAR (25) NOT NULL, jméno VARCHAR (25) NOT NULL, reportsto INTEGER NULL);

Stejně jako u výše uvedeného příkladu si všimněte, že konvence programování diktuje, že používáme všechna velká písmena pro klíčová slova SQL a malá písmena pro sloupce a tabulky s názvy uživatelem. Příkaz nahoře se může zpočátku zdávit jako nejasný, ale za ním je vlastně jednoduchá struktura. Zde je zobecněné zobrazení, které by mohlo trochu vyřešit věci:

CREATE TABLE název_tabulky (atributy typu datový typ, ..., atributy datových typů);

Atributy a typy dat

V předchozím příkladu je název tabulky zaměstnanci a obsahují čtyři atributy: employeeid, lastname, firstname, and reportsto. Datový typ udává typ informací, které si přejeme uložit v každém poli. Identifikátor zaměstnance je jednoduché celočíselné číslo, a proto použijeme datový typ INTEGER pro políčko employeeid a pole reportsto. Názvy zaměstnanců budou znakové řetězce s proměnnou délkou a neočekáváme, že žádný zaměstnanec bude mít jméno nebo příjmení delší než 25 znaků. Proto použijeme pro tyto pole typ VARCHAR (25).

Hodnoty NULL

Můžeme také zadat hodnotu NULL nebo NOT NULL do pole možností příkazu CREATE. To jednoduše informuje databázi, zda jsou při přidávání řádků do databáze povoleny hodnoty NULL (nebo prázdné) pro daný atribut. V našem příkladu oddělení lidských zdrojů vyžaduje, aby pro každého zaměstnance bylo uloženo ID zaměstnance a úplný název. Nicméně, ne každý zaměstnanec má manažera - CEO hlásí nikomu! - tak povolíme položky NULL v tomto poli. Všimněte si, že NULL je výchozí hodnota a vynecháním této možnosti implicitně povolíte hodnoty NULL pro atribut.

Stavět zbývající tabulky

Nyní se podívejme na tabulku území. Z rychlého pohledu na tato data se zdá, že musíme uložit celé číslo a dvě řetězce s proměnnou délkou. Stejně jako v předchozím příkladu neočekáváme, že ID regionu bude spotřebovat více než 25 znaků. Některé z našich území však mají delší jména, takže rozšíříme povolenou délku tohoto atributu na 40 znaků. Podívejme se na odpovídající SQL:

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

Nakonec použijeme tabulku EmployeeTerritories pro ukládání vztahů mezi zaměstnanci a územími. Podrobné informace o každém zaměstnance a území jsou uloženy v předchozích dvou tabulkách. Proto v této tabulce potřebujeme uložit pouze dvě celočíselná identifikační čísla. Pokud potřebujeme tuto informaci rozšířit, můžeme použít příkaz JOIN v našich příkazech pro výběr dat, abychom získali informace z více tabulek. Tato metoda ukládání dat snižuje nadbytečnost v naší databázi a zajišťuje optimální využití prostoru na paměťových discích. Příkaz JOIN pokryjeme hlouběji v budoucím výukovém programu. Zde je kód SQL pro implementaci naší finální tabulky:

CREATE TABLE zaměstnance (zaměstnanec INTEGER NOT NULL, territoryid INTEGER NOT NULL);

Mechanismus SQL poskytuje změnu struktury databáze po vytvoření

Pokud jste dnes obzvlášť obezřetní, mohli byste si všimnout, že jsme "náhodou" při implementaci našich databázových tabulek vynechali jednu z požadavků na návrh. Personální ředitel společnosti XYZ Corporation požadoval, aby databáze sledovala informace o mzdách zaměstnanců a zanedbali jsme to v tabulkách databází, které jsme vytvořili.

Nicméně, vše není ztraceno. Pomocí příkazu ALTER TABLE můžeme tento atribut přidat do naší stávající databáze. Chceme plat platu uložit jako celočíselnou hodnotu. Syntaxe je poměrně podobná příkazu CREATE TABLE, tady je:

ALTER TABLE zaměstnanci ADD plat INTEGER NULL;

Všimněte si, že pro tento atribut jsme zadali hodnoty NULL. Ve většině případů neexistuje žádná možnost při přidání sloupce do existující tabulky. Důvodem je skutečnost, že tabulka již obsahuje řádky bez záznamu pro tento atribut. DBMS proto automaticky vloží hodnotu NULL pro vyplnění prázdného místa.

A to nám napovídá náš pohled na databázi SQL a proces vytváření tabulky. Zkontrolujte častěji nové splátky v sérii SQL tutorial. Pokud byste chtěli upozornění na e-mail při přidávání nových článků do stránky O databázích, nezapomeňte si objednat náš informační bulletin!