13 nejdůležitějších příkazů SQL, které by měl každý programátor znát

  • Brian Curtis
  • 0
  • 2376
  • 155
reklama

Databáze řídí moderní web. Každý velký nebo dynamický web používá nějakým způsobem databázi a v kombinaci s ní Strukturovaný dotazovací jazyk (SQL), možnosti manipulace s daty jsou opravdu nekonečné. Pokud již víte, SQL, ujistěte se, že jste si tyto programovací dovednosti osvojili. 7 Programovací dovednosti, které by měli všichni vývojáři webových stránek vědět 7 Programovací dovednosti, které by všichni vývojáři webových stránek měli vědět Návrh a vývoj webových stránek nabízí dobrou odměnu a výhody, slušnou pracovní dobu a vyhlídky na postup. Ukážeme vám, jaké základní dovednosti se můžete začít učit, abyste se dostali do tohoto vzrušujícího oboru. všichni vývojáři webových stránek by to měli vědět.

Dnes vám ukážu některé základní příkazy, které musíte znát jako programátor.

Existuje mnoho názvů pro data vrácená z databázové tabulky. Data jsou běžně označována jako Řádky, Evidence, nebo Tuples. V tomto článku budu tyto pojmy používat zaměnitelně.

Předmluva

Všechny dnešní příklady budou založeny na čtyřech fikčních tabulkách. zákazník tabulka obsahuje jméno a věk zákazníků:

výšky tabulka obsahuje jméno a výšku jakékoli osoby:

personál tabulka obsahuje jméno a věk zaměstnanců - přesně stejné jako tabulka zákazníků:

Konečný stůl se jmenoval lidé obsahuje jméno a věk lidí, stejně jako tabulky zákazníků a zaměstnanců:

1. Vyberte

vybrat Prohlášení je nejjednodušší a je důležité, abyste tomu rozuměli, protože podporuje téměř všechny ostatní příkazy. Doporučuje se psát vyhrazená slova SQL velkými písmeny, protože usnadňuje čtení a porozumění příkazu.

Jak již název napovídá, na výběr se používá vybrat data z databáze. Zde je nejjednodušší použití:

VYBRAT * Z tabulky;

K tomu jsou dvě části. První část (VYBRAT *) určuje, které sloupce chcete vybrat. Hvězdička označuje, že si přejete vybrat všechny sloupce v tabulce. Druhá část (Z tabulky) řekne vašemu databázovému stroji, odkud chcete tato data načíst. Nahradit “stůl” s názvem vaší databázové tabulky.

Tento výběr je známý jako “vyberte hvězdu.” Použití hvězdičky je dobrý způsob, jak zjistit, jaká data jsou v tabulce, ale nedoporučuji je používat pro jakýkoli výrobní kód. Při použití vybrané hvězdy je na databázovém stroji, aby vám poskytl požadovaná data. Nemáte žádnou kontrolu nad tím, jak jsou data vrácena, takže pokud někdo do tabulky přidá nový sloupec, může se stát, že vaše proměnné v programovacím jazyce již nebudou představovat správná data. Naštěstí existuje řešení.

Můžete výslovně uvést, které sloupce chcete načíst, například:

VYBERTE věk, jméno od lidí;

Tento dotaz načte “stáří” a “název” sloupce z “lidé” stůl. Být toto explicitní může být poněkud únavné, pokud máte hodně dat, ale tím se v budoucnu problémy sníží, spolu s tím, aby byl budoucí SQL programátorům srozumitelnější..

Pokud chcete vybrat další data, ale nejsou uloženy v žádné z vašich tabulek, můžete to udělat takto:

VYBERTE věk, „1234“ od lidí;

Namísto přiřazení názvu sloupce bude vrácen jakýkoli řetězec uvnitř jednoduchých nabídek.

2. Kde

Příkaz select je vynikající pro načítání dat, ale co když chcete výsledky filtrovat trochu víc? A co získávání pouze lidí, kteří mají modré oči? A co lidé narození v lednu, kteří pracují jako mechanici? To je místo, kde kde Příkaz přichází. To vám umožní použít podmínky pro výběr a jednoduše jej připojíte na konec příkazu:

VYBERTE věk, jméno od lidí, KDE věk> 10;

Tento dotaz je nyní omezen na lidi starší 10 let. Můžete kombinovat více podmínek pomocí A operátor:

VYBERTE věk, jméno od lidí, KDE věk> 10 A věk < 20;

A Příkaz funguje přesně jako v anglickém jazyce: na příkaz použije další podmínku. V tomto příkladu by vrácenými daty byly všechny záznamy s věkem mezi 10 a 20. Protože neexistují žádné odpovídající výsledky, žádná data se nevracejí.

Další příkaz, který lze použít ve spojení s tímto, je NEBO. Zde je příklad:

VYBERTE věk, jméno od lidí, KDE věk> 10 NEBO jméno = 'Joe';

Tento dotaz vrátí záznamy, kde je věk více než 10 nebo je název stejný “Joe”. Všimněte si, že existuje pouze jedno znaménko rovnosti? Většina programovacích jazyků používá ke kontrole rovnocennosti dvojnásobek (==). To není nutné pro drtivou většinu databázových strojů (ale může to být velmi v každém prostředí, takže nejprve nejprve zkontrolujte).

3. Objednávka

objednat příkaz se používá k třídění vrácených výsledků. Je to další snadné použití. Jednoduše jej připojte na konec vašeho prohlášení:

VYBRAT jméno, věk od lidí OBJEDNAT podle věku

Musíte zadat sloupec a pořadí, které může být ASC pro stoupání nebo DESC pro sestup. Můžete si objednat podle několika sloupců, jako je tento:

VYBRAJTE jméno, věk od lidí OBJEDNAT PODLE jména ASC, věk DESC

SEŘADIT PODLE je možná nejužitečnější v kombinaci s jinými příkazy. Ne všechny dotazy vrátí data logickým nebo uspořádaným způsobem - tento příkaz vám to umožní změnit.

4. Připojte se

připojit příkaz je zvyklý připojit související data uložená v jedné nebo více tabulkách. Vy připojit druhou tabulku k první tabulce a určete, jak jsou data spojena. Zde je základní příklad:

VYBRAJTE věk, jméno, výšku OD lidí LEVÝCH JOIN výšek POUŽÍVÁNÍ (jméno);

Děje se tu pár věcí. Musíte začít s “LEVÝ PŘIPOJENÍ” syntaxe, která určuje, že se chcete připojit k tabulce pomocí spojení typu left. Dále určete tabulku, ke které se chcete připojit (výšky). POUŽITÍ (jméno) syntaxe uvádí, že sloupec “název” najdete v obou tabulkách a to by mělo být použito jako klíč pro spojení tabulek dohromady.

Nebojte se, pokud mají sloupce v každé tabulce různé názvy. Můžeš použít “NA” namísto “POUŽITÍM”:

VYBRAJTE věk, jméno, výšku OD lidí LEVÝCH JOIN výšek zapnuto (namea = nameb);

Příkaz on výslovně uvádí, na kterých sloupcích se má klíč stát. Existuje mnoho typů spojení, a to by trvalo dlouhou dobu jít do podrobností pro každý z nich, takže zde je rychlé shrnutí jejich použití:

  • (VNITŘNÍ SPOJENÍ - Vrací řádky se shodou v obou tabulkách.
  • VLEVO (VNĚJŠÍ) PŘIPOJENÍ - Vrátí všechny řádky z levé tabulky a všechny zápasy z pravé tabulky. Pokud neexistují žádné shody, budou záznamy v levé tabulce stále vráceny.
  • PRAVÝ (VNĚJŠÍ) PŘIPOJENÍ - Toto je opak levého spojení: všechny řádky z pravé tabulky jsou vráceny spolu s případnými shodami v levé tabulce.
  • PLNÝ (VNĚJŠÍ) PŘIPOJENÍ - Vrací všechny záznamy se shodou v kterékoli tabulce.

“VNITŘNÍ” nebo “VNĚJŠÍ” syntaxe je volitelná. Může to usnadnit pochopení věcí, ale nemusíte je specifikovat po většinu času.

5. Alias

Teď znáte základy, pojďme se podívat na alias příkaz. Používá se k dočasnému přejmenování tabulky - více přezdívky než cokoli jiného, ​​protože toto nové jméno existuje pouze uvnitř jednotlivé spuštěné transakce. Zde je návod, jak jej používat:

VÝBĚR A.age Z lidí A;

Můžete použít libovolný platný název, který se vám líbí, ale ráda používám písmena abecedy. Před názvem každého sloupce je alias předponou. Tento alias je přiřazen k tabulce ihned po jejím deklaraci. To je úplně stejné jako to:

VYBRAT people.age OD lidí;

Spíše než psát dlouhý název tabulky, můžete napsat jednoduchý a snadno zapamatovatelný dopis - ale co má smysl? Pokud si vyberete z více než jedné tabulky, je snadné se zmást, které sloupce patří do které tabulky. Pokud obě tabulky mají sloupce se stejným názvem, může se databázový dotaz dokonce spustit bez explicitního odkazu na název tabulky nebo alias. Zde je příklad se dvěma tabulkami:

VÝBĚR staff.age, staff.name, customers.age, customers.name OD zaměstnanců, zákazníků;

A tady je stejný dotaz s aliasy:

VÝBĚR A.age, A.name, B.age, B.name Od zaměstnanců A, zákazníků B;

Pracovní stůl má přezdívku “A”, a tabulka zákazníků má přezdívku “B”. Aliasingové tabulky skutečně pomáhají usnadnit pochopení kódu a snižují množství psaní, které musíte udělat.

Sloupec můžete také přejmenovat pomocí aliasu “TAK JAKO” příkaz:

VYBERTE věk AS person_age OD lidí;

Po spuštění tohoto dotazu bude nyní sloupec vyvolán “osobnost” namísto “stáří”.

6. Unie

svaz je skvělý příkaz. To vám umožní připojit řádky k sobě. Na rozdíl od spojení, která připojují odpovídající sloupce, může unie připojit nesouvisející řádky za předpokladu, že mají stejný počet a název sloupců. Zde je návod, jak jej používat:

VYBERTE věk, jméno od zákazníků UNIE VYBERTE věk, jméno od zaměstnanců;

Spojení můžete považovat za způsob, jak kombinovat výsledky dvou dotazů. Spojení vrátí výsledky pouze tam, kde je mezi těmito dvěma dotazy jedinečný řádek. Můžete použít “UNION ALL” syntaxe pro vrácení všech dat, bez ohledu na duplikáty:

VYBERTE věk, jméno od zákazníků UNIE VŠECHNY VYBERTE věk, jméno od zaměstnanců;

Všimněte si, jak se mění pořadí řádků? Unie funguje nejefektivnějším způsobem, takže vrácené údaje se mohou v pořadí měnit.

Možným případem použití pro sjednocení je mezisoučet: můžete sjednotit dotaz součtu na dotaz jednotlivých součtů pro konkrétní scénář.

7. Vložte

Nyní víte vše o načítání dat z databáze, ale co o jejich vložení? To je místo, kde vložit příkaz přichází. Zde je příklad:

INSERT INTO people (name, age) HODNOTY („Joe“, 102);

Musíte zadat název tabulky (osoby) a sloupce, které chcete použít (jméno a věk). “HODNOTY” Syntaxe se pak použije k zadání hodnot, které mají být vloženy. Musí být ve stejném pořadí jako dříve určené sloupce.

Nemůžete určit klauzuli where pro vložky a je třeba zajistit, abyste dodržovali všechna nezbytná omezení tabulky, která jsou k dispozici.

8. Aktualizace

Po vložení některých dat je pouze nutné změnit konkrétní řádky. Tady je Aktualizace syntaxe příkazu:

UPDATE people SET name = 'Joe', věk = 101;

Musíte určit tabulku, kterou chcete změnit, a poté použít “SOUBOR” syntaxe pro určení sloupců a jejich nových hodnot. Tento příklad je dobrý, ale aktualizuje každý záznam - něco, co není vždy žádoucí!

Chcete-li být konkrétnější, můžete použít “KDE” klauzule, jako když děláte výběr:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Můžete dokonce zadat více podmínek pomocí “A” a “NEBO”:

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Všimněte si, jak se používají závorky k omezení podmínek.

9. Upsert

Upsert je podivné znějící slovo, ale je to neuvěřitelně užitečný příkaz. Řekněme, že máte omezení v tabulce, a uvedli jste, že chcete pouze záznamy s jedinečnými jmény - například nechcete ukládat dva řádky se stejným názvem. Pokud jste se pokusili vložit více hodnot 'Joe', váš databázový stroj by hodil chybu a odmítl to (docela správně). UPSERT umožňuje aktualizovat záznam, pokud již existuje. To je neuvěřitelně užitečné! Bez tohoto příkazu byste museli napsat hodně logiky, abyste nejprve zkontrolovali, zda záznam existuje, vložte, pokud ne, jinak načtěte správný primární klíč a poté aktualizujte.

Bohužel jsou upserty implementovány odlišně v různých databázových strojích. PostgreSQL tuto schopnost získala teprve nedávno, zatímco MySQL ji má už nějakou dobu. Zde je syntaxe MySQL pro reference:

INSERT INTO people (name, age) HODNOTY ('Joe', 101) ON DUPLICATE KEY UPDATE věk = 101;

Všimněte si, jak se v podstatě jedná o aktualizaci a příkaz insert, který lze shrnout jako “aktualizace, pokud vložení selhalo.”

10. Smazat

Odstranit slouží k úplnému odstranění záznamů - při zneužití může být docela škodlivé! Základní syntaxe se velmi snadno používá:

ODSTRANIT OD lidí;

Stejně jako většina ostatních příkazů se toto odstraní všechno! Musíte použít místo, kde jej omezit na mírně zdravější počet řádků - ideálně jeden:

ODSTRANIT OD lidí, KDE jméno = 'Joe';

Pokud vyvíjíte systém, je často moudré implementovat “měkké mazání.” Ve skutečnosti nikdy nespustíte příkaz delete, spíše vytvoříte smazaný sloupec a poté tento sloupec zkontrolujete ve svých výběrech - pokud můžete rychle a snadno načíst údajně smazané záznamy, můžete se vyhnout velkému potížím. To však nenahrazuje správné zálohy.

11. Vytvořte tabulku

vytvořit tabulku Příkaz slouží k vytváření tabulek. Je to další velmi jednoduchý:

VYTVOŘIT TABULKU lidí (jméno TEXT, věk, INTEGER, PRIMÁRNÍ KLÁVES (jméno));

Všimněte si, jak jsou názvy sloupců a omezení uvnitř závorek a sloupcům je přidělen odpovídající datový typ. Je specifikován primární klíč, jak je vyžadováno v každém dobrém návrhu databáze.

12. Změna tabulky

změnit tabulku Příkaz se používá ke změně struktury tabulky. To je mírně omezeno, protože vaše databáze vám nedovolí změnit tabulku, pokud by existující data způsobila konflikt - například změna řetězce na celé číslo. V těchto případech nejprve opravte data a poté upravte tabulku. Zde je příklad:

ALTER TABLE people ADD height integer;

Tento příklad přidá sloupec s názvem “výška” typu celé číslo do tabulky lidí. Na to, co můžete změnit, není opravdu limit.

13. Drop tabulka

Poslední příkaz je stolek. Přemýšlejte o tom jako o smazání, ale spíše než o odstranění jediného záznamu, odstraní každý jednotlivý záznam spolu s tabulkou! Zde je návod, jak jej používat:

DROP TABLE people;

Je to docela drastický příkaz a není důvod, proč by měl být naprogramován do vašeho systému. Měl by být prováděn pouze ručně ve velké většině případů, a to může být velmi destruktivní.

To je pro dnešek vše. Doufám, že jste se naučili pár užitečných triků! Dalo by se naučit, jak vytvořit web Jak udělat web: pro začátečníky Jak udělat web: pro začátečníky Dnes vás budu provázet procesem vytváření kompletního webu od začátku. Nebojte se, pokud to zní obtížně. Provedu vás tímto krokem na každém kroku. a poté pomocí svých nově objevených dovedností zrychlete dynamiku - ujistěte se, že tyto chyby neuděláte 9 Chyby, které byste při vytváření webové stránky neměli dělat 9 Chyby, které byste při vytváření webové stránky neměli dělat Tyto následující kódování HTML chyby lze snadno provést, ale pokud je odvedete dříve, než později, bude vaše stránka vypadat lépe, snáze se bude udržovat a bude fungovat tak, jak chcete. nebo jej nechat zranitelným vstřikováním SQL Co je injekce SQL? [MakeUseOf vysvětluje] Co je injekce SQL? [MakeUseOf vysvětluje] Svět bezpečnosti internetu je sužován otevřenými porty, zadními vrátkami, bezpečnostními dírami, trojskými koni, červy, zranitelnostmi v bráně firewall a spoustou dalších problémů, které nás každý den drží na nohou. Pro soukromé uživatele…. Pokud si nejste jisti, že se musíte učit SQL, uvažovali jste o statickém generátoru webů. 7 důvodů, proč zkopírovat svůj redakční systém a zvážit statický generátor stránek. 7 důvodů, proč zkopírovat svůj redakční systém a zvážit statický generátor webů. bylo pro mnoho uživatelů obtížné. CMS, jako je WordPress, to změnilo, ale stále mohou být matoucí. Další alternativou je generátor statických stránek. ?

Proč nezanechat komentář níže s vašimi oblíbenými tipy a triky SQL?

Obrazové kredity: HYS_NP / Shutterstock




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.