MySQL Příkaz SELECT s příklady

⚡ Chytré shrnutí

Jedno MySQL Příkaz SELECT načítá řádky z jedné nebo více tabulek a každý níže uvedený příklad běží na ukázkové databázi myflix, od prostého dotazu typu „star“ k výrazům, aliasům sloupců a řetězcovým funkcím.

  • 🔎 Hlavní účel: SELECT načte uložené řádky, které splňují kritéria, z příkazového řádku nebo z PHP, Pythona další jazyky.
  • 🧩 Pořadí syntaxe: Funkce SELECT, FROM, WHERE, GROUP BY, HAVING a ORDER BY se musí objevit v tomto pevném pořadí.
  • Zkratka s hvězdou: SELECT * FROM `members`; vrací všechny sloupce, zatímco explicitní pojmenování sloupců zmenšuje a zrychluje sady výsledků.
  • 🔗 Výrazy: Funkce Concat() spojuje hodnoty sloupců a funkce LEFT() ořezává znaky, takže vypočítaná pole se zobrazují přímo ve výsledné sadě.
  • ???? ️ Aliasy sloupců: Volitelné klíčové slovo AS přejmenuje jakýkoli výraz a nahradí nečitelné záhlaví, jako například Concat(`title`), jasnými popisky.
  • 🖱️ Porovnání pracovních stolů: MySQL Workbench generuje dotazy vizuálně, ale ručně psané příkazy SELECT jsou stále nezbytné pro komplexní a přesné vyhledávání.

Co je dotaz SELECT v MySQL?

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

VYBERTE dotaz v MySQL

Protože příkaz SELECT budete spouštět nejčastěji, vyplatí se seznámit se s jeho syntaxí, než se dotknete vzorových dat.

Syntaxe příkazu SELECT v SQL

SELECT je 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)];

ZDE

  • SELECT je klíčové slovo SQL, které dává databázi vědět, že chcete načíst data.
  • [ODLIŠNÁ | VŠECHNO] jsou volitelná klíčová slova, která dolaďují výsledky vrácené z příkazu SQL SELECT. Pokud není nic zadáno, pak se jako výchozí hodnota předpokládá ALL.
  • {*| [fieldExpression [AS newName]} Musí být zadána alespoň jedna část. „*“ vybere všechna pole ze zadaného názvu tabulky; funkce fieldExpression provádí výpočty se zadanými poli, například sčítání čísel nebo sloučení dvou řetězcových polí do jednoho.
  • Z Argument tableName je povinný a musí obsahovat alespoň jednu tabulku. Více tabulek musí být odděleno čárkami nebo spojeno klíčovým slovem JOIN.
  • KDE Podmínka je volitelná. Určuje kritéria ve výsledné sadě vrácené z dotazu.
  • SKUPINA VYTVOŘENÁ se používá k sestavení záznamů, které mají stejné hodnoty polí.
  • HAVING Podmínka se používá k určení kritérií při práci s klíčovým slovem GROUP BY.
  • SEŘADIT PODLE se používá k určení pořadí řazení sady výsledků.

*

Symbol hvězdičky vybere všechny sloupce v tabulce. Jednoduchý příkaz SELECT vypadá takto:

SELECT * FROM `members`;

Výše uvedený příkaz vybere všechna pole z tabulky members. Středník je ukončovací znak příkazu. Není povinný, ale ukončení příkazů tímto způsobem je považováno za dobrý postup.

SELECT DISTINCT a LIMIT v MySQL

Dvě volitelná klíčová slova v syntaxi si zaslouží bližší pohled, protože začátečníci se s nimi setkávají, jakmile tabulka roste.

DISTINCT odstraní duplicitní řádky z výsledné sady. Tabulka filmy obsahuje několik filmů vydaných v roce 2007, takže prostý dotaz opakuje daný rok. DISTINCT vrací každou hodnotu jednou.

SELECT DISTINCT `year_released` FROM `movies`;

LIMIT omezuje počet vrácených řádků, což chrání klienta před dotazem, který by jinak načetl miliony záznamů.

SELECT * FROM `movies` LIMIT 5;
Klíčové slovo Co to dělá Kdy ji použít
VŠE (výchozí) Vrátí všechny odpovídající řádky, včetně duplikátů Počítání nebo výpis nezpracovaných záznamů
DISTINCT Sbalí duplicitní řádky do jednoho Vytvoření seznamu jedinečných hodnot
LIMIT Vrací pouze prvních N řádků Náhled dat nebo stránkování výsledků

Po ustálení syntaxe ukázková databáze tyto klauzule oživí.

Praktické příklady příkazu SELECT

Klikněte pro stažení databáze myflix použitá pro praktické příklady.

Můžete se naučit, jak importovat soubor .sql do MySQL Workbench.

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

Tabulka 1: Členové tabulka

členské číslo celá_jména rod datum narození fyzická adresa poštovní_ adresa číslo_kontaktu e-mail
1 Janet Jonesová Žena 21-07-1980 První ulice pozemek č. 4 Soukromá taška 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jonesová Žena 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Muž 12-07-1989 3. ulice 34 NULL 12345 rm@tstreet.com
4 Gloria Williamsová Žena 14-02-1984 2. ulice 23 NULL NULL NULL

Tabulka 2: filmy tabulka

movie_id titul ředitel rok_vydáno category_id
1 Piráti z Karibiku 4 Rob Marshall 2011 1
2 Zapomínání na Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Jméno Černá Edgar Jimz 2010 NULL
5 Tatínkovy holčičky NULL 2007 8
6 andělé a démoni NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooneRS John Schultz 2005 8
16 67% vinen NULL 2012 NULL

Získání seznamu členů

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

SELECT * FROM `members`;

Spuštění skriptu v MySQL Workbench produkuje následující výsledky.

členské číslo celá_jména rod datum narození fyzická adresa poštovní_ adresa číslo_kontaktu e-mail
1 Janet Jonesová Žena 21-07-1980 První ulice pozemek č. 4 Soukromá taška 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jonesová Žena 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Muž 12-07-1989 3. ulice 34 NULL 12345 rm@tstreet.com
4 Gloria Williamsová Žena 14-02-1984 2. ulice 23 NULL NULL NULL

Dotaz vrátil všechny řádky a sloupce z tabulky members.

Výběr konkrétních sloupců

Řekněme, že nás zajímají pouze pole full_name (celá jména), gender (pohlaví), physical_address (fyzická adresa) a email (e-mail). Toho dosáhne následující skript.

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

Spuštění skriptu v MySQL Workbench produkuje následující výsledky.

celá_jména rod fyzická adresa e-mail
Janet Jonesová Žena První ulice pozemek č. 4 janetjones@yagoo.cm
Janet Smith Jonesová Žena Melrose 123 jj@fstreet.com
Robert Phil Muž 3. ulice 34 rm@tstreet.com
Gloria Williamsová Žena 2. ulice 23 NULL

Získání seznamu filmů pomocí výrazů

Výrazy lze také použít v příkazech SELECT. Řekněme, že chceme seznam filmů s názvem a jménem režiséra v jednom poli, režisérem v závorkách a rokem vydání filmu. Následující skript to udělá.

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

ZDE

  • Concat() MySQL Funkce spojuje hodnoty sloupců dohromady.
  • Řádek „Concat(`title`, ' (', `director`, ')')“ načte název, přidá úvodní závorku následovanou jménem režiséra a poté uzavírací závorku.
  • Části řetězců jsou uvnitř funkce Concat() odděleny čárkami.

Spuštění skriptu v MySQL Workbench vygeneruje následující sadu výsledků.

Concat(`title`, ' (', `director`, ')') rok_vydáno
Piráti z Karibiku 4 (Rob Marshall) 2011
Zapomenutí na Sarah Marshal (Nicholas Stoller) 2008
NULL 2008
Code Jméno Black (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooners (John Schultz) 2005
NULL 2012

Poznámka: Funkce Concat() vrací hodnotu NULL, pokud je jakýkoli argument NULL, což je důvod, proč filmy bez režiséra výše zobrazují hodnotu NULL.

Názvy polí aliasů

Výše uvedený příklad vrátil jako název pole kód zřetězení. Chcete-li ve výsledné sadě použít popisnější název pole, použijte alias sloupce. Základní syntaxe je následující.

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

ZDE

  • „SELECT `název_sloupce|hodnota|výraz`“ je běžný příkaz SELECT, který může být názvem sloupce, hodnotou nebo výrazem.
  • "[TAK JAKO]" je volitelné klíčové slovo před aliasem.
  • "`alias_name`" je alias, který je vrácen ve výsledné sadě jako název pole.

Stejný dotaz s výstižně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
Zapomenutí na Sarah Marshal (Nicholas Stoller) 2008
NULL 2008
Code Jméno Black (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooners (John Schultz) 2005
NULL 2012

Získání seznamu členů s rokem narození

Předpokládejme, že chceme seznam všech členů s číslem členství, celými jmény a rokem narození. Můžeme použít řetězcovou funkci LEFT k expozicitracrok narození z pole s datem narození.

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

ZDE

  • "LEFT(`datum_narozeni`,4)" ο Funkce LEFT řetězce přijímá datum narození jako parametr a vrací pouze 4 znaky zleva.
  • "JAKO "rok_narozeni" je název aliasu sloupce se vrátily do našich výsledků. Klíčové slovo AS je nepovinné; můžete to vynechat a dotaz bude stále fungovat.

Spuštění dotazu v MySQL Workbench s myflixdb nám dává výsledky uvedené níže.

členské číslo celá_jména rok narození
1 Janet Jonesová 1980
2 Janet Smith Jonesová 1980
3 Robert Phil 1989
4 Gloria Williamsová 1984

Ručně psané dotazy jsou pouze jednou z cest k výsledné sadě. Workbench vám také může příkaz sestavit.

Použití SQL MySQL Workbench

Nyní budeme používat MySQL Workbench pro generování skriptu, který zobrazí všechny názvy polí z naší tabulky kategorií.

1. Klikněte pravým tlačítkem myši na tabulku Kategorie. Klikněte na „Vybrat řádky – Omezit na 1000“.

2. MySQL Workbench automaticky vytvoří SQL dotaz a vloží ho do editoru.

3. Výsledky dotazu se zobrazují v mřížce pod editorem.

pomocí SQL MySQL Workbench

Jak je vidět na snímku obrazovky, příkaz SELECT jsme nenapsali sami. MySQL Workbench to pro nás vygeneroval.

Proč používat příkaz SELECT SQL, když máme MySQL Pracovní stůl?

Možná vás zajímá, proč byste se měli učit příkaz SQL SELECT, když nástroj jako MySQL Workbench vrací stejné výsledky bez znalosti jazyka SQL. Tato zkratka je možná, ale učení se příkazu SELECT vám dává víc flexibilita a řízení nad tvým SQL příkazy SELECT.

MySQL Pracovní stůl spadá do kategorie „Dotaz podle příkladu„(QBE) nástroje.“ Jeho účelem je rychlejší generování SQL příkazů a zvýšení produktivity uživatelů.

Naučení se příkazu SELECT v SQL vám umožní vytvářet složité dotazy které nelze snadno vygenerovat pomocí utilit Query by Example, jako například MySQL Pracovní stůl.

Pro zlepšení produktivity můžete vygenerujte kód v MySQL Workbench, pak přizpůsobit to, aby splnit vaše požadavkyTo je možné pouze tehdy, když pochopíte, jak fungují příkazy SQL.

Pochopení MySQL příkaz SELECT

Nejčastější dotazy

Obvykle ano. SELECT * přečte všechny sloupce, včetně velkých textových polí a polí blob, která možná nepotřebujete, a blokuje pokrytí indexů. Pojmenování sloupců zmenší výslednou sadu a zrychlí dotaz.

Klíčová slova jako SELECT a FROM nerozlišují velká a malá písmena. Porovnávání řetězců se řídí řazením sloupce, takže řazení bez rozlišování velkých a malých písmen, například utf8mb4_0900_ai_ci, považuje „Janet“ a „janet“ za rovnocenné.

Obvyklou příčinou je chybějící index. Před dotazem spusťte příkaz EXPLAIN, abyste zjistili, zda MySQL provede úplnou kontrolu tabulky, poté indexuje filtrované nebo spojené sloupce a vrátí pouze potřebné řádky.

Ano. Asistenti pro převod textu do SQL převedou prostý požadavek na příkaz SELECT, jakmile znají vaše schéma. Revzobrazit vygenerované spojení a filtry, protože model umělé inteligence může vymyslet názvy sloupců, které neexistují.

Ne. Umělá inteligence rychle vytvoří návrh dotazu, ale vy stále ověřujete logiku, spojení a výkon. MySQL WorkbenchZnalost příkazu SELECT vám umožní odhalit chybný výsledek ještě předtím, než se dostane do produkčního prostředí.

Shrňte tento příspěvek takto: