Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 2 - MS-SQL krok za krokem: Vytvoření databáze a tabulky

V minulé lekci, MS-SQL krok za krokem: Úvod do MS-SQL a příprava prostředí, jsme si řekli něco o relačních databázích a připravili jsme si prostředí.

Dnes si v tutoriálu vytvoříme databázi a do ní nějakou tabulku.

Komponenty pro práci s databází

Než se pustíme do tvorby databáze, nejprve si zkontrolujeme, že máme ve Visual Studiu nainstalované potřebné nástroje. Otevřeme si Visual Studio Installer a klikneme na možnost Změnit:

Otevření Visual Studio Installer - MS-SQL databáze krok za krokem

V následujícím okně vybereme položku Vývoj desktopových aplikací pomocí .NET a v pravé části zkontrolujeme, zda máme zaškrtnutou položku SQL Server Data Tools:

Kontrola nainstalovaných komponent - MS-SQL databáze krok za krokem

Pokud je tato položka zaškrtnuta, můžeme instalátor ukončit a přejít k tvorbě projektu. V opačném případě se přepneme na záložku Jednotlivé komponenty a v nové nabídce níže zaškrtneme komponentu SQL Server Data Tools, automaticky se nám označí i další potřebné komponenty. Poté klikneme na tlačítko Změnit, čímž spustíme instalaci nástrojů pro práci s databází:

Přidání komponent pro práci s databází - MS-SQL databáze krok za krokem

Poté se již můžeme pustit do tvorby databáze. Obvykle nám pro jeden projekt (web) postačí jedna databáze.

Přidání databáze do nového projektu

Ve Visual Studiu si vytvořte libovolnou aplikaci v C# nebo VB.NET, nejlepší bude, když si asi vytvoříte konzolovou aplikaci. Vybraný jazyk nás vlastně nebude zajímat, protože se budeme věnovat pouze databázi. V okně Solution Explorer klikněte pravým tlačítkem na projekt a vyberte Add -> New Item.

Přidání databáze do projektu ve Visual Studio - MS-SQL databáze krok za krokem

Vyberte kategorii Data a položku Service-based Database. Databázi pojmenujte třeba databazeProWeb. V MS-SQL databázích je zvykem používat CamelCase při pojmenovávání, diakritice se jako vždy vyhneme. Dialog potvrdíme.

Vytvoření MS-SQL databáze - MS-SQL databáze krok za krokem

Máme vše připraveno k tomu, abychom se mohli začít učit jazyk T-SQL.

Jazyk T-SQL

T-SQL označuje Transact Structured Query Language, tedy strukturovaný dotazovací jazyk. T-SQL je tzv. jazyk deklarativní. Zatímco u imperativních jazyků počítači vlastně říkáme krok po kroku co má udělat, u jazyků deklarativních pouze říkáme co má být výsledkem a již nás nezajímá, jak tohoto výsledku počítač dosáhne. Díky tomu jsou databázové dotazy zjednodušeny na příkaz typu "Vrať mi 10 uživatelů s nejvyšším hodnocením". Databáze takový dotaz pochopí, rozloží si ho na nějaké své instrukce a tak jej zpracuje. Nám poté opravdu vrátí výsledek, aniž bychom tušili, jak k němu došla. Pokud vám příkaz přišel jako nadsázka, tak tomu tak není a příkazy opravdu takto vypadají. Jen jsou anglicky.

T-SQL se používá na platformě MS-SQL a dokud se nedostanete do jeho hlubin, tak je totožný s SQL. Každý výrobce databáze si SQL trochu upraví, ale základ je vždy stejný.

SQL se původně jmenovalo SEQUEL (Structured English Query Language) a vzniklo v laboratořích společnosti IBM s cílem vytvořit jazyk, kterým by se dalo komunikovat s databází jednoduchou angličtinou. SQL (relační) databáze se poté rozšiřovaly a ujaly. Dnes se prakticky nic jiného nepoužívá a i když má T-SQL v objektovém programování značné nevýhody, firmám se nechce přecházet na nic jiného (i když existují alternativní řešení). Ale to jsme odbočili.

V T-SQL (a SQL obecně) se většinou píší příkazy velkými písmeny, to proto, že je to lépe odliší od zbytku dotazu nebo od kódu naší aplikace (např. v ASP.NET). Názvy tabulek, sloupců a další identifikátory se v T-SQL píší CamelCase notací (první písmeno slova velké, další malá, bez mezer). Je dobrým zvykem je vkládat do hranatých závorek (na české klávesnici AltGt + F a AltGt + G).

Vytvoření tabulky

Databázi si v okně Serve Explorer otevřete. Pokud ho nevidíte, zajděte do menu View > Server Explorer. Databázi si rozklikněte, uvidíte 7 složek, nás zatím bude zajímat složka Tables. Rozklikněte si ji. Nic v ní nebude, protože jsme si zatím žádnou tabulku nepřidali. Klikněte pravým tlačítkem na tuto složku a vyberte Add New Table.

Přidat tabulku - MS-SQL databáze krok za krokem

Visual Studio otevře designer tabulky. Tento designer má okno rozdělené na tři části. V horní polovině máme sloupce naší tabulky s jejich datovými typy a dalšími důležitými vlastnostmi a dole výsledný T-SQL kód, který se spustí až budeme chtít databázi vytvořit.

Vytvoření tabulky ve Visual Studiu - MS-SQL databáze krok za krokem

Vpravo nahoře si přidáme do tabulky sloupce. Přidejte si do tabulky sloupce Jmeno, Prijmeni, DatumNarozeni a PocetClanku. Výchozí sloupec Id, ponecháme.

Sloupce v nové tabulce ve Visual Studio - MS-SQL databáze krok za krokem

Přesuňme se k 2. sloupci, kde jsou datové typy jednotlivých sloupců tabulku. Přednastavený máme nchar(10), což jsou textové řetězce o 10 znacích. Typů je opravdu mnoho, ale my si dlouho (asi až do konce seriálu) vystačíme jen s několika.

  • Id ponecháme na int
  • Jmeno a Prijmeni nastavíme na nvarchar(60), to je krátký text o maximálně 60 znacích.
  • Datum narození na date.
  • Poslední, PocetClanku, bude typu int.

U všech sloupců zrušte zatržení ve sloupci Allow Nulls, což způsobí, že bude hodnoty vždy nutné zadat. Časem si popíšeme i další datové typy a NULL (který jsme zakázali), ale teď vám s nimi nebudu motat hlavu :) U datových typů pro text, pokud to umožňují (s tím vám poradí našeptávač, kterého jste si již určitě všimli) se do závorek uvádí maximální délka.

Všimněte si, že předdefinovaný sloupec Id má u sebe ikonku klíče. Jedná se o tzv. primární klíč. Klíče (někdy indexy) nám umožňují identifikovat položku v tabulce. Takový primární klíč by měla mít každá tabulka (i když teoreticky nemusí). Když budeme chtít uživatele např. vymazat, vymažeme ho podle tohoto klíče (tedy podle Id). Kdybychom ho mazali podle jména, smazali bychom několik položek, protože třeba Janů Nováků tam může být více. Podle Id vymažeme vždy jen toho jednoho. Aby se uživatelé číslovali automaticky, tak sloupci Id nastavíme Identity specification. Označte sloupec Id a v okně Properties (pokud jej nevidíte, stiskněte F4) si rozbalte nabídku Identity Specification a u vlastnosti "Is Identity" vyberte true. Vlastnost Identity Increment říká, že budeme číslo zvětšovat o 1.

Okno properties – nastavení Identity - MS-SQL databáze krok za krokem

A výsledný návrhář vypadá takto:

Vytvoření tabulky v Visual Studio - MS-SQL databáze krok za krokem

Než tabulku odešlete v kódu změňte její název (v hranatých závorkách v kódu) na "Uzivatele". Kód bude nyní vypadat takto:

CREATE TABLE [dbo].[Uzivatele]
(
    [Id] INT NOT NULL PRIMARY KEY IDENTITY,
    [Jmeno] NVARCHAR(60) NOT NULL,
    [Prijmeni] NVARCHAR(60) NOT NULL,
    [DatumNarozeni] DATE NOT NULL,
    [PocetClanku] INT NOT NULL
)

Navrženou tabulku musíme do databáze "odeslat". Do databáze se pošle SQL dotaz vygenerovaný Visual Studiem, který vidíme v dolní polovině návrháře. Odeslání provede tlačítkem Update vlevo nahoře. Teď se staly dvě události. Tou první je, že nám Visual Studio otevřelo dialog, který (až se načte) bude shrnovat co v databázi měníme a jaký by to mohlo mít dopad. V našem případě se ni zvláštního neděje a proto zpráva bude stručná a krátká. Ale kdybychom třeba přidávali sloupce, Visual Studio nás informuje o skutečnosti, jakou hodnotu budou mít nově přidané sloupce u již stávajících položek. Až se dialog načte, potvrďte ho tlačítkem Update Database.

Dialog se sohrnem změn v databázi - MS-SQL databáze krok za krokem

Dále nám Visual Studio otevřelo okno Data Tools Operation. Zde se objevila jedna položka, která se změnila v zelenou fajfku (pokud vše proběhlo jak má). Když si ji rozkliknete, uvidíte, že operace, kterou jsem provedli, Visual Studio doplnilo tím, že se serveru zeptalo právě na možné důsledky a ty nám zobrazilo. Poté vygenerovalo script, ten spustilo a ten proběhl úspěšně.

Data tools operations - MS-SQL databáze krok za krokem

Když si okno Server Explorer aktualizujete (první tlačítko v nástrojové liště tohoto okna), tak se tam nová tabulka objeví.

Obnovení Server exploreru ve Visual Studio - MS-SQL databáze krok za krokem

Nyní si projdeme T-SQL kód který Visual Studio vytvořilo.

CREATE TABLE [dbo].[Uzivatele]
(
    [Id] INT NOT NULL PRIMARY KEY IDENTITY,
    [Jmeno] NVARCHAR(60) NOT NULL,
    [Prijmeni] NVARCHAR(60) NOT NULL,
    [DatumNarozeni] DATE NOT NULL,
    [PocetClanku] INT NOT NULL
)

První řádek je jasný. Na dalších řádcích se definují jednotlivé sloupce tabulky a jejich datový typ. NOT NULL je to, proč jsme rušili zatržítka, tedy že sloupce nesmí být nevyplněné. O hodnotě NULL se dozvíte v některém z dalších dílů. U nvarchar k typu uvádíme i počet znaků. Id je označeno jako primární klíč tabulky a IDENTITY nastavuje, aby databáze každému novému uživateli přiřadila o 1 větší ID, než měl ten poslední.

Pokud bychom se rozhodli tabulku odstranit, provedeme to v Server Exploreru. Databázi bychom odstranili v Solution Exploreru.

Spouštění scriptu T-SQL

Na databázi můžeme spustit libovolný T-SQL script. Stačí na ni v Server Exploreru kliknout pravým tlačítkem a vybrat New Query.

Vytvoření SQL dotazu ve Visual Studio - MS-SQL databáze krok za krokem

Otevře se nám nový soubor SQL a tam vložíme T-SQL kód. Zkusme si přes zdrojový kód odstranit naší tabulku, to provedeme příkazem:

DROP TABLE [Uzivatele];

Když chceme kód zpracovat, klikneme na zelenou šipku Execute, která je vlevo nahoře, jako bylo tlačítko Update u tabulek.

Spuštění SQL skriptu ve Visual Studio - MS-SQL databáze krok za krokem

V Server Exploreru se můžete ujistit, že tabulka z databáze opravdu zmizela, nezapomeňte jej předtím obnovit. Nyní si zkuste tabulku znovu vytvořit naším SQL dotazem:

CREATE TABLE [dbo].[Uzivatele]
(
    [Id] INT NOT NULL PRIMARY KEY IDENTITY,
    [Jmeno] NVARCHAR(60) NOT NULL,
    [Prijmeni] NVARCHAR(60) NOT NULL,
    [DatumNarozeni] DATE NOT NULL,
    [PocetClanku] INT NOT NULL
)

V příští lekci, MS-SQL krok za krokem: Vkládání a mazání dat v tabulce, si naší tabulku již naplníme nějakými daty :).


 

Předchozí článek
MS-SQL krok za krokem: Úvod do MS-SQL a příprava prostředí
Všechny články v sekci
MS-SQL databáze krok za krokem
Přeskočit článek
(nedoporučujeme)
MS-SQL krok za krokem: Vkládání a mazání dat v tabulce
Článek pro vás napsal Michal Žůrek - misaz
Avatar
Uživatelské hodnocení:
400 hlasů
Autor se věnuje tvorbě aplikací pro počítače, mobilní telefony, mikroprocesory a tvorbě webových stránek a webových aplikací. Nejraději programuje ve Visual Basicu a TypeScript. Ovládá HTML, CSS, JavaScript, TypeScript, C# a Visual Basic.
Aktivity