reklama

strukturovaný dotazovací jazyk (SQL) je pozoruhodně mocný nástroj, který je plný funkcí. Jakmile zvládnete nejvíce důležité příkazy SQL 13 nejdůležitějších příkazů SQL, které by měl každý programátor znátKaždý velký nebo dynamický web používá nějakým způsobem databázi a ve spojení se strukturovaným dotazovacím jazykem (SQL) jsou možnosti manipulace s daty opravdu nekonečné. Přečtěte si více , můžete začít s tvorbou jazyka SQL trochu kreativnější. Dnes vám ukážu vše, co potřebujete vědět o řetězcích zřetězení SQL.

Existuje mnoho různých dialektů SQL. Pro všechny tyto příklady používám PostgreSQL varianta.

Co je zřetězení?

Zřetězení znamená spojit dvě věci dohromady. Možná jste ho použili v programovacím jazyce ke spojení dvou řetězců dohromady. Možná máte proměnné pro křestní jméno a příjmení, které jste spojili jako proměnnou pro celé jméno.

Zřetězení je velmi užitečný způsob, jak spojit dva řetězce do jednoho. PHP používá tečku k spojení řetězců, zatímco JavaScript a jQuery Základní průvodce JQuery pro programátory Javascript

instagram viewer
Pokud jste programátorem Javascriptu, tento průvodce JQuery vám pomůže začít kódovat jako ninja. Přečtěte si více použijte znaménko plus.

Zřetězení v SQL funguje úplně stejně. Pomocí speciálního operátora spojíte dvě věci do jedné. Zde je příklad Pseudo kód:

first_name = Joe. last_name = Coburn. celé_jméno = křestní jméno + příjmení

V programovacích jazycích zřetězení usnadňuje čtení kódu. Pokud váš kód vždy potřebuje přístup ke dvěma řetězcům, jejich sloučení do jednoho usnadní zapamatování a zkrátí délku kódu.

Zatímco proměnné v SQL jsou méně běžné (ale stále se používají), zřetězení je stále potřeba k vrácení kombinovaných výsledků nebo k manipulaci s daty.

Jak zřetězit

Zřetězení je velmi snadné v SQL. Zatímco SQL je běžný jazyk, jednotlivé databázové stroje implementují funkce různými způsoby. I když všechny tyto příklady jsou v dialektovém PostgreSQL, je snadné přeložit do jiných variant jednoduše hledáním na webu „Zřetězené“ . “ Různé motory mohou mít jinou syntaxi pro zřetězení, ale princip zůstává stejný.

Vraťme se k příkladu našeho jména, tady je základní vybrat dotaz:

VYBRAJTE křestní jméno, příjmení, e-mail OD uživatelských tabulek
sql vyberte

Nic zde není složité, takže přidáme zřetězené:

VYBRAT křestní jméno || last_name AS full_name, email od users_table
sql základní zřetězení

Jak vidíte, tato zřetězení fungovalo dokonale, ale je tu jeden malý problém. Výsledné celé jméno bylo spojeno přesně jako součin obou sloupců - mezi názvy by měla být mezera!

Naštěstí je to snadné opravit: jednoduše vytvořte mezeru mezi těmito dvěma:

VYBRAT křestní jméno || '' || last_name AS full_name, email od users_table
sql zřetězený prostor

Toto jsou základní příklady, ale měli byste vidět, jak zřetězení funguje - je to opravdu tak snadné! Operátor potrubí (|) se používá dvakrát mezi klauzulami. Váš stroj SQL ví, že každá část před a za tímto symbolem by měla být spojena a považována za jednu. Buďte však opatrní, pokud použijete operátora concat, ale nic zřetězeného, ​​dostanete chybu.

chyba sql

Jak je uvedeno výše, tyto příklady používají variantu SQL PostgreSQL. Jiné varianty mohou používat jiného operátora nebo dokonce speciální funkci, kterou musíte volat. Na tom opravdu nezáleží jak zřetězíte řetězce, pokud tak učiníte způsobem, který váš databázový stroj očekává.

Jdeme hlouběji

Nyní, když znáte základy, pojďme se podívat na několik podrobných příkladů a na některé běžné úskalí.

Většina databázových strojů úspěšně zahraje směs řetězců a celých čísel, možná i dat. Při pokusech o zřetězení složitých typů, jako jsou pole, se obvykle setkáte s problémy:

VYBRAT křestní jméno || '' || last_name || ARRAY [123, 456] AS full_name, email od users_table

Tento kód nebude fungovat. Není možné kombinovat řetězce se složitými objekty, jako jsou pole. Pokud přemýšlíte o tom, co musíte udělat, můžete často napsat jednoduchý kód, který funguje, spíše než složitý, šílený kód, který se nespustí.

Pokud jste pečlivě přemýšleli o tom, co musíte udělat, a přesto nedokážete přimět SQL, aby fungoval, uvažovali jste o použití programovacího jazyka? Jako vývojář softwaru, který pracuje na starém kódu, vím, že při pokusu o ladění jazyka SQL došlo k něčemu, že někdo tak napjal tolik logiky do toho je zázrak, že to vůbec běží - pokud se pokoušíte psát logiku v SQL, pak přepněte na programovací jazyk (existuje spousta z snadné jazyky se učit 6 nejjednodušších programovacích jazyků pro začátečníkyNaučit se programovat je o nalezení správného jazyka stejně jako o procesu editace. Zde je prvních šest nejjednodušších programovacích jazyků pro začátečníky. Přečtěte si více ).

Zřetězení funguje velmi dobře kde prohlášení také:

VYBRAJTE křestní jméno, příjmení, e-mail OD uživatelského_tabulky WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR'):: date

Děje se tu pár věcí. V tomto příkladu DEN, MĚSÍC, a ROK jsou parametry, které byly předány ze skriptu. Možná byly vygenerovány kódem nebo zadány uživatelem. Ty jsou zřetězeny dohromady a poté přeneseny na typ data (pomocí syntaxe obsazení PostgreSQL do dnešního dne) ::datum).

Použitím zřetězení tímto způsobem můžete zřetězit jednotlivé části data, které pak mohou být na rozdíl od řetězce zpracovány jako „skutečné“ datum. Nezapomeňte, že tento základní příklad nechrání před SQL injekce Co je to SQL Injection? [MakeUseOf vysvětluje]Svět zabezpečení internetu je sužován otevřenými porty, zadními vrátkami, bezpečnostními otvory, trojskými koni, červy, zranitelnostmi v bráně firewall a spoustou dalších problémů, které nás každý den drží na nohou. Pro soukromé uživatele ... Přečtěte si více , takže jej nepoužívejte v žádném výrobním kódu bez úprav.

Další úskalí, na které je třeba dát pozor, je nula hodnoty (nulový řetězec je prázdný nebo neexistující řetězec). Na základě tohoto dotazu:

VYBRAT křestní jméno || '' || NULL AS full_name, email E-mail od users_table
sql nulové zřetězení

Tento dotaz tiše selže. Důvodem je interní kódování zřetězení v databázovém stroji. Ne vždy se s tímto problémem můžete setkat, ale je to docela běžné.

Pokud si myslíte, že data, která váš dotaz vrátí, mohou být nulová, musíte použít a splynout. Coalesce lze zhruba považovat za „pokud je to null, nahraďte jej jiným řetězcem nebo sloupcem“:

VYBRAT křestní jméno || '' || COALESCE (NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table
sql concatenation koalesce

Nyní víte, jak používat zřetězení v SQL, co s tím uděláte? Budeš vytvořit web Jak si vyrobit web: pro začátečníkyDnes vás budu provázet procesem vytváření kompletního webu od nuly. Nebojte se, pokud to zní obtížně. Provedu vás tímto krokem na každém kroku. Přečtěte si více a oživili jste to s SQL? Nebo možná budete potřebovat statický generátor stránek 7 důvodů, proč se zbavit svého CMS a zvážit statický generátor stránekPo mnoho let bylo publikování webové stránky pro mnoho uživatelů obtížné. CMS, jako je WordPress, to změnilo, ale stále mohou být matoucí. Další alternativou je generátor statických stránek. Přečtěte si více pro jednodušší přístup k vytváření webových stránek.

Ať už děláte cokoli, dejte nám vědět v komentářích níže!

Joe je absolventem informatiky na University of Lincoln ve Velké Británii. Je to profesionální softwarový vývojář, a když nelétá dronů nebo píše hudbu, často ho najde, když fotografuje nebo produkuje videa.