Structured Query Language (SQL) je jedním ze základních stavebních kamenů moderní databázové architektury. 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é.
O SQL
Správná výslovnost jazyka SQL je sporným problémem v databázové komunitě. Americký národní normalizační institut ve svém standardu SQL prohlásil, že oficiální výslovnost je „fronta es“ el. “Mnoho profesionálů v oblasti databáze se však pustilo do slangové„ pokračování “. Stejně jako v případě výslovnosti z GIF, neexistuje správná odpověď.
SQL má mnoho příchutí. Databáze Oracle používají vlastní proprietární 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é fungují na jakémkoli moderním systému relačních databází.
DDL a DML
Příkazy SQL lze rozdělit do dvou hlavních subjazyků. Jazyk definice dat obsahuje příkazy používané k vytváření a ničení databází a databázových objektů. Poté, co je struktura databáze definována pomocí DDL, mohou administrátoři databáze a uživatelé pomocí jazyka Data Manipulation Language vložit, načíst a upravit data v něm obsažená.
SQL podporuje třetí typ syntaxe s názvem Jazyk pro kontrolu dat. DCL řídí zabezpečený přístup k objektům v databázi. Například a Skript DCL uděluje nebo odvolává konkrétní uživatelské účty právo číst nebo zapisovat do tabulek v jedné nebo více definovaných oblastech databáze. Ve většině spravovaných víceuživatelských prostředích správci databází obvykle spouštějí skripty DCL.
Příkazy jazyka pro definici dat
Jazyk definice dat se používá k vytváření a ničení databází a databázových objektů. Tyto příkazy jsou primárně používány správci databáze během fáze nastavení a odebrání databázového projektu. DDL se točí kolem čtyř primárních příkazů—vytvořit, použití, změnit, a upustit.
Vytvořit
The vytvořit příkaz vytvoří databáze, tabulky nebo dotazy na vaší platformě. Například příkaz:
VYTVOŘIT DATABÁZE zaměstnanců;
vytvoří prázdnou databázi s názvem zaměstnanci na vašem DBMS. Po vytvoření databáze je dalším krokem vytvoření tabulek, které obsahují data. Další varianta vytvořit velení plní tento účel. Příkaz:
CREATE TABLE personal_info (first_name char (20) not null, last_name char (20) not null, employee_id int not null);
vytvoří tabulku s názvem osobní informace v aktuální databázi. V příkladu obsahuje tabulka tři atributy: jméno, příjmení, a id_zaměstnance spolu s několika dalšími informacemi.
Použití
The použití příkaz určuje aktivní databázi. Například pokud právě pracujete v prodejní databázi a chcete vydat některé příkazy, které ovlivní databázi zaměstnanců, předmluvě je proveďte pomocí následujícího příkazu SQL:
Zaměstnanci USE;
Před vydáním příkazů SQL, které manipulují s daty, zkontrolujte databázi, ve které pracujete.
Změnit
Po vytvoření tabulky v databázi upravte její definici pomocí změnit příkaz, který změní strukturu tabulky, aniž by ji odstranil a znovu vytvořil. Podívejte se na následující příkaz:
ALTER TABLE personal_info PŘIDAT plat peníze null;
Tento příklad přidává do tabulky personal_info nový atribut - plat zaměstnance. The peníze Argument určuje, že plat zaměstnance se ukládá ve formátu dolary a centy. Nakonec nula klíčové slovo říká databázi, že je v pořádku, aby toto pole neobsahovalo žádnou hodnotu pro žádného daného zaměstnance.
Upustit
Poslední příkaz Data Definition Language, upustit, odstraní celé databázové objekty z našeho DBMS. Chcete-li například trvale odebrat tabulku personal_info, kterou jsme vytvořili, použijte následující příkaz:
DROP TABLE personal_info;
Podobně by se níže uvedený příkaz použil k odebrání celé databáze zaměstnanců:
DROP DATABASE zaměstnanců;
Tento příkaz používejte opatrně. The upustit příkaz odstraní celé datové struktury z vaší databáze. Chcete-li odebrat jednotlivé záznamy, použijte vymazat velení jazyka manipulace s daty.
Příkazy jazyka pro manipulaci s daty
Jazyk manipulace s daty se používá k načtení, vložení a úpravě informací o databázi. Tyto příkazy DML nabízejí obvyklý rámec pro interakci s databází v databázi.
Vložit
The vložit příkaz přidá záznamy do existující tabulky. Vrátíme-li se k příkladu personal_info z předchozí části, představte si, že naše personální oddělení musí do své databáze přidat nového zaměstnance. Použijte příkaz podobný tomuto:
VLOŽTE DO personal_info
hodnoty ('bart', 'simpson', 12345, 45000 $);
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: jméno, příjmení, id_zaměstnance a plat.
Vybrat
The vybrat příkaz je nejčastěji používaný příkaz v SQL. Načte konkrétní informace z provozní databáze. Podívejte se na několik příkladů a znovu použijte tabulku personal_info z databáze zaměstnanců.
Příkaz zobrazený níže načte všechny informace obsažené v tabulce personal_info. Hvězdička je v SQL zástupný znak.
VYBRAT *
FROM personal_info;
Alternativně omezte atributy, které jsou načteny z databáze zadáním co bude vybrán. Například oddělení lidských zdrojů může vyžadovat seznam příjmení všech zaměstnanců ve společnosti. Následující příkaz SQL by načetl pouze tyto informace:
VYBRAT příjmení
FROM personal_info;
The kde klauzule omezuje načtené záznamy na ty, které splňují zadaná kritéria. Generálního ředitele by mohlo zajímat 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 personal_info pro záznamy, které mají platovou hodnotu vyšší než 50 000 $:
VYBRAT *
FROM personal_info
KDE plat> 50 000 $;
Aktualizace
The Aktualizace příkaz upravuje informace obsažené v tabulce, ať už hromadně nebo jednotlivě. Předpokládejme, že společnost všem zaměstnancům každoročně zvýší jejich plat o 3%. Následující příkaz SQL použije tento náraz na všechny zaměstnance uložené v databázi:
AKTUALIZACE personal_info
NASTAVENÝ plat = plat * 1,03;
Když nový zaměstnanec Bart Simpson předvede výkon nad rámec povolání, vedení si přeje ocenit jeho hvězdné úspěchy zvýšením o 5 000 $. Klauzule WHERE vyčleňuje Barta pro toto navýšení:
AKTUALIZACE personal_info
NASTAVENÝ plat = plat + 5000
WHERE employee_id = 12345;
Vymazat
Nakonec se pojďme podívat na vymazat příkaz. Zjistíte, že syntaxe tohoto příkazu je podobná syntaxi ostatních příkazů DML. Příkaz DELETE s a kde klauzule, odebrání záznamu z tabulky:
ODSTRANIT Z personal_info
WHERE employee_id = 12345;
DML podporuje také agregovaná pole. V vybrat prohlášení, matematické operátory jako součet a počet shrnout data v dotazu. Například dotaz:
vyberte počet (*) z personal_info;
spočítá počet záznamů v tabulce.
Připojení k databázi
A připojit příkaz kombinuje data v několika tabulkách k efektivnímu zpracování velkého množství dat. V těchto příkazech je umístěna skutečná síla databáze.
Prozkoumat použití základního připojit operace kombinovat data ze dvou tabulek, pokračovat v příkladu pomocí tabulky personal_info a přidat další tabulku do mixu. Předpokládejme, že máte volanou tabulku disciplinární řízení který byl vytvořen s následujícím příkazem:
CREATE TABLE disciplinární_akce (action_id int není null, employee_id int není null, komentáře char (500));
Tato tabulka obsahuje výsledky disciplinárních opatření pro zaměstnance společnosti. Neobsahuje žádné informace o zaměstnanci kromě čísla zaměstnance.
Předpokládejme, že jste dostali za úkol vytvořit zprávu, která obsahuje seznam disciplinárních opatření přijatých proti všem zaměstnancům s platem vyšším než 40 000 $. Použití operace JOIN je v tomto případě přímé. Načíst tyto informace pomocí následujícího příkazu:
VYBERTE osobní_info.first_name, personal_info.last_name, disciplinární_akce.comments
FROM personal_info VNITŘNÍ PŘIPOJENÍ disciplinární_AKCE ZAPNUTO personal_info.employee_id = disciplinární_akce.employee_id
KDE osobní_info.platy> 40000;
Typy spojení
Spojení přicházejí v několika příchutích. V příkazu SQL je první tabulka (obvykle nazývána Tabulka A nebo Levý stůl) se připojí k druhému stolu (obvykle se nazývá Tabulka B nebo Pravý stůl) způsobem poznávajícím polohu. Pokud tedy změníte pořadí tabulek v příkazu join, výsledky operace se budou lišit. Mezi hlavní typy spojení patří:
- Vnitřní spojení: Porovná pouze záznamy, kde na podmínka odpovídá stejným záznamům v obou tabulkách.
- Vnější připojení: To odpovídá pouze záznamům z obou tabulek vyloučit výsledky uvedené v na stav.
- Správně se připojte: Odpovídá všem záznamům z tabulky B plus záznamům z tabulky A, které odpovídají na stav.
- Vlevo se připojte: Odpovídá všem záznamům z tabulky A plus záznamům z tabulky B, které odpovídají na stav.
- Křížové spojení: Odpovídá všem záznamům, jako by byly tabulky identické. Tento proces generuje něco, čemu se říká kartézský součin. Křížová spojení jsou často nevítaná, protože odpovídají každému řádku tabulky A, individuálně, každému řádku tabulky B. Pokud tedy tabulka A nabídla pět záznamů a tabulka B nabídla 9 záznamů, nabízí křížový dotaz 45 výsledných řádků.