3. diel - Vytvorenie tabuľky v databáze vo Visual Studio vo VB.NET
V minulej lekcii, Vytvorenie lokálnej databázy vo Visual Studio vo VB.NET , sme si pripravili databázu.
V dnešnom Databáze - ADO.NET tutoriále, v jazyku VB.NET, sa naučíme tvoriť tabuľky v lokálnej databáze Visual Studia.
Budeme pokračovať v projekte z lekcie Vytvorenie lokálnej databázy vo Visual Studio vo VB.NET
Vytvorenie tabuľky Word
Stromovú štruktúru lokálneho servera, na ktorom je databáza, si môžeme
zobraziť buď cez okno Server Explorer alebo cez okno SQL Server
Object Explorer. My si otvoríme SQL Server Object Explorer,
pretože je priamo určený pre prácu s SQL databázou. Rozbalíme položku
SQL Server -> (localdb)\MSSQLLocalDB - > Databases
. V tejto zložke vidíme našu databázu SlovnicekDB
.
Rozbalíme ju a rovnako tak jej položku Tables, kde máme zatiaľ len
systémové tabuľky.
Vieme, že dáta sa v relačných databázach ukladajú do tabuliek. Do našej databázy budeme chcieť ukladať slovíčka. Najprv musíme vytvoriť novú tabuľku, kde definujeme stĺpce, teda vlastnosti, aké slovíčko má. Na položku Tables klikneme pravým tlačidlom a zvolíme možnosť Add New Table:
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. Dole je výsledný T-SQL kód, ktorý sa spustí a databázu založí, až to budeme chcieť.
Primárny kľúč
Ako už bolo načrtnuté, každá položka v databáze (teda riadok v
tabuľke) by mala mať unikátny identifikátor (stĺpec, v
ktorom je pre každý riadok hodnota jedinečná). Na tento
účel slúži tzv. primárny kľúč. Je to obyčajný
stĺpec, ktorý sa najčastejšie pomenuje jednoducho Id
a bude
typu int
. Názvy stĺpcov budeme písať s veľkým
počiatočným písmenom. Vidíme, že primárny kľúč s názvom
Id
sa nám do tabuľky už pridal na miesto prvého
stĺpca.
Hoci doteraz sme sa snažili písať ukážkové aplikácie v češtine, databázu si navrhneme v angličtine. To preto, že ku koncu kurzu budeme používať technológie, ktoré skloňujú názvy tabuliek a vedia samozrejme len anglicky.
Vloženie ďalších stĺpcov
Pod stĺpec primárneho kľúča Id
si pridáme ďalšie dva
stĺpce. Do Name
druhého stĺpca vložíme Czech
a
pod ním, ako tretí stĺpec, English
. Ide o znenie slovíčka v
češtine av angličtine. Do Data Type
oboch stĺpcov vložíme typ
nvarchar(50)
. Ide o reťazec znakov, kde 50
je
maximálny počet znakov.
Nepleťme si nvarchar
s typom nchar
.
Pri nchar
sa nejedná o maximálnu veľkosť, ale text je vždy
dlhý 50 znakov. Ešte existujú typy char
a varchar
(bez n
), tie nepodporujú kódovanie Unicode, a
preto ich nebudeme používať. Pre krátky text budeme teda vždy používať
typ nvarchar
.
Nakoniec pridáme posledný stĺpec s názvom Difficulty
,
značiaci obtiažnosť slovíčka. Bude typu int
.
Definícia tabuľky je takmer totožná s definíciou triedy. Jednoducho
navolíme atribúty, čo daná entita má. Riadky zapísané v tabuľke potom
môžeme chápať ako jednotlivé inštancie triedy. Tvoríme
teda akoby triedu Word
(slovíčko), ktorá má vlastnosti
Id
, Czech
(české znenie) a English
(anglické znenie). Takto budeme vo výsledku s databázou aj pracovať, ale
nepredbiehajme
Unikátnosť primárneho kľúča
Id
Vráťme sa ešte k stĺpcu Id
. Klikneme naň pravým tlačidlom
a vyberme Properties. V okne Properties nastavme možnosť
Is Identity
na True
(je potrebné rozbaliť
Identity Specification):
Tým sme určili, že stĺpec Id
je vždy
unikátny. Visual Studio nám samo nastavilo aj hodnoty
Identity Increment
a Identity Seed
na 1
.
To znamená, že prvé slovíčko v tabuľke bude mať hodnotu Id
1
, druhé 2
atď. Databáza priradí
automaticky každému novo vloženému slovíčku o
1
vyššiu Id
, o unikátnosť sa nám teda stará
sama.
Id
rastú stále, aj keď nejaké slovíčko
vymažeme a uvoľnené Id
už nebude použité. Je
to z toho dôvodu, že recyklácia starých Id
môže spôsobiť
problémy.
Ak stĺpec Id
ešte nemáme nastavený ako primárny
kľúč pre našu novú tabuľku, tak klikneme pravým tlačidlom na
názov stĺpca a zvolíme možnosť Set Primary
Key:
Každá tabuľka by mala mať primárny kľúč, inak nebudeme schopní jednoznačne určiť konkrétny záznam a niektoré technológie (napr. Entity Framework) by s tabuľkou mohli mať problém pracovať.
Premenovanie tabuľky
Nakoniec si tabuľku premenujeme na Word
(ako slovíčko). To
docielime tak, že v T-SQL kóde prepíšeme na konci prvého
riadku aktuálny názov Table
v hranatých zátvorkách na
Word
:
Tabuľky pomenovávame opäť veľkým písmenom av jednotnom čísle, ako by to bola trieda.
Po premenovaní klikneme na tlačidlo Update. V okne, ktoré sa nám otvorí, klikneme na Update Database na uloženie zmien.
Testovacie dáta
Tabuľku Word
máme týmto založenú. Vytvorme si ešte nejaké
testovacie dáta, aby neboli prázdne. Na tabuľku klikneme pravým tlačidlom a
zvolíme View Data:
Teraz iba vložíme niekoľko slovíčok. Id
sa vypĺňa samo,
stačí teda zadať slovenský a anglický variant a obtiažnosť. Ja som si ich
pridal len niekoľko, vy si ich pokojne naklikajte viac s rôznymi
obtiažnosťami, nech máte čo najviac dát na skúšanie:
Vytvorenie tabuľky
Category
Pridajme si ešte druhú tabuľku. Vďaka tomu si budeme môcť ďalej ukázať aj pokročilejšie otázky cez viacero tabuliek.
Tabuľku pomenujme Category
, pretože tabuľka bude
reprezentovať kategóriu slovíčok. Opäť jej dáme stĺpec
Id
, ktorému nastavíme Identity na
True
a potom ho urobíme primárnym kľúčom. Čo
sa týka ďalších stĺpcov, bude tu iba jeden, opäť typu
nvarchar(50)
as názvom Title
. To bude titulok
kategórie (napr. Počítače
, Zvířata
alebo
Ostatní
). Tabuľku uložíme ako Category
:
Testovacie dáta
Opäť si vložíme testovacie dáta:
Cudzí kľúč
Teraz pridáme slovíčku väzbu na kategóriu, ktoré sa niekedy hovorí
cudzí kľúč alebo relácie. Vráťme sa k
našej tabuľke Word
a pridajme ju ešte jeden stĺpec s názvom
CategoryId
. Bude typu int
. V Properties mu
nastavíme Default Value or Binding na 1. To je predvolená hodnota.
Ďalej v pravom stĺpci designera klikneme pravým tlačidlom na položku
Foreign Keys, zvolíme Add New Foreign Key a pomenujme ho
napríklad FK_Word_Category:
Tento cudzí kľúč (väzba) sa nám vygeneroval aj v T-SQL kóde:
V T-SQL kóde nastavíme, že sa tabuľka Word
pomocou stĺpca
CategoryId
pripojí na primárny kľúč tabuľky
Category
, ktorým je Id
:
Teraz databáza vie, že pokiaľ je napr. pri slovíčku v stĺpci
CategoryId
hodnota 1
, viaže sa k prvej kategórii.
Všetko uložíme tlačidlom Update. Znovu editujme záznamy v tabuľke
Word
a slovíčkam nastavme kategóriu:
Číslo v stĺpci CategoryId
je samozrejme
primárny kľúč do tabuľky Category
,
1
teda zodpovedá záznamu Počítače
, 2
Zvířata
a 3
Ostatní
.
V budúcej lekcii, Prístupy pre prácu s relačnými databázami vo VB.NET , si uvedieme prístupy pre prácu s relačnou
databázou, najmä DataSet
a technológiu LINQ to SQL.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 3x (539.04 kB)
Aplikácia je vrátane zdrojových kódov v jazyku VB.NET