Š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é.
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 ď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. 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ŽIŤ DO personal_infoHodnoty ( 'Bart', 'Simpson', 12345, $ 45000), aj
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 *FROM personal_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_nameFROM personal_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_infoKDE plat?> 50000 USD
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 personal_infoSET 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 personal_infoSET plat = plat + 5000 USDKDE 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: DELETE FROM personal_infoKDE employee_id = 12345 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, disciplinárne_akcie.comFROM personal_info, disciplinárna_akciaKDE personal_info.employee_id = disciplinary_action.employee_idA 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. Príkazy na manipuláciu s údajmi
spojí