Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

2. diel - MS-SQL krok za krokom: Vytvorenie databázy a tabuľky

V predchádzajúcej lekcii, MS-SQL krok za krokom: Úvod do MS-SQL a príprava prostredia, sme si povedali niečo o relačných databázach a pripravili sme si prostredie.

Dnes si vytvoríme databázu a v nej nejakú tabuľku.

Pridanie databázy do nového projektu

Vo Visual Studiu si vytvorte konzolovú aplikáciu v C#. V okne Solution Explorer kliknite pravým tlačidlom na projekt a vyberte Add -> New Item.

Pridanie databázy do projektu vo Visual Studio - MS-SQL databázy krok za krokom

Vyberte kategóriu Dáta a položku Service-based Database. Databázu pomenujte napríklad webDatabase. V MS-SQL databázach je zvykom používať pri pomenovávaní CamelCase, diakritike sa ako vždy vyhneme. Dialóg potvrdíme.

Vytvorenie MS-SQL databázy - MS-SQL databázy krok za krokom

Máme všetko pripravené na to, aby sme sa mohli začať učiť jazyk T-SQL.

Jazyk T-SQL

T-SQL označuje Transact Structured Query Language, teda štruktúrovaný dopytovací jazyk. T-SQL je tzv. jazyk deklaratívny. Zatiaľ čo v imperatívnych jazykoch počítača vlastne hovoríme krok po kroku čo má urobiť, v jazykoch deklaratívnych iba hovoríme čo má byť výsledkom a už nás nezaujíma, ako tento výsledok počítač dosiahne. Vďaka tomu sú databázové otázky zjednodušené na príkaz typu "Vráť mi 10 užívateľov s najvyšším hodnotením". Databáza takúto otázku pochopí, rozloží si ju na nejaké svoje inštrukcie a tak ju spracuje. Nám potom naozaj vráti výsledok bez toho, aby sme tušili, ako k nemu došla. Ak vám príkaz prišiel ako nadsadenie, tak to tak nie je a príkazy naozaj takto vyzerajú. Len sú anglicky.

T-SQL sa používa na platforme MS-SQL a ak sa nedostanete do jeho hlbín, tak je totožný s SQL. Každý výrobca databázy si SQL trochu upraví, ale základ je vždy rovnaký.

SQL sa pôvodne volalo SEQUEL (Structured English Query Language) a vzniklo v laboratóriách spoločnosti IBM s cieľom vytvoriť jazyk, ktorým by sa dalo komunikovať s databázou jednoduchou angličtinou. SQL (relačné) databázy sa potom rozširovali a ujali. Dnes sa prakticky nič iné nepoužíva a aj keď má T-SQL v objektovom programovaní značné nevýhody, firmám sa nechce prechádzať na nič iné (aj keď existujú alternatívne riešenia). Ale to sme už odbočili.

V T-SQL (a SQL všeobecne) sa väčšinou píšu príkazy veľkými písmenami, to preto, že ich to lepšie odlíši od zvyšku dopytu alebo od kódu našej aplikácie (napr. v ASP.NET). Názvy tabuliek, stĺpcov a ďalšie identifikátory sa v T-SQL píšu CamelCase notáciou (prvé písmeno slova veľké, ďalšie malé, bez medzier). Je dobrým zvykom vkladať ich do hranatých zátvoriek (na slovenskej klávesnici AltGt + F a AltGt + G).

Vytvorenie tabuľky

Databázu si otvorte v okne Serve Explorer. Ak ho nevidíte, prejdite do menu View > Server Explorer. Databázu si rozkliknite, uvidíte 7 zložiek, nás zatiaľ bude zaujímať zložka Tables. Rozkliknite si ju. Nič v nej nebude, pretože sme si zatiaľ žiadnu tabuľku nepridali. Kliknite pravým tlačidlom na tento priečinok a vyberte Add New Table.

Pridať tabuľku - MS-SQL databázy krok za krokom

Visual Studio otvorí designer tabuľky. Tento designer má okno rozdelené na tri časti. V hornej polovici máme stĺpce našej tabuľky s ich dátovými typmi a ďalšími dôležitými vlastnosťami a dole výsledný T-SQL kód, ktorý sa spustí, keď budeme chcieť databázu vytvoriť.

Vytvorenie tabuľky vo Visual Studiu - MS-SQL databázy krok za krokom

Vpravo hore si pridáme do tabuľky stĺpce. Pridajte si do tabuľky stĺpce FirstName, LastName, BirthDate a NumberOfArticles. Predvolený stĺpec Id, necháme.

Stĺpce v novej tabuľke vo Visual Studio - MS-SQL databázy krok za krokom

Presuňme sa k 2. stĺpcu, kde sú dátové typy jednotlivých stĺpcov tabuľku. Prednastavený máme nchar(10), čo sú textové reťazce s 10 znakmi. Typov je skutočne veľa, ale my si dlho (asi až do konca kurzu) vystačíme len s niekoľkými.

  • Idnecháme na int
  • FirstName a LastName nastavíme na nvarchar(60), to je krátky text s maximálne 60 znakmi.
  • BirthDate na date.
  • Posledné, NumberOfArticles, bude typu int.

Pri všetkých stĺpcoch zrušte začiarknutie v stĺpci Allow Nulls, čo spôsobí, že bude vždy nutné zadať hodnoty. Časom si popíšeme aj ďalšie dátové typy a NULL (ktorý sme zakázali), ale teraz vám s nimi nebudem motať hlavu :) Pri dátových typoch pre text, ak to umožňujú (s tým vám poradí našepkávač, ktorý ste si už určite všimli) sa do zátvoriek uvádza maximálna dĺžka.

Všimnite si, že preddefinovaný stĺpec Id má pri sebe ikonku kľúča. Ide o tzv. primárny kľúč. Kľúče (niekedy indexy) nám umožňujú identifikovať položku v tabuľke. Taký primárny kľúč by mala mať každá tabuľka (aj keď teoreticky nemusí). Keď budeme chcieť užívateľa napr. vymazať, vymažeme ho podľa tohto kľúča (teda podľa Id). Keby sme ho mazali podľa mena, zmazali by sme niekoľko položiek, pretože napríklad Jánov Novákov tam môže byť viac. Podľa Id vymažeme vždy len toho jedného. Aby sa používatelia číslovali automaticky, tak stĺpci Id nastavíme Identity specification. Označte stĺpec Id a v okne Properties (ak ho nevidíte, stlačte F4) si rozbaľte ponuku Identity Specification a pri vlastnosti "Is Identity" vyberte true. Vlastnosť Identity Increment hovorí, že budeme číslo zväčšovať o 1.

Okno properties – nastavenie Identity - MS-SQL databázy krok za krokom

A výsledný návrhár vyzerá takto:

Vytvorenie tabuľky vo Visual Studio - MS-SQL databázy krok za krokom

Kým tabuľku odošlete v kóde, zmeňte jej názov (v hranatých zátvorkách v kóde) na "Users". Kód bude teraz vyzerať takto:

CREATE TABLE [dbo].[Users]
(
    [Id] INT NOT NULL PRIMARY KEY IDENTITY,
    [FirstName] NCHAR(60) NULL,
    [LastName] NCHAR(60) NULL,
    [BirthDate] DATE NULL,
    [NumberOfArticles] INT NULL
)

Navrhnutú tabuľku musíme do databázy "odoslať". Do databázy sa pošle SQL dopyt vygenerovaný Visual Studiom, ktorý vidíme v dolnej polovici návrhára. Odoslanie vykoná tlačidlom Update ktoré sa nachádza nad primárnym kľúčom Id. Teraz sa stali dve udalosti. Tou prvou je, že nám Visual Studio otvorilo dialóg, ktorý (až sa načíta) bude zhŕňať čo v databáze meníme a aký by to mohlo mať vplyv. V našom prípade sa ňu zvláštneho nedeje a preto bude správa stručná a krátka. Ale keby sme napríklad pridávali stĺpce, Visual Studio nás informuje o skutočnosti, akú hodnotu budú mať novo pridané stĺpce pri už existujúcich položkách. Keď sa dialóg načíta, potvrďte ho tlačidlom Update Database.

Dialóg so zhrnutím zmien v datatabáze - MS-SQL databázy krok za krokom

Ďalej nám Visual Studio otvorilo okno Data Tools Operation. Tu sa objavila jedna položka, ktorá sa zmenila na zelenú fajku (ak všetko prebehlo ako má). Keď si ju rozkliknete, uvidíte, že operáciu, ktorú som urobil, Visual Studio doplnilo tým, že sa servera spýtalo práve na možné dôsledky a tie nám zobrazilo. Potom vygenerovalo script, ten spustilo a prebehol úspešne.

Data tools operations - MS-SQL databázy krok za krokom

Keď si okno Server Explorer aktualizujete (prvé tlačidlo v nástrojovej lište tohto okna), tak sa tam nová tabuľka objaví.

Obnovenie Server explorera vo Visual Studio - MS-SQL databázy krok za krokom

Teraz si prejdeme T-SQL kód ktorý Visual Studio vytvorilo.

CREATE TABLE [dbo].[Users]
(
    [Id] INT NOT NULL PRIMARY KEY IDENTITY,
    [FirstName] NCHAR(60) NULL,
    [LastName] NCHAR(60) NULL,
    [BirthDate] DATE NULL,
    [NumberOfArticles] INT NULL
)

Prvý riadok je jasný. Na ďalších riadkoch sa definujú jednotlivé stĺpce tabuľky a ich dátový typ. NOT NULL je to, prečo sme rušili fajky, teda že stĺpce nesmú byť nevyplnené. O hodnote NULL sa dozviete v niektorom z ďalších dielov. Pri nchar k typu uvádzame aj počet znakov. Id je označené ako primárny kľúč tabuľky a IDENTITY nastavuje, aby databáza každému novému užívateľovi priradila o 1 väčšie ID, ako mal ten posledný.

Ak by sme sa rozhodli tabuľku odstrániť, vykonáme to v Server Exploreri. Databázu by sme odstránili v Solution Exploreri.

Spúšťanie scriptu T-SQL

Na databáze môžeme spustiť ľubovoľný T-SQL script. Stačí na ňu v Server Exploreri kliknúť pravým tlačidlom a vybrať New Query.

Vytvorenie SQL dotazu vo Visual Studio - MS-SQL databázy krok za krokom

Otvorí sa nám nový súbor SQL a tam vložíme T-SQL kód. Skúsme si cez zdrojový kód odstrániť našu tabuľku, to vykonáme príkazom:

DROP TABLE [Users];

Keď chceme kód spracovať, klikneme na zelenú šípku Execute, ktorá je vľavo hore, ako bolo tlačidlo Update pri tabuľkách.

Spustenie SQL skriptu vo Visual Studio - MS-SQL databázy krok za krokom

V Server Exploreri sa môžete uistiť, že tabuľka z databázy naozaj zmizla, no nezabudnite ho predtým obnoviť. Teraz si skúste našim SQL dopytom tabuľku znovu vytvoriť:

CREATE TABLE [dbo].[Users]
(
    [Id] INT NOT NULL PRIMARY KEY IDENTITY,
    [FirstName] NCHAR(60) NULL,
    [LastName] NCHAR(60) NULL,
    [BirthDate] DATE NULL,
    [NumberOfArticles] INT NULL
)

V nasledujúcej lekcii, MS-SQL krok za krokom: Vkladanie a mazanie dát v tabuľke, si do našej tabuľky už pridáme nejaké dáta :)


 

Predchádzajúci článok
MS-SQL krok za krokom: Úvod do MS-SQL a príprava prostredia
Všetky články v sekcii
MS-SQL databázy krok za krokom
Preskočiť článok
(neodporúčame)
MS-SQL krok za krokom: Vkladanie a mazanie dát v tabuľke
Článok pre vás napísal Michal Žůrek - misaz
Avatar
Užívateľské hodnotenie:
26 hlasov
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