Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
Využij akce až 80 % zdarma při nákupu e-learningu - více informací. Zároveň pouze tento týden sleva až 80 % na e-learning týkající se Swift
discount week 80

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

V minulej 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 v tutoriálu vytvoríme databáze a do nej nejakú tabuľku.

Vytvorme si databázu, zvyčajne nám pre jeden projekt (web) postačí jedna databázy.

Vo Visual Studiu si vytvorte ľubovoľnú aplikáciu v C # alebo VB.NET, najlepšie bude, keď si asi vytvoríte konzolovú aplikáciu. Vybraný jazyk nás vlastne nebude zaujímať, pretože sa budeme venovať iba databázu. V okne Solution Explorer kliknite pravým tlačidlom na projekt a vyberte Add -> New Item.

Pridanie databázy do projektu vo Visual Studio

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

Vytvorenie MS-SQL databázy

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 u imperatívnych jazykov počítači vlastne hovoríme krok po kroku čo má urobiť, u jazykov deklaratívnych len 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é dotazy zjednodušené na príkaz typu "Vráť mi 10 užívateľov s najvyšším hodnotením". Databáza taký dotaz pochopí, rozloží si ho na nejaké svoje inštrukcie a tak ho 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 nadsázka, tak to tak nie je a príkazy naozaj takto vyzerajú. Len sú anglicky.

T-SQL sa používa na platforme MS-SQL a kým 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 odbočili.

V T-SQL (a SQL všeobecne) sa väčšinou píšu príkazy veľkými písmenami, to preto, že je 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 je vkladať do hranatých zátvoriek (na slovenskej klávesnici AltGt + F a AltGt + G).

Vytvorenie tabuľky

Tento výukový obsah pomáhajú rozvíjať nasledujúce firmy, ktoré možno hľadajú práve teba!

Databázu si v okne Serve Explorer otvorte. Pokiaľ ho nevidíte, zájdite 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 priečinok a vyberte Add New Table.

Pridať tabuľku

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í až budeme chcieť databázu vytvoriť.

Vytvorenie tabuľky vo Visual Studiu

Vpravo hore si pridáme do tabuľky stĺpca. Pridajte si do tabuľky stĺpca Jmeno, Prijmeni, DatumNarozeni a PocetClanku. Predvolené stĺpec Id, ponecháme.

Stĺpce v novej tabuľke vo Visual Studio

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

  • Id ponecháme na int
  • Jmeno a Prijmeni nastavíme na nvarchar(60), to je krátky text o maximálne 60 znakoch.
  • Dátum narodenia na date.
  • Posledný, PocetClanku, bude typu int.

Pri všetkých stĺpcov zrušte zaškrtnutie v stĺpci Allow Nulls, čo spôsobí, že bude hodnoty vždy nutné zadať. Časom si popíšeme i ďalšie dátové typy a NULL (ktorý sme zakázali), ale teraz vám s nimi nebudem motať hlavu :) U dátových typov pre text, ak to umožňujú (s tým vám poradia našepkávač, ktorého 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 treba Janů Novákov tam môže byť viac. Podľa Id vymažeme vždy len toho jedného. Aby sa uží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 au vlastnosti "Is Identity" vyberte true. Vlastnosť Identity Increment hovorí, že budeme číslo zväčšovať o 1.

Okno properties – nastavenie Identity

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

Vytvorenie tabuľky v Visual Studio

Pred tabuľku odošlete v kóde zmeňte jej názov (v hranatých zátvorkách v kóde) na "užívateľ". Kód bude teraz vyzerať 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
)

Navrhnutú tabuľku musíme do databázy "odoslať". Do databázy sa pošle SQL dotaz vygenerovaný Visual Studiom, ktorý vidíme v dolnej polovici návrhára. Odoslanie vykoná tlačidlom Update vľavo hore. 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ť dopad. V našom prípade sa ňu zvláštne nedeje a preto správa bude stručná a krátka. Ale keby sme potrebné pridávali stĺpce, Visual Studio nás informuje o skutočnosti, akú hodnotu budú mať novo pridané stĺpca u už existujúcich položiek. Až sa dialóg načíta, potvrďte ho tlačidlom Update Database.

Dialóg sa sohrnem zmien v databáze

Ď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 rozkliknite, uvidíte, že operácia, ktorú som vykonali, 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 ten prebehol úspešne.

Dáta tools operations

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 exploreru vo Visual Studio

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

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
)

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 začiarknutia, teda že stĺpce nesmú byť nevyplnené. O hodnote NULL sa dozviete v niektorom z ďalších dielov. U nvarchar 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äčšia 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

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šej tabuľku, to prevedieme príkazom:

DROP TABLE [Uzivatele];

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

Spustenie SQL skriptu vo Visual Studio

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

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 budúcej lekcii, MS-SQL krok za krokom: Vkladanie a mazanie dát v tabuľke , si našej tabuľku už naplníme nejakými dátami :) .


 

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
Článok pre vás napísal Michal Žůrek - misaz
Avatar
Ako sa ti páči článok?
Ešte nikto nehodnotil, buď prvý!
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

 

 

Komentáre

Avatar
madewman
Člen
Avatar
madewman:19.9.2018 22:00

čo je to instancia?

Odpovedať
19.9.2018 22:00
"Whether you think you can, or you think you can't - you're right."(Henry Ford)
Avatar
Odpovedá na madewman
Michal Štěpánek:21.9.2018 8:53

Instance - reprezentace datového objektu.
Pojem instance se používá v objektově orientovaných programových jazycích jako jeden ze způsobů reprezentace dat. Jedná se o konkrétní datový objekt, jenž je odvozen z nějakého vzoru (třídy). Třída plní funkci vzoru, který předepisuje, jakým stylem lze jednotlivé objekty vytvářet. Každý objekt má své metody a atributy, jejichž konkretizací vznikají jejich instance. Instancí jednoho objektu může být nekonečné množství, každá je však identická a odlišná od ostatních. Obvykle se tvoří pomocí konstruktoru.

Zdroj: https://it-slovnik.cz/pojem/instance/?…

Editované 21.9.2018 8:54
Odpovedať
21.9.2018 8:53
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Petr Hausner
Člen
Avatar
Petr Hausner:14.11.2018 21:21

Musim poznamenat, ackoli jsem zacatecnik, tak se jedna o super kurz. Tesim se na dalsi lekci. Polopaticke vysvetleni zatim chapu i ja:-) Takze za me palec nahoru.

 
Odpovedať
14.11.2018 21:21
Avatar
Jan Křížek:2.1.2019 22:17

V textu se píše

Vpravo nahoře si přidáme do tabulky sloupce.

kde to prosím přesně najdu?

 
Odpovedať
2.1.2019 22:17
Avatar
Odpovedá na Jan Křížek
Michal Žůrek - misaz:2.1.2019 22:28

pokud jsi postupoval podle návodu otevřelo se ti okno s definicí sloupců (výchozí je sloupec Id) a můžeš si do něho přidávat další sloupce (jako řádky) a každému definovat název a datový typ.

obrázkový návod je sice pro starší verzi Visual Studia, ale v aktuální by to mělo fungovat stejně.

 
Odpovedať
2.1.2019 22:28
Tento výukový obsah pomáhajú rozvíjať nasledujúce firmy, ktoré možno hľadajú práve teba!
Avatar
Martin Zbirovský:14.8.2019 3:31

Zdravím narazil jsem na problém s přidáním databáze. Pokud dám Add -> New Item -> Service-based Database skončí to chybou. Už nevím čím to muže být mam Visual Studio 2019 a v nastavení nainstalováno "SQL Server Express 2016 LocalDB". Služba je zapnuta a nepomohl ani restart.

 
Odpovedať
14.8.2019 3:31
Avatar
Odpovedá na Martin Zbirovský
Martin Zbirovský:14.8.2019 10:44

Povedlo se najít řešení a omluvte tento zbytečný spam.
Pokud by někdo náhodou potřeboval stačí do CMD napsat

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s MSSQLLocalDB
  3. cmd> Sqllocaldb.exe c MSSQLLocalDB
  4. cmd> Sqllocaldb.exe d MSSQLLocalDB
  5. cmd> Sqllocaldb.exe c MSSQLLocalDB
  6. cmd> Sqllocaldb.exe s MSSQLLocalDB
  7. cmd> Sqllocaldb.exe i MSSQLLocalDB
 
Odpovedať
14.8.2019 10:44
Avatar
Michal Drda
Člen
Avatar
Michal Drda:9.2.2020 16:52

Ahoj, potřeboval bych poradit jak přidat sloupec zkouším to už asi hodinu a netuším kde to najít prostě. Děkuji

 
Odpovedať
9.2.2020 16:52
Avatar
Odpovedá na Michal Drda
František Střelka:29.11.2020 5:26

Ahoj, nevím, jestli je to ještě aktuální, ale pokud potřebuješ přidat sloupec v otevřeném projektu, nejprve dvojklikem otevři Tvoji databázi kterou najdeš v okně "Solution Explorer". Potom v okně "Server Explorer" (většinou vlevo) vyber Tvou databázi a v ní dvojklikem tabulku, kde chceš sloupec přidat. Tabulka se Ti otevře v [Design] módu. Do poslední (té prázdné) řádky vyplň název sloupce a DataType atd. Nakonec klikni na "Update" :-)

 
Odpovedať
29.11.2020 5:26
Avatar
Lokren Rymanos:13. októbra 8:24

ahoj,jak propojim visual studio s ms sql serverem,nejde to spustit dle navodu,diky

 
Odpovedať
13. októbra 8:24
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!