13 Najdôležitejších príkazov SQL by mal vedieť každý programátor

13 Najdôležitejších príkazov SQL by mal vedieť každý programátor

Databázy poháňajú moderný web. Každý veľký alebo dynamický web nejakým spôsobom používa databázu a v kombinácii s Structured Query Language (SQL) „Možnosti manipulácie s údajmi sú skutočne nekonečné. Ak už ovládate SQL, vyskúšajte si tieto programátorské schopnosti, ktoré by mali vedieť všetci vývojári webových stránok.





Dnes vám ukážem niektoré z nich základné príkazy SQL musíte to vedieť ako programátor.





Existuje mnoho názvov údajov vrátených z databázovej tabuľky. Dáta sa bežne označujú ako Riadky , Záznamy , alebo N -tice . V tomto článku budem tieto pojmy zamieňať.





Predslov

Všetky dnešné príklady budú založené na štyroch fiktívnych tabuľkách. The zákazníka tabuľka obsahuje meno a vek zákazníkov:

The výšky tabuľka obsahuje meno a výšku akejkoľvek osoby:



The personál tabuľka obsahuje meno a vek zamestnancov - presne to isté ako tabuľka zákazníkov:

Finálový stôl zvolal ľudí obsahuje meno a vek ľudí, rovnako ako tabuľky zákazníkov a zamestnancov:





1. Vyberte

The vyberte príkaz je najjednoduchší a je dôležité, aby ste mu rozumeli, pretože podporuje takmer všetky ostatné príkazy. Považuje sa za osvedčený postup písať vyhradené slová SQL veľkými písmenami, pretože uľahčuje čítanie a porozumenie príkazu.

Ako naznačuje jeho názov, Select je zvyknutý na vyberte údaje z databázy. Toto je najjednoduchšie použitie:





SELECT * FROM table;

Má to dve časti. Prvá časť ( VYBRAŤ * ) určuje, ktoré stĺpce chcete vybrať. Hviezdička označuje, že chcete vybrať všetky stĺpce v tabuľke. Druhá časť ( Z tabuľky ) oznámi vášmu databázovému stroju, odkiaľ chcete tieto údaje získať. Nahraďte 'tabuľku' názvom vašej databázovej tabuľky.

Tento výber je známy ako „vybrať hviezdičku“. Použitie hviezdičky je dobrý spôsob, ako zistiť, aké údaje sú v tabuľke, ale neodporúčam ich používať pre žiadny produkčný kód. Pri použití výberovej hviezdy je na databázovom stroji, aby vám predložil požadované údaje. Nemáte žiadnu kontrolu nad poradím, akým sa údaje vracajú, takže ak niekto do tabuľky pridá nový stĺpec, môže sa stať, že vaše premenné vo vašom programovacom jazyku prestanú predstavovať správne údaje. Našťastie existuje riešenie.

Stĺpce, ktoré chcete načítať, môžete explicitne uviesť takto:

SELECT age, name FROM people;

Tento dotaz načítava stĺpce „vek“ a „meno“ z tabuľky „ľudia“. Byť týmto explicitným môže byť mierne únavné, ak máte veľa údajov, ale tým sa zníži počet problémov v budúcnosti spolu s tým, že bude váš budúci SQL programátor zrozumiteľnejší pre všetkých budúcich programátorov.

Ak chcete vybrať ďalší údaj, ale nie je uložený v žiadnej z vašich tabuliek, môžete to urobiť takto:

SELECT age, '1234' FROM people;

Akýkoľvek reťazec v jednoduchých úvodzovkách bude vrátený namiesto toho, aby zodpovedal názvu stĺpca.

2. Kde

Príkaz select je vynikajúci na získavanie údajov, ale čo keby ste chceli výsledky filtrovať trochu viac? Čo tak získať iba ľudí, ktorí majú modré oči? Čo ľudia narodení v januári, ktorí pracujú ako mechanici? Tu sa nachádza kde príde príkaz. To vám umožní použiť podmienky na výber a jednoducho ho pripojíte na koniec príkazu:

SELECT age, name FROM people WHERE age > 10;

Tento dopyt je teraz obmedzený na ľudí starších ako 10 rokov. Môžete kombinovať viacero podmienok pomocou A operátor:

SELECT age, name FROM people WHERE age > 10 AND age <20;

The A príkaz funguje rovnako ako v anglickom jazyku: na príkaz aplikuje ďalšiu podmienku. V tomto prípade by vrátenými údajmi boli akékoľvek záznamy s vekom od 10 do 20. Keďže neexistujú žiadne zodpovedajúce výsledky, nevracajú sa žiadne údaje.

aká služba rozvozu jedla platí najviac

Ďalší príkaz, ktorý možno použiť v spojení s týmto, je ALEBO . Tu je príklad:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Tento dotaz vracia záznamy, kde je vek viac ako 10 rokov alebo sa meno rovná „Joe“. Všimli ste si, ako existuje iba jeden znak rovnosti? Väčšina programovacích jazykov používa na kontrolu ekvivalencie dvojnásobok (==). To nie je potrebné pre drvivú väčšinu databázových nástrojov (ale môže to byť veľmi pre každé prostredie, preto najskôr skontrolujte).

3. Objednávka

The objednať príkaz sa používa na triedenie vrátených výsledkov. Je to ďalšie jednoduché použitie. Jednoducho ho pripojte na koniec svojho vyhlásenia:

SELECT name, age FROM people ORDER BY age DESC;

Musíte zadať stĺpec a poradie, ktoré môže byť ASC pre stúpanie resp DESC na zostup. Objednávať môžete vo viacerých stĺpcoch takto:

SELECT name, age FROM people ORDER BY name ASC, age DESC

ZORADIŤ PODĽA je možno najužitočnejší v kombinácii s inými príkazmi. Nie všetky dotazy vrátia údaje logickým alebo usporiadaným spôsobom - tento príkaz vám to umožňuje zmeniť.

4. Pripojte sa

The pridať sa príkaz sa používa na pridať sa súvisiace údaje uložené v jednej alebo viacerých tabuľkách. Ty pridať sa druhú tabuľku k prvej tabuľke a zadajte, ako sú údaje prepojené. Tu je základný príklad:

ako rozbaliť súbor tar.gz
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Deje sa tu niekoľko vecí. Musíte začať so syntaxou „LEFT JOIN“, ktorá určuje, že sa chcete pripojiť k tabuľke pomocou spojenia ľavého typu. Ďalej zadajte tabuľku, ku ktorej sa chcete pripojiť (výšky). The POUŽÍVANIE (názov) syntax uvádza, že stĺpec „name“ sa nachádza v oboch tabuľkách a že by sa mal použiť ako kľúč na spojenie tabuliek dohromady.

Ak majú vaše stĺpce v každej tabuľke rôzne názvy, nie je dôvod sa znepokojovať. Namiesto „POUŽÍVANIA“ môžete použiť „ZAPNUTÉ“:

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

Príkaz on výslovne uvádza, ktoré stĺpce je potrebné zapnúť. Existuje mnoho typov spájania a pri každom z nich bude dlho trvať, kým sa rozvedieme, preto uvádzame rýchly súhrn ich použití:

  • (VNÚTORNÉ) PRIPOJTE SA - Vráti riadky so zhodou v oboch tabuľkách.
  • ĽAVÝ (VONKAJŠÍ) PRIPOJTE SA - Vráti všetky riadky z ľavej tabuľky, pričom všetky zhody budú z pravej tabuľky. Ak neexistujú žiadne zhody, záznamy v ľavej tabuľke sa stále vrátia.
  • PRAVÉ (VONKAJŠIE) PRIPOJENIE - Toto je opak ľavého spojenia: vrátia sa všetky riadky z pravej tabuľky spolu so všetkými zhodami v ľavej tabuľke.
  • ÚPLNÉ (VONKAJŠIE) PRIPOJENIE - Vráti všetky záznamy, ktoré sa zhodujú v oboch tabuľkách.

Syntax „VNÚTORNÝ“ alebo „VONKAJŠÍ“ je voliteľný. Môže to veci jednoduchšie pochopiť, ale väčšinu času to nemusíte špecifikovať.

5. Prezývky

Teraz, keď poznáte základy, pozrime sa na prezývka príkaz. Toto sa používa na dočasné premenovanie tabuľky - skôr prezývka ako čokoľvek iné, pretože tento nový názov existuje iba v rámci jednotlivých transakcií, ktoré robíte. Takto ho používate:

SELECT A.age FROM people A;

Môžete použiť akékoľvek platné meno, ktoré sa vám páči, ale ja rád používam písmená abecedy. Pred každým názvom stĺpca je alias s predponou. Tento alias je priradený k tabuľke bezprostredne po jej vyhlásení. Je to úplne rovnaké ako toto:

SELECT people.age FROM people;

Namiesto toho, aby ste museli písať dlhý názov tabuľky, môžete napísať jednoduché a ľahko zapamätateľné písmeno - ale aký to má zmysel? Ak vyberáte z viac ako jednej tabuľky, ľahko sa zamotáte v názore, ktoré stĺpce do ktorej tabuľky patria. Ak majú obe vaše tabuľky stĺpce s rovnakým názvom, váš databázový dotaz sa možno dokonca nepodarí spustiť bez explicitného odkazu na názov tabuľky alebo alias. Tu je príklad s dvoma tabuľkami:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

A tu je ten istý dotaz s prezývkami:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

Tabuľka zamestnancov obsahuje alias „A“ a tabuľka zákazníkov uvádza alias „B“. Aliasingové tabuľky skutočne pomáhajú uľahčiť pochopenie kódu a znižujú množstvo písania, ktoré musíte vykonať.

Stĺpec môžete tiež premenovať pomocou aliasu pomocou príkazu „AS“:

SELECT age AS person_age FROM people;

Po spustení tohto dopytu bude stĺpec teraz nazývaný „person_age“ namiesto „age“.

6. Únia

Únie je veľký príkaz. Umožňuje vám navzájom spájať riadky. Na rozdiel od spojení, ktoré spájajú zodpovedajúce stĺpce, môže zväz spájať nesúvisiace riadky za predpokladu, že majú rovnaký počet a názov stĺpcov. Takto ho používate:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Spojenie môžete považovať za spôsob kombinácie výsledkov dvoch dopytov. Zoskupenie vráti výsledky iba vtedy, ak je medzi týmito dvoma dotazmi jedinečný riadok. Na vrátenie všetkých údajov bez ohľadu na duplikáty môžete použiť syntax „UNION ALL“:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Všimli ste si, ako sa mení poradie riadkov? Union funguje najefektívnejším spôsobom, takže vrátené údaje sa môžu líšiť v poradí.

Možným prípadom použitia na zjednotenie je medzisúčet: dotaz na súčet by ste mohli spojiť na dotaz na jednotlivé súčty pre konkrétny scenár.

7. Vložiť

Teraz už viete všetko o získavaní údajov z databázy, ale čo o ich vkladaní? Tu sa nachádza vložiť príde príkaz. Tu je príklad:

INSERT INTO people(name, age) VALUES('Joe', 102);

Musíte zadať názov tabuľky (ľudia) a stĺpce, ktoré chcete použiť (meno a vek). Na zadanie hodnôt, ktoré sa majú vložiť, sa potom použije syntax „HODNOTY“. Tieto musia byť v rovnakom poradí ako stĺpce, ktoré boli predtým špecifikované.

Nemôžete určiť klauzulu where pre vložky a musíte zaistiť, aby ste dodržiavali všetky nevyhnutné obmedzenia tabuľky, ktoré existujú.

8. Aktualizácia

Po vložení niektorých údajov je len prirodzené, že je potrebné zmeniť konkrétne riadky. Tu je aktualizovať syntax príkazu:

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

Musíte zadať tabuľku, ktorú chcete zmeniť, a potom použiť syntax „SET“ na zadanie stĺpcov a ich nových hodnôt. Tento príklad je dobrý, ale aktualizuje každý záznam - niečo, čo nie je vždy žiaduce!

Aby sme boli konkrétnejší, môžete použiť doložky „WHERE“ rovnako ako pri výbere:

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

Môžete dokonca zadať viacero podmienok pomocou „A“ a „ALEBO“:

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

Všimnite si, ako sa na obmedzenie podmienok používajú zátvorky.

môžeš zmeniť pôvodné meno?

9. Upsert

Ups je zvláštne znejúce slovo, ale je to neuveriteľne užitočný príkaz. Povedzme, že máte na stole obmedzenie a zadali ste, že chcete iba záznamy s jedinečnými názvami - napríklad nechcete ukladať dva riadky s rovnakým názvom. Ak by ste sa pokúsili vložiť viac hodnôt „Joe“, váš databázový stroj by urobil chybu a odmietol by to urobiť (celkom správne). UPSERT vám umožňuje aktualizovať záznam, ak už existuje. To je neuveriteľne užitočné! Bez tohto príkazu by ste museli napísať veľa logiky, aby ste najskôr skontrolovali, či záznam existuje, vložte ho, ak neexistuje, v opačnom prípade načítajte správny primárny kľúč a potom aktualizujte.

V rôznych databázových strojoch sú bohužiaľ upserty implementované odlišne. PostgreSQL získal túto schopnosť len nedávno, zatiaľ čo MySQL ju má už nejaký čas. Tu je syntax MySQL pre referenciu:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Všimnite si, ako sa v zásade jedná o aktualizáciu a príkaz insert, ktorý je možné zhrnúť ako „aktualizácia v prípade, že vloženie zlyhalo“.

10. Odstrániť

Vymazať sa používa na úplné odstránenie záznamov - ak je zneužitý, môže byť veľmi škodlivý! Základná syntax je veľmi jednoduchá na používanie:

DELETE FROM people;

Rovnako ako väčšina ostatných príkazov sa aj toto vymaže všetko ! Musíte použiť kde, aby ste to obmedzili na o niečo rozumnejší počet riadkov - ideálne jeden:

DELETE FROM people WHERE name = 'Joe';

Ak vyvíjate systém, často je múdre implementovať „obnoviteľné odstránenie“. V skutočnosti nikdy nespustíte príkaz na odstránenie, skôr vytvoríte odstránený stĺpec a potom tento stĺpec skontrolujete vo svojich výberoch - môže to zabrániť mnohým potenciálnym rozpakom, ak dokážete rýchlo a ľahko získať údajne zmazané záznamy. Nenahrádza to však správne zálohy.

11. Vytvorte tabuľku

The vytvoriť tabuľku príkaz sa používa na vytváranie tabuliek. Je to ešte veľmi jednoduché:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

Všimnite si, ako sú názvy stĺpcov a obmedzenia v hranatých zátvorkách a stĺpcom je priradený príslušný dátový typ. Je zadaný primárny kľúč, ako sa vyžaduje v každom dobrom návrhu databázy.

12. Zmeniť tabuľku

The zmeniť stôl príkaz sa používa na úpravu štruktúry tabuľky. Toto je mierne obmedzené, pretože vaša databáza vám nedovolí zmeniť tabuľku, ak by existujúce údaje spôsobili konflikt - napríklad zmenu reťazca na celé číslo. V týchto prípadoch najskôr opravte údaje a potom upravte tabuľku. Tu je príklad:

ALTER TABLE people ADD height integer;

Tento príklad pridá do tabuľky ľudí stĺpec s názvom „výška“ typu integer. V skutočnosti neexistuje žiadny limit na to, čo môžete zmeniť.

13. Drop Table

Posledný príkaz je sklopný stôl . Považujte to za odstránenie, ale namiesto odstránenia jedného záznamu odstráni každý záznam spolu s tabuľkou! Takto ho používate:

DROP TABLE people;

Je to dosť drastický príkaz a neexistuje žiadny dôvod, prečo by mal byť naprogramovaný vo vašom systéme. Malo by sa to vykonávať iba ručne v prevažnej väčšine prípadov a môže to byť veľmi deštruktívne.

To je na dnes všetko. Dúfam, že ste sa naučili niekoľko užitočných trikov! Mohli by ste sa naučiť, ako na to vytvoriť webovú stránku , a potom použite svoje nové schopnosti na to, aby bol dynamický - uistite sa, že nerobíte tieto chyby alebo ho nenechávate zraniteľným voči SQL injekcii. Ak si nie ste istí, že sa musíte naučiť SQL, uvažovali ste nad generátorom statických stránok?

Prečo nezanecháte komentár nižšie so svojimi obľúbenými tipmi a trikami pre SQL?

Kredity obrázku: HYS_NP/Shutterstock

zdieľam zdieľam Tweet E -mail Oplatí sa upgradovať na Windows 11?

Windows bol prepracovaný. Stačí to však na to, aby ste sa presvedčili o prechode z Windows 10 na Windows 11?

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Programovanie
  • SQL
O autorovi Joe Coburn(136 publikovaných článkov)

Joe je absolventom počítačových vied na University of Lincoln, UK. Je profesionálnym softvérovým vývojárom, a keď nelieta s dronmi ani nepíše hudbu, často ho zastihne fotografovanie alebo vytváranie videí.

Viac od Joe Coburn

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber