Základy SQL

Získajte viac informácií o DDL, DML a JOINs

Štruktúrovaný jazyk dopytov je jedným zo základných stavebných kameňov modernej databázovej architektúry. SQL definuje metódy používané na vytváranie a manipuláciu s relačnými databázami na všetkých hlavných platformách. Na prvý pohľad sa jazyk môže zdajú byť zastrašujúce a zložité, ale nie je to tak ťažké.

Tento úvod do základov SQL sa podrobne zaoberá niektorými hlavnými príkazmi, ktoré sa používajú na vytváranie a úpravu databáz.

Informácie o SQL

Správna výslovnosť jazyka SQL je sporná otázka v komunite databázy. V štandarde SQL American National Standards Institute vyhlásil, že oficiálna výslovnosť je "es queue el." Avšak, mnoho profesionálov databázy prijal slang výslovnosť "pokračovanie." Výber je na tebe.

SQL prichádza v mnohých príchutiach. Databázy Oracle používajú svoj vlastný PL / SQL. Microsoft SQL Server využíva Transact-SQL. Všetky varianty sú založené na priemyselnom štandarde ANSI SQL. Tento úvod používa príkazy SQL kompatibilné s ANSI, ktoré fungujú na ľubovoľnom modernom relačnom databázovom systéme.

DDL a DML

Príkazy SQL možno rozdeliť na dva hlavné sub-jazyky. Jazyk definovania údajov (DDL) obsahuje príkazy používané na vytváranie a zničenie databáz a objektov databázy. Po definovaní štruktúry databázy pomocou DDL môžu správcovia databázy a používatelia používať jazyk na manipuláciu s údajmi (DML) na vloženie, načítanie a úpravu údajov, ktoré sú v ňom obsiahnuté.

Príkazy jazyka pre definíciu dát

Jazyk definovania údajov sa používa na vytváranie a zničenie databáz a objektov databázy. Tieto príkazy používajú primárne administrátori databázy počas fázy inštalácie a odstraňovania databázového projektu. Tu je pohľad na štruktúru a použitie štyroch základných príkazov DDL:

CREATE. Inštalácia systému na správu databáz na počítači vám umožňuje vytvárať a spravovať mnoho nezávislých databáz. Môžete napríklad chcieť udržiavať databázu zákazníckych kontaktov pre vaše obchodné oddelenie a personálnu databázu pre personálne oddelenie. Príkaz CREATE sa používa na vytvorenie každej z týchto databáz na vašej platforme. Napríklad príkaz:

Vytvorte zamestnancov DATABASE

vytvára vo vašom DBMS prázdnu databázu s názvom "zamestnanci". Po vytvorení databázy je ďalším krokom vytvorenie tabuliek obsahujúcich dáta. Pre tento účel možno použiť iný variant príkazu CREATE. Príkaz:

CREATE TABLE osobné_info (first_name char (20) nie null, last_name char (20) nie null, employee_id int nie je null)

vytvorí tabuľku s názvom "osobné_info" v aktuálnej databáze. V príklade tabuľka obsahuje tri atribúty: first_name, last_name a employee_id spolu s niektorými ďalšími informáciami.

USE. Príkaz USE umožňuje určiť databázu, s ktorou chcete pracovať vo vašom DBMS. Napríklad, ak práve pracujete v databáze predaja a chcete vydať niektoré príkazy, ktoré ovplyvnia databázu zamestnancov, predpovejte ich nasledujúcim príkazom SQL:

USE zamestnancov

Je dôležité vždy mať vedomie databázy, v ktorej pracujete, pred vydaním príkazov SQL, ktoré manipulujú s údajmi.

ALTER. Keď vytvoríte tabuľku v databáze, možno budete chcieť zmeniť jej definíciu. Príkaz ALTER umožňuje vykonať zmeny štruktúry tabuľky bez jej odstránenia a obnovenia. Pozrite sa na nasledujúci príkaz:

ALTER TABLE osobné_info ADD mzdové peniaze null

Tento príklad pridá nový atribút do tabuľky personal_info - plat zamestnanca. Argument "peniaze" špecifikuje, že plat zamestnanca je uložený vo formáte dolárov a centov. Kľúčové slovo "null" nakoniec informuje databázu o tom, že toto pole nemôže obsahovať žiadnu hodnotu pre daného zamestnanca.

POKLES. Posledný príkaz jazyka DROP (Data Definition Language) nám umožňuje odstrániť celé databázové objekty z nášho DBMS. Ak napríklad chceme natrvalo odstrániť tabuľku osobného_info, ktorú sme vytvorili, použijeme nasledujúci príkaz:

DROP TABLE osobné_info

Podobne by bol príkaz uvedený nižšie použitý na odstránenie celej databázy zamestnancov:

Zamestnanci DROP DATABASE

Tento príkaz používajte opatrne. Príkaz DROP odstráni celé databázové štruktúry z vašej databázy. Ak chcete odstrániť jednotlivé záznamy, použite príkaz DELETE jazyka Data Manipulation.

Príkazy na manipuláciu s údajmi

Jazyk na manipuláciu s údajmi (DML) slúži na vyhľadávanie, vkladanie a úpravu databázových informácií. Tieto príkazy používajú všetci používatelia databázy počas rutinnej prevádzky databázy.

INSERT. Príkaz INSERT v SQL sa používa na pridanie záznamov do existujúcej tabuľky. Vráťte sa do príkladu osobnej informácie z predchádzajúcej časti, predstavte si, že naše oddelenie ľudských zdrojov musí pridať nového zamestnanca do svojej databázy. Môžete použiť príkaz podobný tomuto:

VLOŽTE do hodnôt osobných_info ("bart", "simpson", 12345, 45000 dolárov)

Upozorňujeme, že pre záznam sú špecifikované štyri hodnoty. Tieto zodpovedajú atribútom tabuľky v poradí, v akom boli definované: first_name, last_name, employee_id a pay.

SELECT. Príkaz SELECT je najčastejšie používaný príkaz v SQL. Umožňuje používateľom databázy získavať konkrétne informácie, ktoré požadujú, z operačnej databázy. Pozrite sa na niekoľko príkladov, znova pomocou tabuľky personal_info z databázy zamestnancov.

Nižšie uvedený príkaz načíta všetky informácie obsiahnuté v tabuľke personal_info. Všimnite si, že hviezdička sa používa ako zástupný znak v SQL. To doslova znamená "Vybrať všetko z tabuľky personal_info".

SELECT * z osobného_info

Alternatívne môžu užívatelia chcieť obmedziť atribúty, ktoré sú získané z databázy. Oddelenie ľudských zdrojov napríklad môže požadovať zoznam posledných mien všetkých zamestnancov spoločnosti. Nasledujúci príkaz SQL vyberie iba tieto informácie:

SELECT last_name z osobného_info

Klauzula WHERE sa môže použiť na obmedzenie záznamov, ktoré sú získané na záznamy, ktoré spĺňajú špecifikované kritériá. Generálny riaditeľ by mohol mať záujem o preskúmanie personálnych záznamov všetkých vysoko platených zamestnancov. Nasledujúci príkaz načíta všetky údaje obsiahnuté v osobnom informačnom súbore pre záznamy, ktoré majú platovú hodnotu vyššiu ako 50 000 USD:

SELECT * FROM personal_info WHERE plat> 50000 dolárov

UPDATE. Príkaz UPDATE sa môže použiť na modifikáciu informácií obsiahnutých v tabuľke, a to hromadne alebo individuálne. Predpokladajme, že spoločnosť dáva všetkým zamestnancom 3-percentné zvýšenie ich životných nákladov každoročne. Nasledujúci príkaz SQL by sa mohol použiť na rýchle uplatnenie tohto pravidla pre všetkých zamestnancov uložených v databáze:

UPDATE osobné_info SET plat = plat * 1.03

Keď nový zamestnanec Bart Simpson preukáže výkon nad rámec povinností, vedenie si želá uznať jeho hviezdne úspechy s nárastom o 5 000 dolárov. Klauzula WHERE by sa dala použiť na vyradenie Bartu z tohto zvýšenia:

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

DELETE. Nakoniec sa pozrime na príkaz DELETE. Zistíte, že syntax tohto príkazu je podobný ako v ostatných príkazoch DML. Bohužiaľ, najnovšie správy o firemných zárobkoch nepriniesli docela očakávania a chudák Bart bol prepustený. Príkaz DELETE s klauzulou WHERE možno použiť na odstránenie jeho záznamu z tabuľky personal_info:

Odstrániť z osobného_info WHERE employee_id = 12345

spojí

Teraz, keď ste sa naučili základy SQL, je čas prejsť na jeden z najsilnejších konceptov, ktorý jazyk ponúka - vyhlásenie JOIN. Príkaz JOIN umožňuje kombinovať údaje vo viacerých tabuľkách a efektívne spracovávať veľké množstvá údajov. Tieto vyhlásenia sa týkajú skutočnej sily databázy.

Ak chcete skúmať použitie základnej operácie JOIN na kombináciu údajov z dvoch tabuliek, pokračujte príkladom pomocou tabuľky PERSONAL_INFO a pridajte do tabuľky ďalšiu tabuľku. Predpokladajme, že máte tabuľku s názvom DISCIPLINARY_ACTION, ktorá bola vytvorená s nasledujúcim vyhlásením:

CREATE TABLE disciplinary_action (action_id int nie je null, employee_id int nie je null, komentáre char (500))

Táto tabuľka obsahuje výsledky disciplinárnych opatrení voči zamestnancom spoločnosti. Všimnite si, že neobsahuje žiadne informácie o zamestnancov okrem čísla zamestnanca. Je ľahké si predstaviť veľa scenárov, kde by ste mohli kombinovať informácie z tabuliek DISCIPLINARY_ACTION a PERSONAL_INFO.

Predpokladajme, že ste boli poverení vytvorením správy, v ktorej sú uvedené disciplinárne opatrenia voči všetkým zamestnancom s platom vyšším ako 40 000 USD. Použitie operácie JOIN je v tomto prípade jednoduché. Tieto informácie môžeme získať pomocou nasledujúceho príkazu:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.comments FROM personal_info, disciplinary_action KDE personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

Kód špecifikuje dve tabuľky, ktoré chceme pripojiť v klauzule FROM a potom obsahuje vyhlásenie v klauzule WHERE na obmedzenie výsledkov na záznamy, ktoré mali zodpovedajúce ID zamestnancov a splnili naše kritériá platu vyššej ako 40 000 USD.