Vyhlásenie MySQL SELECT s príkladmi

Obsah:

Anonim

Čo je SELECT dotaz v MySQL?

SELECT QUERY sa používa na načítanie údajov z databázy MySQL. Databázy ukladajú údaje na neskoršie získanie. Účelom MySQL Select je vrátiť z databázových tabuliek jeden alebo viac riadkov, ktoré zodpovedajú daným kritériám. Select query možno použiť v skriptovacom jazyku ako PHP, Ruby alebo ho môžete vykonať pomocou príkazového riadku.

Syntax príkazu SQL SELECT

Je to najčastejšie používaný príkaz SQL a má nasledujúcu všeobecnú syntax

SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
TU
  • SELECT je kľúčové slovo SQL, ktoré dáva databáze vedieť, že chcete načítať údaje.
  • [DISTINCT | VŠETKY] sú voliteľné kľúčové slová, ktoré možno použiť na jemné doladenie výsledkov vrátených z príkazu SQL SELECT. Ak nie je zadané nič, použije sa ako predvolené ALL.
  • {* | [fieldExpression [AS newName]} musí byť zadaná aspoň jedna časť, "*" vyberie všetky polia zo zadaného názvu tabuľky, fieldExpression vykoná určité výpočty v zadaných poliach, ako napríklad pridanie čísel alebo spojenie dvoch reťazcových polí do jedného.
  • FROM tableName je povinné a musí obsahovať najmenej jednu tabuľku. Viaceré tabuľky musia byť oddelené čiarkami alebo spojené pomocou kľúčového slova JOIN.
  • KDE je podmienka voliteľná, je možné ju použiť na zadanie kritérií vo výsledkovej sade vrátenej z dotazu.
  • GROUP BY sa používa na zostavenie záznamov, ktoré majú rovnaké hodnoty poľa.
  • Podmienka HAVING sa používa na špecifikáciu kritérií pri práci s kľúčovým slovom GROUP BY.
  • ORDER BY sa používa na určenie poradia triedenia výsledkovej sady.

*

Symbol Hviezda sa používa na výber všetkých stĺpcov v tabuľke. Príklad jednoduchého príkazu SELECT vyzerá ako ten, ktorý je uvedený nižšie.

SELECT * FROM `members`;

Vyššie uvedené vyhlásenie vyberie všetky polia z tabuľky členov. Bodkočiarka je príkaz na ukončenie. Nie je to povinné, ale považuje sa za osvedčený postup na ukončenie takýchto výrokov.

Praktické príklady

Kliknutím prevezmete databázu myflix, ktorá sa používa ako praktický príklad.

Môžete sa naučiť importovať súbor .sql do MySQL WorkBench

Príklady sú uvedené v nasledujúcich dvoch tabuľkách

Tabuľka 1: tabuľka členov

členské číslo full_names rod dátum narodenia fyzická adresa Poštová adresa kontct_ cislo e-mail
1 Janet Jones Žena 21-07-1980 Pozemok prvej ulice č. 4 Súkromná taška 0759 253 542 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
2 Janet Smith Jones Žena 23-06-1980 Melrose 123 NULOVÝ NULOVÝ Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
3 Robert Phil Muž 12.7.1989 3. ulica 34 NULOVÝ 12345 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
4 Gloria Williams Žena 14-02-1984 2. ulica 23 NULOVÝ NULOVÝ NULOVÝ

Tabuľka 2: tabuľka filmov

film_id titul riaditeľ rok_vydané id_kategórie
1 Piráti z Karibiku 4 Rob Marshall 2011 1
2 Zabúda sa na Sarah Marshal Nicholas Stoller 2008 2
3 X Men NULOVÝ 2008 NULOVÝ
4 Kódové meno Čierne Edgar Jimz 2010 NULOVÝ
5 Daddy's Little Girls NULOVÝ 2007 8
6 Anjeli a démoni NULOVÝ 2007 6
7 Davinciho kódex NULOVÝ 2007 6
9 Medovníky John Schultz 2005 8
16 67% vinný NULOVÝ 2012 NULOVÝ

Získava sa zoznam členov

Predpokladajme, že chceme získať zoznam všetkých registrovaných členov knižnice z našej databázy. Použili by sme na to skript uvedený nižšie.

SELECT * FROM `members`;

Vykonanie vyššie uvedeného skriptu v pracovnej ploche MySQL prinesie nasledujúce výsledky.

členské číslo full_names rod dátum narodenia fyzická adresa Poštová adresa kontct_ cislo e-mail
1 Janet Jones Žena 21-07-1980 Pozemok prvej ulice č. 4 Súkromná taška 0759 253 542 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
2 Janet Smith Jones Žena 23-06-1980 Melrose 123 NULOVÝ NULOVÝ Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
3 Robert Phil Muž 12.7.1989 3. ulica 34 NULOVÝ 12345 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
4 Gloria Williams Žena 14-02-1984 2. ulica 23 NULOVÝ NULOVÝ NULOVÝ

Náš dopyt vyššie vrátil všetky riadky a stĺpce z tabuľky členov.

Povedzme, že nás zaujíma iba získanie iba polí s úplným menom, pohlavím, fyzickou adresou a e-mailom. Nasledujúci skript by nám pomohol dosiahnuť to.

SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;

Vykonanie vyššie uvedeného skriptu v pracovnej ploche MySQL prinesie nasledujúce výsledky.

full_names rod fyzická adresa e-mail
Janet Jones Žena Pozemok prvej ulice č. 4 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
Janet Smith Jones Žena Melrose 123 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
Robert Phil Muž 3. ulica 34 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
Gloria Williams Žena 2. ulica 23 NULOVÝ

Získava sa zoznam filmov

Pamätajte, že v našej diskusii vyššie sme spomenuli výrazy použité v príkazoch SELECT. Povedzme, že chceme získať zoznam filmov z našej databázy. Chceme mať názov filmu a meno režiséra v jednom poli. Meno režiséra by malo byť uvedené v zátvorkách. Chceme tiež získať rok, v ktorom bol film uvedený na trh. K tomu nám pomáha nasledujúci skript.

SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;

TU

  • Používa sa funkcia Concat () MySQL na spojenie hodnôt stĺpcov.
  • Riadok „Concat (` title`, '(', `director`, ')') získa názov, pridá úvodnú zátvorku, za ktorou nasleduje meno režiséra, a potom záverečnú zátvorku.

Časti reťazca sú oddelené čiarkami vo funkcii Concat ().

Vykonaním vyššie uvedeného skriptu v pracovnom stole MySQL sa vytvorí nasledujúca sada výsledkov.

Concat (`title`, '(',` director`, ')') rok_vydané
Piráti z Karibiku 4 (Rob Marshall) 2011
Zabúdanie na Sarah Marshal (Nicholas Stoller) 2008
NULOVÝ 2008
Krycie meno Black (Edgar Jimz) 2010
NULOVÝ 2007
NULOVÝ 2007
NULOVÝ 2007
Medovníky (John Schultz) 2005
NULOVÝ 2012

Názvy aliasových polí

Vyššie uvedený príklad vrátil kód zreťazenia ako názov poľa pre naše výsledky. Predpokladajme, že chceme v našej výsledkovej sade použiť popisnejší názov poľa. Na to by sme použili alias názvu stĺpca. Nasleduje základná syntax názvu aliasu stĺpca

SELECT `column_name|value|expression` [AS] `alias_name`;

TU

  • "SELECT" názov_sloupca | hodnota | výraz "" je bežný príkaz SELECT, ktorým môže byť názov, hodnota alebo výraz stĺpca.
  • „[AS]“ je voliteľné kľúčové slovo pred aliasovým menom, ktoré označuje výraz, hodnotu alebo názov poľa, bude vrátené ako.
  • „alias_name`“ je alias, ktorý chceme vrátiť v našej výsledkovej sade ako názov poľa.

Vyššie uvedený dopyt so zmysluplnejším názvom stĺpca

SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;

Získame nasledujúci výsledok

Concat rok_vydané
Piráti z Karibiku 4 (Rob Marshall) 2011
Zabúdanie na Sarah Marshal (Nicholas Stoller) 2008
NULOVÝ 2008
Krycie meno Black (Edgar Jimz) 2010
NULOVÝ 2007
NULOVÝ 2007
NULOVÝ 2007
Medovníky (John Schultz) 2005
NULOVÝ 2012

Zobrazuje sa zoznam členov s rokom narodenia

Predpokladajme, že chceme získať zoznam všetkých členov, ktorý zobrazuje členské číslo, celé mená a rok narodenia, pomocou funkcie LEFT string môžeme extrahovať rok narodenia z poľa dátumu narodenia. K tomu nám pomáha nižšie uvedený skript.

SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;

TU

  • "LEFT (` date_of_birth`, 4) " funkcie LEFT reťazec prijíma dátum narodenia ako parameter a vráti iba 4 znaky z ľavej strany.
  • „AS` year_of_birth` “ je alias názvu stĺpca, ktorý sa vráti v našich výsledkoch. Upozorňujeme, že kľúčové slovo AS je voliteľné , môžete ho vynechať a dopyt bude fungovať.

Vykonanie vyššie uvedeného dotazu v pracovnom stole MySQL proti myflixdb nám poskytne výsledky uvedené nižšie.

členské číslo full_names rok narodenia
1 Janet Jones 1980
2 Janet Smith Jones 1980
3 Robert Phil 1989
4 Gloria Williams 1984

SQL pomocou MySQL Workbench

Teraz použijeme pracovný stôl MySQL na vygenerovanie skriptu, ktorý zobrazí všetky názvy polí z našej tabuľky kategórií.

1. Kliknite pravým tlačidlom myši na tabuľku kategórií. Kliknite na „Vybrať riadky - obmedziť 1 000“

2. Pracovný stôl MySQL automaticky vytvorí dotaz SQL a vloží ho do editora.

3. Zobrazia sa výsledky dotazu

Všimnite si, že sme príkaz SELECT nepísali sami. Pracovný stôl MySQL to pre nás vygeneroval.

Prečo používať príkaz SELECT SQL, keď máme MySQL Workbench?

Možno si teraz myslíte, prečo sa naučiť príkaz SQL SELECT vyhľadávať údaje z databázy, keď na získanie rovnakých výsledkov bez znalosti jazyka SQL môžete jednoducho použiť nástroj ako napríklad pracovný stôl MySQL. To je samozrejme možné, ale naučiť sa používať príkaz SELECT vám dáva väčšiu flexibilitu a kontrolu nad vašimi príkazmi SQL SELECT .

Pracovný stôl MySQL patrí do kategórie nástrojov QBE „ Dotaz na príklad “. Má pomôcť generovať príkazy SQL rýchlejšie, aby sa zvýšila produktivita používateľov.

Naučenie sa príkazu SQL SELECT vám umožní vytvárať zložité dotazy, ktoré sa nedajú ľahko generovať pomocou obslužných programov Query by Example, ako napríklad pracovný stôl MySQL.

Pre zvýšenie produktivity môžete vygenerovať kód pomocou pracovnej plochy MySQL a potom ho prispôsobiť tak, aby vyhovoval vašim požiadavkám . To sa môže stať, iba ak pochopíte, ako fungujú príkazy SQL!

Zhrnutie

  • Kľúčové slovo SQL SELECT sa používa na dopytovanie údajov z databázy a je to najbežnejšie používaný príkaz.
  • Najjednoduchšia forma má syntax „SELECT * FROM tableName;“
  • Vo výroku select je možné použiť aj výrazy. Príklad „VYBERTE množstvo + cena Z predaja“
  • Príkaz SQL SELECT môže mať aj ďalšie voliteľné parametre, ako napríklad WHERE, GROUP BY, HAVING, ORDER BY. Bude sa o nich diskutovať neskôr.
  • Pracovný stôl MySQL môže pomôcť pri vývoji príkazov SQL, ich vykonávaní a vytváraní výstupných výsledkov v rovnakom okne.