2. díl - Vytvoření databáze v MS SQL Management Studio

C# .NET Databáze Vytvoření databáze v MS SQL Management Studio

V minulém dílu našeho seriálu tutoriálů o C# .NET jsme si udělali úvod do relačních databází a nainstalovali si Microsoft SQL Server. Dnes si vytvoříme databázi, se kterou budeme po zbytek seriálu komunikovat.

Vytvoření databáze

Způsobů, jak databázi vytvořit, je mnoho. Jako nástroj můžeme používat buď SQL Server Management Studio nebo přímo Visual Studio. Jako jednodušší způsob se mi zdá vytvořit databázi přímo v Management Studiu, jelikož u Visual Studia je více postupů a ještě se liší podle verzí. Vytvoříme si databázi na serveru, který máme nainstalovaný na našem počítači. Po nainstalování SQL Serveru spustíme nástroj SQL Server Configuration Manager.

SQL Server Configuration Manager

Aplikace slouží ke zjištění a konfigurování běžících služeb. Okno aplikace vypadá následovně:

Microsoft SQL Server Configuration Manager

Vidíme zde běžící služby, měli byste vidět váš SQL Server, který jsme nainstalovali (a také při instalaci pojmenovali). Můj má název MSSQLSERVER2008. Pokud má stav "Stopped", zapněte jej. Nyní jsme se tedy přesvědčili, že je server na daném stroji přítomen a že je běží.

Nyní spustíme SQL Server Management Studio.

SQL Server Management Studio

Aplikace je administračním nástrojem, ve které budeme navrhovat strukturu databáze a také pracovat s jejím obsahem (tedy s uloženými daty).

Jako první nás Management Studio vyzve k zadání údajů pro připojení k databázi. Jako jméno serveru zadáme localhost\JME­NO_VASEHO_SER­VERU, u mne tedy localhost\MSSQLSER­VER2008. Po kliknutí na Connect se k serveru připojíme.

V levé části aplikace vidíme Object Explorer, kde se zobrazila stromová struktura našeho serveru. Rozbalíme položku Databases, vy zde pravděpodobně budete mít pouze složku se systémovými databázemi, já zde mám již několik databází z různých projektů. Na položku Databases klikneme pravým tlačítkem a zvolíme New database.

Vytvoření nové databáze v MS SQL Management Studio

Jelikož naše testovací aplikace pro práci s databází bude jednoduchý slovníček, databázi pojmenujeme SlovnicekDB.

Vytvoření nové databáze v MS SQL Management Studio

Databáze se objeví v Object Exploreru, rozbalíme ji a stejně tak její položku Tables, kde máme opět jen systémové tabulky.

O tabulkách již byla řeč minule, víme, že takto se data do relační databáze ukládají (relační databáze se používají téměř všude, nerelační jsou výjimkou). Budeme chtít ukládat slovíčka do naší databáze ke slovníčku. Nejprve musíme vytvořit novou tabulku, kde definujeme sloupce, tedy vlastnosti, jaké slovíčko má. Na položku Tables klikneme pravým tlačítkem a zvolíme možnost New Table.

Vytvoření nové tabulky v MS SQL Management Studio

Jak již bylo nastíněno, každá položka v databázi (tedy řádek v tabulce) by měla mít unikátní identifikátor (sloupec, ve kterém je pro každý řádek hodnota jedinečná). K tomuto účelu slouží tzv. primární klíč. Je to obyčejný sloupec, který se nejčastěji pojmenuje jednoduše Id a bude typu int. Názvy sloupců budeme psát s velkým počátečním písmenem.

Ačkoli doteď jsem se snažil psát ukázkové aplikace v češtině, databázi si navrhneme v angličtině. To proto, že ke konci seriálu budeme používat technologie, které skloňují názvy tabulek a umí samozřejmě jen anglicky.

Dále přidáme další 2 sloupce: Czech a English. Jedná se o znění slovíčka v češtině a v angličtině. Sloupce budou typu nvarchar(50). Jedná se o řetězec znaků kde 50 je maximální počet znaků. Neplést s typem nchar, kde se nejedná o maximální velikost, ale text je vždy dlouhý 50 znaků. Ještě existují typy char a varchar (bez n), ty nepodporují kódování Unicode. Pro krátký text budeme tedy vždy používat typ varchar. Nakonec přidáme poslední sloupec Difficulty, značící obtížnost slovíčka. Bude typu int.

Pokud vás napadla podobnost databázové tabulky a třídy v jazyce C#, tak máte pravdu. Definice tabulky je téměř totožná s definicí třídy, jednoduše navolíme atributy co daná entita má. Řádky zapsané v tabulce poté můžeme chápat jako jednotlivé instance třídy. Tvoříme tedy jakoby třídu Word (slovíčko), která má vlastnosti Id, Czech (české znění) a English (anglické znění). Takto budeme ve výsledku s databází i pracovat, ale nepředbíhejme. Vraťme se ještě ke sloupci Id, ten označme a vyberme dole v Column properties možnost Is Identity (je třeba rozbalit Identity Specification), kterou nastavíme na Yes.

Vytvoření nové tabulky v MS SQL Management Studio

Tím jsme určili, že sloupec Id je vždy unikátní. Management Studio nám samo nastavilo i hodnoty Identity Increment a Identity Seed na 1. To znamená, že první slovíčko v tabulce bude mít hodnotu Id 1, druhé 2 atd., databáze přiřadí automaticky každému nově vloženému slovíčku o 1 vyšší Id, o unikátnost se nám tedy stará sama. Id rostou stále, i když nějaké slovíčko vymažeme a Id se tedy uvolní, již nebude použito. Je to z toho důvodu, že recyklace starých Id může způsobit problémy. Takto nastavený sloupec můžeme nastavit jako primární klíč pro naši novou tabulku. Uděláme to jednoduše pravým kliknutím na název sloupce a zvolením možnosti Set primary key.

Nastavení primárního klíče tabulky v MS SQL Management Studio

Každá tabulka by měla mít primární klíč, jinak nebudeme schopni jednoznačně určit konkrétní záznam a některé technologie (např. LINQ to SQL) by s tabulkou ani neuměly pracovat.

Nakonec zavřeme kartu s editorem tabulky a budeme dotázáni, zda ji chceme uložit. To samozřejmě potvrdíme a tabulku pojmenujeme Word (jako slovíčko). Tabulky pojmenováváme opět velkým písmenem a v jednotném čísle, jako by to byla třída.

Vytvoření nové tabulky v MS SQL Management Studio

Databázi máme tímto založenou. Vytvořme si ještě nějaká testovací data, aby nebyla prázdná. Na tabulku klikneme pravým tlačítkem a zvolíme Edit top 200 rows (je možné, že se popisek této volby liší podle verze Management Studia).

Vložení dat do tabulky v SQL Management Studio k MS-SQL databázi

Nyní jen vložíme několik slovíček, Id se vyplňuje samo, stačí tedy zadat českou a anglickou variantu a obtížnost. Já jsem si jich přidal jen několik, vy si jich klidně naklikejte více s různými obtížnostmi, ať máte co nejvíce dat na zkoušení.

Vložení dat do tabulky v SQL Management Studio k MS-SQL databázi

Rozšíření

Pokud vás tvorba databáze příliš neodrovnala (což by neměla :) ), můžete si do ní přidat ještě druhou tabulku. Díky tomu si budeme moci dále ukázat i pokročilejší dotazy přes více tabulek. Pokud chcete začít raději jednoduše, můžete tento krok přeskočit stejně jako pár dále ukázaných dotazů.

Přidejte si stejným způsobem tabulku Category, která bude reprezentovat kategorii slovíček. Opět jí dáme sloupec Id, kterému nastavíme Identity na Yes a poté ho učiníme primárním klíčem. Co se týče dalších sloupců, bude zde pouze jeden opět typu nvarchar(50) s názvem Title. To bude titulek kategorie (např. Počítače, Zvířata nebo Ostatní). Tabulku uložíme jako Category.

Založení DB tabulky v SQL Management Studio

Opět vytvoříme testovací data:

Naplnění DB tabulky v SQL Management Studio

Nyní přidáme slovíčku vazbu na kategorii, které se někdy říká cizí klíč nebo relace. Vraťme se k naší tabulce Word a přidejme ji ještě jeden sloupec s názvem CategoryId. Bude typu int. V Column Properties mu nastavíme Default Value or Bind na 1. To je výchozí hodnota. Klikneme na něj pravým tlačítkem a z menu zvolíme Relationships...

Relace v SQL Management Studio

V nově otevřeném okně pomocí tlačítka Add přidáme nový vztah (relaci). V položce Tables And Columns Specification klikneme na tlačítko se třemi tečkami. Zde nastavíme, že se tabulka Word pomocí slouce CategoryId připojí na primární klíč tabulky Category, kterým je Id. Potvrdíme.

Cizí klíč v SQL Management Studio

Nyní databáze ví, že pokud je např. u slovíčka ve sloupci CategoryId hodnota 1, váže se k první kategorii. Vše uložíme (pravým na záložku a Save). Znovu editujte záznamy v tabulce Word a slovíčkům nastavte kategorii:

Vložení dat do tabulky v SQL Management Studio k MS-SQL databázi

Číslo je samozřejmě primární klíč do tabulky Category, 1 tedy odpovídá záznamu Počítače, 2 Zvířata a 3 Ostatní.

Příště si představíme přístupy, pomocí kterých s databází můžeme z C# .NET komunikovat.


 

  Aktivity (1)

Článek pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Jak se ti líbí článek?
Celkem (9 hlasů) :
55555


 


Miniatura
Předchozí článek
Úvod do databází v C#
Miniatura
Všechny články v sekci
Databáze v C# - ADO.NET

 

 

Komentáře
Zobrazit starší komentáře (25)

Avatar
Luboš
Člen
Avatar
Luboš:

Ahoj, chci vědět jak se spouští SQL server. Píšeš, že ho mám vidět spuštěný v SQL Server Configuration Managerovi, ale nic tam není a, že jsem si ho měl pojmenovat při instalaci, ale při instalaci to nic nechtělo. Mám SQL server 2014, VS 2015, Win7.

 
Odpovědět 10.10.2015 22:07
Avatar
Milan Křepelka
Redaktor
Avatar
Milan Křepelka:

SQL Server běží jako služba. services.msc => SQL server

 
Odpovědět 11.10.2015 8:57
Avatar
Luboš
Člen
Avatar
Odpovídá na Milan Křepelka
Luboš:

Jako služba mi to právě neběží. Jediné co mi běží s názvem SQL je SQL server VSS writer.

 
Odpovědět 11.10.2015 10:29
Avatar
Luboš
Člen
Avatar
Odpovídá na Luboš
Luboš:

Asi jsem udělal někde chybu při instalaci. No nic, zkusím odinstalovat 2014 a nainstalovat 2008.

 
Odpovědět 11.10.2015 10:42
Avatar
Odpovídá na Luboš
husarik.marek:

mám úplně stejný problém s SQL 2014 Express - nic neběží a nedokážu to spustit, Možná je tradičně problém mezi židlí a klávesnicí, ale podle návodu postupovat nelze

 
Odpovědět 29.10.2015 6:44
Avatar
Milan Křepelka
Redaktor
Avatar
Odpovídá na husarik.marek
Milan Křepelka:

Třeba se Luboš svěří kde udělal chybku. Napiš mu. Osobně tyhlecty věcičky už dělám intuitivně a přijde mi to jako "next next next" ...

 
Odpovědět 29.10.2015 7:12
Avatar
Luboš
Člen
Avatar
Odpovídá na husarik.marek
Luboš:

2014 jsem odinstaloval a nainstaloval 2008 a jede to. Asi byla chyba nastavení při instalaci. Ale doporučuji nainstalovat databázi podle tohoto tutoriálu:

https://www.youtube.com/watch?…

ukazuje to na VS2012, takže jestli máš novější, budeš potřebovat ještě tohle:

https://www.youtube.com/watch?…

a pokud ti nepůjde ukládat, tak tento postup:

For those of you having issues with the updating of info from the datasource to the database and also for updated info showing on the windows form, try to follow these steps:

Step 1:
Go to database explorer,
right click database name (mdf file),
select modify connections,
select Browse,
within your project folder, go into the bin folder, then go into the Debug folder,
select the mdf file in the debug folder,
select Test Connection to ensure connection succeeds, then click OK

Next, go to properties of the database (mdf file),
click the connection string box in the properties explorer menu,
copy the data source file path in the connection string box

Step 2:
In the Solutions Explorer box, double click 'Properties',
go to Settings option,
Insert Name - (can be anything you want, I named mine EmployeeConnString)
Insert Type - In the dropdown box, select connection string
Insert Scope - in the dropdown box, select application
Insert Value - right-click paste (previously copied file path), press enter
You can exit this tab

Step 3:
Go back to the solutions explorer box and select the database file in your vs project(mdf file),
Go to the properties explorer window to the copy to output directory option,
change "Copy Always" to "Copy Never" or "Do Not Copy",

These steps worked for me and now everything I enter updates correctly, as well as when i re-run the application, the updated data shows in the new form box.
Odpovědět · 14

Zdá se to složité, ale stojí to za to. Na konci budeš umět propojit Form s databází.

 
Odpovědět 29.10.2015 7:50
Avatar
Luboš
Člen
Avatar
Odpovídá na Luboš
Luboš:

Oprava1: první odkaz ignoruj. Začátek tutorialu je tady:

https://www.youtube.com/watch?…

Oprava2: neukazuje postup v VS2012, ale v VS2010

Doplnění: Data Sources jsou v VS2015->View->Other Windows (zobrazí se když máš zobrazený Solution a vybraný Form)

 
Odpovědět 29.10.2015 10:34
Avatar
Christina Eirich:

Možna by to někoho zajimalo: Českomoravské informační systémy přinášejí bezpečné a spolehlivé řešení MS SQL Server 2016 pro malé a střední podniky s garantovaným výkonem za nejnižší cenu na trhu. http://www.mssql2016.cz/

 
Odpovědět 4. května 12:05
Avatar
Honza.G
Člen
Avatar
Honza.G:

Zdravím, stáhl jsem to.. Nainstaloval a dále nainstaloval SQL server data tools a SQL server managment tools... a nemohu nikde najít zpouštěč SQL at hledám jak hledám. vždy se mi zpustí tadyk toto.. Možná jsem retard a nevidím to. Předem dík :)

 
Odpovědět 16. listopadu 20:43
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 35. Zobrazit vše