Tento článek vysvětluje psaní jednoduchých SQL dotazů od těch nejzákladnějších a postupné vylepšování skriptu pro vyřešení některých matematických a datových problémů. Kromě toho se chystáme objasnit pojmy týkající se dotazů SQL.
Ačkoli je tento článek primárně pro začátečníky, obsahuje rady, které budou užitečné pro jakoukoli úroveň zkušeností.
Co je SQL Query v databázi?
Nejprve si promluvme trochu o SQL dotazech, abychom jim správně porozuměli, než získáme praktické zkušenosti s psaním.
SQL je zkratka pro strukturovaný dotazovací jazyk to je základní jazyk používaný k dotazování relačních databází.
T-SQL vs SQL – jaký je rozdíl?
T-SQL nebo Transact-SQL je verze SQL od společnosti Microsoft s více funkcemi a funkcemi, než má tradiční jazyk SQL známý také jako ANSI SQL.
Proto T-SQL je tradiční jazyk SQL plus další věci přidané společností Microsoft. Běžněji se používá a zmiňuje, když mluvíme o SQL.
Tento článek bude odkazovat na verzi Microsoft SQL, ať už použijeme slovo SQL nebo T-SQL.
Proč používáme SQL dotazování v relační databázi?
Relační databáze je databáze s klíči používanými k připojení tabulek spíše než k fyzickému připojení tabulek.
Máte například tabulku s názvem Kniha kterou propojíte s další tabulkou s názvem BookType pomocí kláves pro přidání více významů do záznamů.
Tabulky na obrázku jsou propojeny pomocí klíče. Není potřeba je fyzicky propojovat. Toto je základní pravidlo relačních databází – vztahy mezi dvěma tabulkami vytváříte pomocí klíče (klíčů).
Přečtěte si také relační databáze vs NoSQL – co si vybrat pro správu velkých dat?
Co je dotazování na databázi?
Dotazujete se na databázi, abyste získali odpovědi na otázky související s touto databází. Jinými slovy, zapisujete dotazy do databáze, abyste získali informace o datech, která obsahuje.
Například vás zajímá zobrazení všech záznamů knih spolu s jejich typy v konkrétní databázi. Chcete-li zobrazit požadovaná data, musíte tuto databázi dotazovat. K tomu musíte napsat a spustit skript proti databázi.
Co potřebujete k vytvoření dotazu?
K dotazování databáze musí být splněno několik předpokladů, protože nemůžeme jen tak napsat a spustit dotaz kdekoli proti čemukoli.
Následující věci jsou povinné pro dotazování databáze:
- Databázový server, jako je SQL Server (instalovaný lokálně nebo vzdáleně), kde ukládáte databázi.
- Nástroj pro správu databází, jako je SQL Server Management Studio nebo dbForge Studio pro SQL Server, který budete používat k zápisu a spouštění dotazů
- Databáze, proti které spouštíte dotazy. Pro účely učení si můžete vytvořit libovolnou vzorovou databázi.
Také musíte mít základní znalosti o vaší databázi, například která tabulka obsahuje požadované informace a tak dále. Výhodou je také porozumění konceptům relačních databází.
Předpokládáme, že výše uvedené požadavky jste již splnili. Ale můžete se také podívat na následující článek, kde najdete další podrobnosti:
Základy SQL Server Management Studio (SSMS) – část 1
Co dělat před psaním dotazů v SQL
Nyní budeme psát jednoduché SQL dotazy.
Nastavte prosím prostředí, abyste mohli začít psát své SQL dotazy. Připravte si nástroje. Otevřete dbForge Studio pro SQL Server nebo SQL Server Management Studio a připojte se k instanci SQL. Zde začínáme naši cestu SQL:
Po úspěšném připojení stiskněte CTRL+N nebo přejděte na Soubor> Nový> Dotaz s aktuálním připojením :
Nyní jste úspěšně připojeni k hlavní (systémové databázi) aktuálně připojeného serveru.
Důležitý tip: Vždy vytvořte vzorovou databázi, abyste proti ní spouštěli své dotazy (skripty). Spouštění dotazů proti systémovým databázím není dobrým zvykem kromě tří případů:
- Pracujete se vzorovou databází a skript pro ni vytvořený se spustí proti systémové (hlavní) databázi.
- Úmyslně se dotazujete na hlavní databázi, abyste z ní získali nějaké informace.
- Dotazy lze bezpečně spustit proti systémové (hlavní) databázi.
Nastavení ukázkové databáze
Vytvořme vzorovou databázi s názvem BookSimple bez jakýchkoli tabulek. Napište následující skript proti hlavní databázi a vytvořte vzorovou databázi a Stiskněte F5 pro provedení dotazu:
-- Create sample database BookSimple
USE MASTER
GO
CREATE DATABASE BookSimple
GO
USE BookSimple
Koncept založený na sadě za SQL dotazy
Těsně předtím, než napíšete i ten nejjednodušší SQL dotaz, musíte pochopit, že SQL je jazyk založený na množinách.
To znamená, že když chcete dotazovat svou databázi pomocí SQL, měli byste uvažovat v podmínkách sad nebo skupin.
SQL je podle návrhu a ve výchozím nastavení velmi efektivní pro obsluhu požadavků na základě sady. Pokud navrhnete své skripty (dotazy) s ohledem na logiku založenou na množinách, pochopíte a implementujete SQL rychleji než ty, které následují typickou cestu učení (což má své výhody).
Představme si přirozeně se vyskytující množinu, jako je třída nebo skupina. Když odkazujeme na třídu, odkazujeme na všechny studenty v této třídě. SQL může pomoci dotazovat se na tuto třídu jako celek.
Podobně i kniha je stůl s knihami. Obsahuje všechny záznamy o knihách. Můžeme se jednoduše dotazovat na tuto tabulku, jako bychom mluvili o jedné knize, ale ve skutečnosti se dotazujeme na celou tabulku knih reprezentovanou Knihou tabulka.
Další výhody konceptu založeného na množinách uvidíme později, když prozkoumáme některé základní příklady.
Jednoduchý příkaz SQL SELECT
SELECT je příkaz T-SQL, který načte všechny nebo vybrané řádky a sloupce (na základě kritérií) z databáze.
Jinými slovy VYBRAT nám umožňuje zobrazit (vybrat) data z tabulky nebo počtu tabulek na základě určitých kritérií, která, pokud nejsou zmíněna obecně, zobrazují všechna data.
Proto je SELECT prvním příkazem, který je třeba hledat, pokud chceme načíst řádky a sloupce z databáze. Nejjednodušší forma syntaxe SELECT je následující:
SELECT * FROM <Table>
Pamatujte, že syntaxi budeme časem upravovat, abychom postupně zlepšovali proces učení.
Další způsob použití příkazu SELECT je následující:
SELECT <Expression>
Výraz může být mnoho věcí včetně následujících:
- Konstanta (např. pevné číslo jako 1).
- Proměnná (např. @X, kterou lze změnit na libovolné číslo).
- Kombinace konstant nebo proměnných (např. 1+2 nebo @X [email protected]).
Ať už však použijete SELECT
Zeptejme se BookSimple databázi obnovením Databází uzel pod Průzkumníkem objektů. Klikněte pravým tlačítkem na BookSimple > Nový dotaz :
Zapište si nejjednodušší SQL dotaz – napište a spusťte následující skript proti ukázkové databázi:
Spuštěním dotazu (stisknutím F5) se zobrazí následující výsledky:
Takže SELECT 1 vrátí 1, ale s nepojmenovaným sloupcem (žádný název sloupce).
1 je konstanta. Zůstane 1, takže očekáváme, že výsledek bude také 1. Je tu však ještě jedna důležitá věc, kterou je třeba pochopit:náš výstup je převeden na sadu 1 sloupce a 1 řádku. Vzhledem k tomu, že jsme sloupci nezadali žádný název a není zde zahrnuta žádná tabulka (abychom získali název), dostáváme hodnotu 1 pro nepojmenovaný sloupec nepojmenované tabulky (množiny).
Jazyk založený na sadě automaticky vrátil naši dodanou hodnotu do nepojmenovaného sloupce nepojmenované tabulky s jedním řádkem.
Pojmenujme sloupec úpravou skriptu takto:
Spuštěním skriptu se tentokrát zobrazí následující sada výsledků:
Protože tento dotaz vždy vrací stejnou hodnotu (číslo), jakou zadáme (dodáme), není o čem diskutovat kromě pochopení toho, proč je myšlení založené na množinách životně důležité pro pochopení toho, jak dotazy fungují.
Použijme výše uvedený případ pro rychlé výpočty v SQL – z jediné hodnoty uděláme výraz.
Například chceme rychle přidat dvě čísla 1000 a 200. Můžeme jednoduše napsat následující dotaz bez zmínky o jakékoli tabulce pouze pomocí příkazu SELECT:
Výsledek je níže:
Podobně můžeme čísla sčítat, násobit, dělit a odečítat.
Je užitečné přidat dva sloupce tabulky obsahující číselné hodnoty. Můžeme však také použít tento přístup k přidání dvou proměnných. Použití proměnných je výhodné, protože můžeme přidat libovolná dvě čísla inicializací těchto proměnných s požadovanými hodnotami. To je znázorněno následujícím skriptem:
Spuštěním skriptu se zobrazí následující výstup:
Tento dotaz můžeme uložit a kdykoli jej znovu použít k přidání libovolných dvou čísel (změnou hodnot @X a @Y). Pokud o tom přemýšlíme jako o množině, můžeme říci, že výstup je vrácen jako nepojmenovaná tabulka (množina) s jedním řádkem a následujícími třemi sloupci:
S SELECT
Zde použijeme funkci GETDATE() k načtení aktuálního data a očekávaného data doručení neznámé objednávky, která ještě není součástí naší tabulky.
Předpokládejme, že ještě nemáme žádnou tabulku objednávek, ale chceme rychle vypočítat očekávané datum dodání objednávky produktu. Pokud do funkce GETDATE() přidáme jakékoli číslo, sdělí nám přidané datum s dodaným počtem dnů.
Jinými slovy, pokud očekáváme datum dodání objednávky dva dny po zadání objednávky, můžeme jej vypočítat pomocí SELECT s GETDATE()+2.
Chcete-li to vidět v akci, spusťte následující skript SQL:
Výsledná sada je následující:
Tentokrát jsme mohli vypočítat očekávané datum doručení objednávky přímo pomocí příkazu SELECT s funkcí GETDATE() bez jakékoli tabulky.
Pokud bychom však měli tabulku, dostali bychom očekávané datum doručení pro všechny objednávky v této tabulce.
Ještě jednou, pokud tento výstup analyzujeme z hlediska Set Logic, máme jednu nepojmenovanou tabulku (množinu) se dvěma sloupci a jedním řádkem. SQL je jazyk založený na množinách, který pracuje velmi rychle s množinami, jako jsou tabulky. Pokud tabulky nejsou, zachází se vstupními hodnotami (které mají být zpracovány) jako s nepojmenovanými množinami.
Stručně řečeno, SQL dotaz vyžaduje příkaz SELECT následovaný výrazem, aby bylo možné provést nějaké výpočty založené na číslech nebo datech i proti prázdné databázi (žádné tabulky).
Gratulujeme! Naučili jste se základy SQL dotazů a napsali jste několik jednoduchých dotazů pomocí příkazu SELECT proti vzorové databázi.
Zůstaňte v kontaktu, protože psaní jednoduchých SQL dotazů proti databázovým tabulkám teprve přijde.
Nyní, když můžete napsat několik základních SQL dotazů, vyzkoušejte následující cvičení:, musíte uvažovat z hlediska množin.
Jak napsat jednoduchý SQL dotaz
-- Display 1
SELECT 1
-- Show value 1 for the column Number of an unnamed table (set)
SELECT 1 AS Number
Výpočet ve vybraném příkazu
-- Adding two numbers 1000 and 200
SELECT 1000+200 AS [Sum Of 1000 And 200]
-- SQL script to add any two numbers
DECLARE @X INT, @Y INT, @Addition INT
SET @X=550 -- Initialise variable X with a value (number)
SET @Y=350 -- Initialise variable Y with a value (number)
SET @[email protected]@sqldat.com -- SUM X and Y
SELECT @X AS FirstNumber_X,@Y as SecondNumber_Y,@Addition as SumOfNumbers
Další příklad výpočtu dat
-- Calculating order date and expected delivery date
SELECT GETDATE() AS [Order Date],GETDATE()+2 as [Expected Delivery Date]
Co se naučit, jak lépe psát dotazy SQL