Kvůli příkladům používám MySQL Workbench & amp; vlastní vytvořený Údaje O Prodeji vytvořeno pomocí Faker . Můžete to dostat na můj Github repo zdarma pod Licence MIT!
Jedná se o jednoduchý datový soubor 9999 x 11, Jak je uvedeno níže.
Začněme nejzákladnější operací SQL, tj. výběrem sloupců tabulky.
Určitě jste si přečetli velmi populární osvědčené postupy SQL — Don’s use SELECT *
, a ty to možná sleduješ.
Za předpokladu, že již dodržujete tento osvědčený postup, po výběru uvedete všechny názvy sloupců. Pouhé oddělení názvů sloupců čárkou však nestačí.
Pojďme pochopit proč.
Předpokládejme například, že chcete vybrat sloupce ID objednávky, množství a stav z datové sady.
SELECT OrderID, Quantity, Status
FROM sql_practice.dummy_sales_data_v1
Funguje to naprosto v pořádku!
Nyní předpokládejme, že v tuto chvíli nechcete extrahovat data z množství sloupce, ale chcete zachovat tento název sloupce v dotazu pro budoucí použití nebo použití.
Takže od této chvíle chcete komentovat pouze jeden sloupec “množství”. Jak to uděláš???
Neexistuje způsob, jak toho dosáhnout!
Když napíšete každý název sloupce na nový řádek, jak je uvedeno níže, můžete jej snadno komentovat, aniž byste ovlivnili zbytek dotazu.
SELECT OrderID,
Quantity,
Status
FROM sql_practice.dummy_sales_data_v1
Chcete-li Okomentovat sloupec množství, jednoduše přidejte --
před tím, takhle —
SELECT OrderID,
-- Quantity,
Status
FROM sql_practice.dummy_sales_data_v1
Tímto způsobem můžete ponechat název sloupce v dotazu pro budoucí použití a nezískat jeho hodnoty extrahované z databáze.
V budoucnu, když chcete zahrnout hodnoty z tohoto sloupce na výstupu, jednoduché odebrat --
a váš dotaz je dobré jít. Méně úsilí!
Výše uvedený dotaz však stále nedodržuje osvědčený postup.
Řeknu vám jak.
Předpokládejme, že místo sloupce Množství chcete komentovat sloupec stavu. Můžete to absolutně udělat, ale podívejme se na problém.
SELECT OrderID,
Quantity,
-- Status
FROM sql_practice.dummy_sales_data_v1
Kód Chyby: 1064. Máte chybu v syntaxi SQL; zkontrolujte příručku, která odpovídá verzi serveru MySQL, pro správnou syntaxi, kterou chcete použít poblíž ‘od SQL_PRACTICE.dummy_sales_data_v1 ‘ na lince 4 0.016 sec
Dojde k chybě kvůli čárce za množstvím sloupce.
Další osvědčené postupy tento problém řeší. Ukážu vám, jak na to.
Psaní čárky za názvem sloupce je běžná lidská tendence, protože je intuitivnější. Na tom není nic špatného.
Při psaní dotazu SQL to však může být problematické, zejména když komentujete poslední sloupec v příkazu SELECT. I když přidáte nový sloupec těsně před komentovaný řádek, existuje vyšší šance, že název sloupce skončíte čárkou.
Když napíšete čárku před název sloupce, jak je uvedeno níže, bude váš dotaz SQL čitelnější a udržovatelnější.
SELECT OrderID
, Quantity
, Status
FROM sql_practice.dummy_sales_data_v1
V tomto případě, i když komentujete stavový sloupec, nebude na konci sloupce Množství žádná čárka, takže se nemusíte obávat chyby syntaxe.
Další výhodou tohoto osvědčeného postupu SQL — Snadno najít chybějící čárku
Když budete postupovat podle prvního osvědčeného postupu-psaní každého názvu sloupce na nový řádek-všechny názvy sloupců v dotazu jsou zarovnány doleva. Když napíšete čárku na začátek názvu sloupce, všechny čárky budou ve stejné svislé čáře, jak vidíte ve výše uvedeném dotazu.
Bude to velmi snadné vyhledejte chybějící čárku a méně namáhejte oči, protože stačí posouvat oči ve svislé čáře.
V neposlední řadě se podívejme na zajímavý způsob přidání filtrování do SQL dotazu.
Jak víte, v SQL můžete filtrovat záznamy při načítání dat pomocí klauzule WHERE.
Ale proč to zahrnout pouze tehdy, když to potřebujete?
Myslím, že můžete napsat klauzuli kde, i když ji dnes nepotřebujete. Možná budete chtít přidat filtrování na některé sloupce v budoucnu.
Můžete jednoduše přidat kde 1=1 v dotazu po z příkazu, jak je znázorněno níže.
SELECT OrderID
, Quantity
, Status
FROM sql_practice.dummy_sales_data_v1
WHERE 1=1
Tato podmínka jednoduše znamená, Kde je pravda. Nebude to mít žádný dopad na výstup dotazu ani na dobu provádění dotazu.
Ale, to dělá váš kód snadno upravit.
Předpokládejme například, že chcete přidat filtrování ve sloupci Stav, můžete jednoduše napsat podmínku a napsat a před zapsáním do klauzule WHERE, jak je uvedeno níže.
SELECT OrderID
, Quantity
, Status
FROM sql_practice.dummy_sales_data_v1
WHERE 1=1
AND Status NOT IN ('Delivered')
Podobně, pokud chcete odstranit jednu nebo více podmínek filtrování, můžete jednoduše Okomentovat tento řádek v dotazu, aniž byste se museli starat o jakékoli koncové a koncové.
Tímto způsobem bude váš dotaz SQL čitelnější a snadno laditelný a upravitelný.