Základy SQL

Další informace o DDL, DML a JOINs

Jazyk strukturovaných dotazů je jedním ze základních stavebních prvků moderní architektury databáze. SQL definuje metody používané k vytváření a manipulaci s relačními databázemi na všech hlavních platformách. Na první pohled se jazyk může zdát zastrašující a složitý, ale není to tak těžké.

Tento úvod do základů SQL se podrobně zabývá některými hlavními příkazy používanými k vytváření a úpravě databází.

O SQL

Správná výslovnost SQL je sporný problém v databázi komunity. Ve svém standardu SQL americký National Standards Institute prohlásil, že oficiální výslovnost je "es queue el." Nicméně, mnoho profesionálů v databázi přijalo výslovnost slang "pokračování". Volba je na tobě.

SQL přichází v mnoha příchutích. Databáze Oracle používají vlastní PL / SQL. Microsoft SQL Server využívá Transact-SQL. Všechny varianty jsou založeny na průmyslovém standardu ANSI SQL. Tento úvod používá příkazy SQL kompatibilní s ANSI, které pracují na jakémkoli moderním relačním databázovém systému.

DDL a DML

Příkazy SQL lze rozdělit do dvou hlavních dílčích jazyků. Jazyk definice dat (DDL) obsahuje příkazy používané k vytváření a zničení databází a databázových objektů. Po definování struktury databáze pomocí DDL mohou správci databází a uživatelé používat jazyk Data Manipulation Language (DML) pro vkládání, načítání a úpravu dat obsažených v této databázi.

Příkazy jazyka pro definici dat

Jazyk pro definici dat se používá k vytváření a zničení databází a databázových objektů. Tyto příkazy používají primárně administrátoři databází během fáze instalace a odstraňování databázového projektu. Zde je pohled na strukturu a použití čtyř základních příkazů DDL:

VYTVOŘIT. Instalace systému správy databáze do počítače umožňuje vytvářet a spravovat mnoho nezávislých databází. Můžete například chtít udržovat databázi zákaznických kontaktů pro vaše obchodní oddělení a personální databázi pro vaše personální oddělení. Příkaz CREATE se používá k vytvoření každé z těchto databází na vaší platformě. Například příkaz:

Vytvořte zaměstnance DATABASE

vytvoří prázdnou databázi s názvem "zaměstnanci" ve vašem DBMS. Po vytvoření databáze je dalším krokem vytvoření tabulek obsahujících data. Pro tento účel lze použít jinou variantu příkazu CREATE. Příkaz:

CREATE TABLE osobní_info (first_name char (20) není null, last_name char (20) není null, employee_id int není null)

vytvoří tabulku s názvem "personal_info" v aktuální databázi. V příkladu tabulka obsahuje tři atributy: first_name, last_name a employee_id spolu s dalšími informacemi.

POUŽITÍ. Příkaz USE umožňuje zadat databázi, s níž chcete pracovat, ve vašem DBMS. Pokud například pracujete v databázi prodejů a chcete vydat některé příkazy, které ovlivní databázi zaměstnanců, předcházejte je pomocí následujícího příkazu SQL:

USE zaměstnanců

Je důležité mít vždy na paměti databázi, ve které pracujete, před vydáním příkazů SQL, které manipulují s daty.

ZMĚNIT. Jakmile vytvoříte tabulku v databázi, možná budete chtít upravit její definici. Příkaz ALTER umožňuje provádět změny struktury tabulky bez jejího odstranění a obnovení. Podívejte se na následující příkaz:

ALTER TABLE personal_info PŘIDAT mzdové peníze null

Tento příklad přidává nový atribut tabulce personal_info - plat zaměstnance. Argument "peníze" uvádí, že plat zaměstnance je uložen ve formátu dolarů a centů. Nakonec klíčové slovo "null" informuje databázi, že je správné, aby toto pole neobsahovalo žádnou hodnotu pro daného zaměstnance.

POKLES. Poslední příkaz jazyka DROP (Data Definition Language) nám umožňuje odebrat celé databázové objekty z našeho DBMS. Pokud například chceme natrvalo odstranit tabulku personal_info, kterou jsme vytvořili, použijeme následující příkaz:

DROP TABLE personal_info

Podobně by se k odstranění celé databáze zaměstnanců použil níže uvedený příkaz:

Zaměstnanci DROP DATABASE

Použijte tento příkaz opatrně. Příkaz DROP odebere celou databázi z databáze. Pokud chcete jednotlivé záznamy odstranit, použijte příkaz DELETE jazyka Data Manipulation Language.

Příkazy pro manipulaci s daty

Jazyk manipulace s daty (DML) se používá k načítání, vkládání a úpravě databázových informací. Tyto příkazy používají všichni uživatelé databáze během rutinního provozu databáze.

VLOŽIT. Příkaz INSERT v SQL se používá k přidání záznamů do existující tabulky. Vrátit se k příkladu osobní_info z předchozí části, představte si, že naše HR oddělení potřebuje přidat nového zaměstnance do své databáze. Mohl byste použít příkaz podobný tomuto:

VLOŽTE DO hodnoty personal_info ('bart', 'simpson', 12345, 45000 dolarů)

Všimněte si, že pro záznam jsou zadány čtyři hodnoty. Ty odpovídají atributům tabulky v pořadí, v jakém byly definovány: first_name, last_name, employee_id a pay.

VYBRAT. Příkaz SELECT je nejčastěji používaným příkazem v SQL. Umožňuje uživatelům databáze získat konkrétní informace, které si přejí z provozní databáze. Podívejte se na několik příkladů, opět pomocí tabulky personal_info z databáze zaměstnanců.

Níže uvedený příkaz načte všechny informace obsažené v tabulce personal_info. Všimněte si, že hvězdička je použita jako zástupný znak v SQL. To doslovně znamená "Vybrat všechno z tabulky osobní_info".

SELECT * FROM osobní_info

Uživatelé mohou také chtít omezit atributy, které jsou získány z databáze. Oddělení lidských zdrojů například může požadovat seznam posledních jmen všech zaměstnanců ve společnosti. Následující příkaz SQL by získal pouze tyto informace:

SELECT last_name Z osobní_info

Klauzuli WHERE lze použít k omezení záznamů, které jsou načteny na ty, které splňují zadaná kritéria. Generální ředitel by mohl mít zájem o přezkoumání personálních záznamů všech vysoce placených zaměstnanců. Následující příkaz načte všechna data obsažená v osobní_info pro záznamy, jejichž platová hodnota je vyšší než 50 000 USD:

SELECT * FROM personal_info WHERE plat> $ 50000

AKTUALIZACE. Příkaz UPDATE lze použít k úpravě informací obsažených v tabulce, buď hromadně nebo jednotlivě. Předpokládejme, že společnost dává všem zaměstnancům roční nárůst jejich platů o 3%. Následující příkaz SQL by mohl být použit pro rychlé uplatnění všech zaměstnanců uložených v databázi:

UPDATE osobní_info SET plat = plat * 1,03

Když nový zaměstnanec Bart Simpson projevuje výkonnost nad rámec povinností, vedení si přeje uznat jeho hvězdné úspěchy s nárůstem ve výši 5 000 dolarů. Klauzuli WHERE byste mohli použít k vynechání Bartu pro tento nárůst:

UPDATE osobní_info SET plat = plat + $ 5000 WHERE employee_id = 12345

VYMAZAT. Nakonec se podívejme na příkaz DELETE. Zjistíte, že syntaxe tohoto příkazu je podobná jako u ostatních příkazů DML. Bohužel naše poslední zpráva o korporátních výnosech zcela nesplnila očekávání a špatný Bart byl propuštěn. Příkaz DELETE s klauzuli WHERE lze použít k odebrání jeho záznamu z tabulky personal_info:

ZRUŠIT FROM personal_info WHERE employee_id = 12345

JOINs

Nyní, když jste se naučil základy jazyka SQL, je čas posunout se k jednomu z nejsilnějších konceptů, které jazyk nabízí - prohlášení JOIN. Příkaz JOIN umožňuje kombinovat data ve více tabulkách a efektivně zpracovávat velké množství dat. Tato tvrzení jsou místem, kde sídlí pravá síla databáze.

Chcete-li prozkoumat použití základní operace JOIN pro kombinaci dat ze dvou tabulek, pokračujte příkladem pomocí tabulky PERSONAL_INFO a přidejte do tabulky další tabulku. Předpokládejme, že máte tabulku s názvem DISCIPLINARY_ACTION, která byla vytvořena s následujícím příkazem:

CREATE TABLE disciplinary_action (action_id int není null, employee_id int není null, komentáře char (500))

Tato tabulka obsahuje výsledky disciplinárních opatření vůči zaměstnancům společnosti. Všimnete si, že neobsahuje žádné údaje o zaměstnanci jiné než číslo zaměstnance. Je snadné si představit mnoho scénářů, kde byste mohli kombinovat informace z tabulek DISCIPLINARY_ACTION a PERSONAL_INFO.

Předpokládejme, že jste byl pověřen vytvořením zprávy, která obsahuje seznam disciplinárních kroků proti všem zaměstnancům s platy větším než 40 000 USD. Použití operace JOIN v tomto případě je přímočaré. Tyto informace můžeme načíst pomocí následujícího příkazu:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.comments FROM personal_info, disciplinární_akce WHERE personal_info.employee_id = disciplinary_action.employee_id A personal_info.salary> 40000

Kód specifikuje dvě tabulky, které se chtějí připojit v klauzuli FROM a potom obsahuje příkaz v klauzuli WHERE, který omezuje výsledky na záznamy, které měly odpovídající ID zaměstnanců a splňovaly naše kritéria platu vyšší než 40 000 USD.