Prohlášení MySQL SELECT s příklady

Obsah:

Anonim

Co je dotaz SELECT v MySQL?

SELECT QUERY se používá k načtení dat z databáze MySQL. Databáze ukládají data pro pozdější načítání. Účelem MySQL Select je vrátit z databázových tabulek jeden nebo více řádků, které odpovídají daným kritériím. Vybraný dotaz lze použít ve skriptovacím jazyce, jako je PHP, Ruby, nebo jej můžete spustit pomocí příkazového řádku.

Syntaxe příkazu SQL SELECT

Je to nejčastěji používaný příkaz SQL a má následující obecnou syntaxi

SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
TADY
  • SELECT je klíčové slovo SQL, které umožňuje databázi vědět, že chcete načíst data.
  • [DISTINCT | VŠE] jsou volitelná klíčová slova, která lze použít k doladění výsledků vrácených z příkazu SQL SELECT. Pokud není zadáno nic, pak se jako výchozí použije ALL.
  • {* | [fieldExpression [AS newName]} musí být zadána alespoň jedna část, "*" vybrána všechna pole ze zadaného názvu tabulky, fieldExpression provede určité výpočty na zadaných polích, jako je přidání čísel nebo sestavení dvou řetězcových polí do jednoho.
  • FROM tableName je povinné a musí obsahovat alespoň jednu tabulku, více tabulek musí být oddělených čárkami nebo spojeno pomocí klíčového slova JOIN.
  • WHERE podmínka je volitelná, lze ji použít k určení kritérií ve výsledkové sadě vrácené z dotazu.
  • GROUP BY se používá k sestavení záznamů, které mají stejné hodnoty polí.
  • Podmínka HAVING se používá k určení kritérií při práci s klíčovým slovem GROUP BY.
  • ORDER BY se používá k určení pořadí řazení sady výsledků.

*

Symbol Hvězda se používá k výběru všech sloupců v tabulce. Příklad jednoduchého příkazu SELECT vypadá jako ten, který je uveden níže.

SELECT * FROM `members`;

Výše uvedený příkaz vybere všechna pole z tabulky členů. Středník je zakončení příkazu. Není to povinné, ale je považováno za osvědčený postup, jak ukončit svá prohlášení.

Praktické příklady

Kliknutím stáhnete databázi myflix používanou pro praktické příklady.

Můžete se naučit importovat soubor .sql do MySQL WorkBench

Příklady jsou provedeny na následujících dvou tabulkách

Tabulka 1: tabulka členů

členské číslo full_names Rod datum narození fyzická adresa postal_ address Kontaktní_číslo e-mailem
1 Janet Jones ženský 21-07-1980 Pozemek první ulice č. 4 Soukromá taška 0759 253 542 Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
2 Janet Smith Jones ženský 23-06-1980 Melrose 123 NULA NULA Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
3 Robert Phil mužský 12.7.1989 3. ulice 34 NULA 12345 Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
4 Gloria Williams ženský 14-02-1984 2. ulice 23 NULA NULA NULA

Tabulka 2: tabulka filmů

film_id titul ředitel rok_vydáno id_kategorie
1 Piráti z Karibiku 4 Rob Marshall 2011 1
2 Zapomíná Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULA 2008 NULA
4 Kódové jméno černé Edgar Jimz 2010 NULA
5 Tatínkovy holčičky NULA 2007 8
6 andělé a démoni NULA 2007 6
7 Davinciho kód NULA 2007 6
9 Honey Mooners John Schultz 2005 8
16 67% vinen NULA 2012 NULA

Získávám seznam členů

Předpokládejme, že chceme získat seznam všech registrovaných členů knihovny z naší databáze, k tomu bychom použili níže uvedený skript.

SELECT * FROM `members`;

Provedení výše uvedeného skriptu v pracovní ploše MySQL přináší následující výsledky.

členské číslo full_names Rod datum narození fyzická adresa postal_ address Kontaktní_číslo e-mailem
1 Janet Jones ženský 21-07-1980 Pozemek první ulice č. 4 Soukromá taška 0759 253 542 Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
2 Janet Smith Jones ženský 23-06-1980 Melrose 123 NULA NULA Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
3 Robert Phil mužský 12.7.1989 3. ulice 34 NULA 12345 Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
4 Gloria Williams ženský 14-02-1984 2. ulice 23 NULA NULA NULA

Náš výše uvedený dotaz vrátil všechny řádky a sloupce z tabulky členů.

Řekněme, že nás zajímá pouze to, abychom dostali pouze pole pro celé jméno, pohlaví, fyzickou adresu a e-mail. K dosažení tohoto cíle nám pomůže následující skript.

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

Provedení výše uvedeného skriptu v pracovní ploše MySQL přináší následující výsledky.

full_names Rod fyzická adresa e-mailem
Janet Jones ženský Pozemek první ulice č. 4 Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
Janet Smith Jones ženský Melrose 123 Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
Robert Phil mužský 3. ulice 34 Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
Gloria Williams ženský 2. ulice 23 NULA

Získávání seznamu filmů

Nezapomeňte v naší výše uvedené diskusi, že zmiňujeme výrazy použité v příkazech SELECT. Řekněme, že chceme získat seznam filmů z naší databáze. Chceme mít v jednom poli název filmu a jméno režiséra filmu. Jméno režiséra filmu by mělo být v závorkách. Chceme také získat rok, kdy byl film vydán. K tomu nám pomůže následující skript.

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

TADY

  • Používá se funkce Concat () MySQL, která spojuje hodnoty sloupců dohromady.
  • Řádek „Concat (` title`, '(', `director`, ')') získá název, přidá úvodní závorku, za kterou následuje jméno ředitele, a poté uzavírací závorku.

Řetězcové části jsou odděleny čárkami ve funkci Concat ().

Provedení výše uvedeného skriptu v pracovní ploše MySQL vytvoří následující sadu výsledků.

Concat (`title`, '(',` director`, ')') rok_vydáno
Piráti z Karibiku 4 (Rob Marshall) 2011
Zapomínání Sarah Marshal (Nicholas Stoller) 2008
NULA 2008
Krycí jméno Black (Edgar Jimz) 2010
NULA 2007
NULA 2007
NULA 2007
Honey Mooners (John Schultz) 2005
NULA 2012

Názvy aliasových polí

Výše uvedený příklad vrátil kód zřetězení jako název pole pro naše výsledky. Předpokládejme, že chceme v naší sadě výsledků použít popisnější název pole. K tomu bychom použili alias názvu sloupce. Následuje základní syntaxe názvu aliasu sloupce

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

TADY

  • "SELECT" název_sloupce | hodnota | výraz "" je běžný příkaz SELECT, kterým může být název, hodnota nebo výraz sloupce.
  • „[AS]“ je volitelné klíčové slovo před názvem aliasu, který označuje výraz, hodnotu nebo název pole, bude vrácen jako.
  • „alias_name`“ je alias, který chceme v naší sadě výsledků vrátit jako název pole.

Výše uvedený dotaz se smysluplnějším názvem sloupce

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

Dostaneme následující výsledek

Concat rok_vydáno
Piráti z Karibiku 4 (Rob Marshall) 2011
Zapomínání Sarah Marshal (Nicholas Stoller) 2008
NULA 2008
Krycí jméno Black (Edgar Jimz) 2010
NULA 2007
NULA 2007
NULA 2007
Honey Mooners (John Schultz) 2005
NULA 2012

Získávám seznam členů zobrazující rok narození

Předpokládejme, že chceme získat seznam všech členů s uvedením čísla členství, celých jmen a roku narození, můžeme pomocí funkce LEFT string extrahovat rok narození z pole data narození. K tomu nám pomáhá níže zobrazený skript.

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

TADY

  • "LEFT (` date_of_birth`, 4) " funkce LEFT string akceptuje jako parametr datum narození a vrátí pouze 4 znaky zleva.
  • „AS` year_of_birth` “ je název aliasu sloupce, který bude vrácen v našich výsledcích. Všimněte si, že klíčové slovo AS je volitelné , můžete ho vynechat a dotaz bude i nadále fungovat.

Provedení výše uvedeného dotazu v pracovní ploše MySQL proti myflixdb nám dává výsledky uvedené níže.

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

SQL pomocí MySQL Workbench

Nyní použijeme pracovní plochu MySQL ke generování skriptu, který zobrazí všechny názvy polí z naší tabulky kategorií.

1. Klikněte pravým tlačítkem na tabulku kategorií. Klikněte na „Vybrat řádky - omezit 1000“

2. Pracovní plocha MySQL automaticky vytvoří dotaz SQL a vloží jej do editoru.

3. Zobrazí se výsledky dotazu

Všimněte si, že jsme příkaz SELECT sami nenapsali. Pracovní stůl MySQL to pro nás vygeneroval.

Proč používat příkaz SELECT SQL, když máme MySQL Workbench?

Nyní možná uvažujete, proč se učit příkaz SQL SELECT k dotazování na data z databáze, když můžete jednoduše použít nástroj, jako je pracovní stůl MySQL, abyste získali stejné výsledky bez znalosti jazyka SQL. To je samozřejmě možné, ale naučit se používat příkaz SELECT vám dává větší flexibilitu a kontrolu nad vašimi příkazy SQL SELECT .

Pracovní stůl MySQL spadá do kategorie QBE nástrojů „ Dotaz příkladem “. Má pomoci rychleji generovat příkazy SQL, aby se zvýšila produktivita uživatelů.

Naučit se příkaz SQL SELECT vám umožní vytvářet složité dotazy, které nelze snadno generovat pomocí obslužných programů Query by Example, jako je například pracovní plocha MySQL.

Chcete-li zlepšit produktivitu, můžete vygenerovat kód pomocí pracovní plochy MySQL a poté jej upravit podle svých požadavků . K tomu může dojít, pouze pokud pochopíte, jak fungují příkazy SQL!

souhrn

  • Klíčové slovo SQL SELECT se používá k dotazování na data z databáze a je to nejčastěji používaný příkaz.
  • Nejjednodušší forma má syntaxi „SELECT * FROM tableName;“
  • Výrazy lze také použít v příkazu select. Příklad „VYBRAT množství + cena Z prodeje“
  • Příkaz SQL SELECT může mít také další volitelné parametry, například WHERE, GROUP BY, HAVING, ORDER BY. Budeme o nich diskutovat později.
  • Pracovní plocha MySQL může pomoci vyvinout příkazy SQL, provádět je a vytvářet výstupní výsledek ve stejném okně.