Šikovné spôsoby použitia reťazca zreťazenia SQL

Šikovné spôsoby použitia reťazca zreťazenia SQL

Štruktúrovaný Dopytovací Jazyk (SQL) je mimoriadne účinný nástroj, ktorý je plný funkcií. Akonáhle zvládnete najviac dôležité príkazy SQL , môžete začať byť so svojim SQL trochu kreatívnejší. Dnes vám ukážem všetko, čo potrebujete vedieť o reťazcoch zreťazenia SQL.





Existuje mnoho rôznych dialektov SQL. Pre všetky tieto príklady používam príponu PostgreSQL varianta.





sú hry ps3 kompatibilné s ps4

Čo je to zreťazenie?

Reťazenie znamená spojiť dve veci dohromady. Možno ste ho použili v programovacom jazyku na spojenie dvoch reťazcov. Možno máte premenné krstného mena a priezviska, ktoré ste spojili ako premennú celého mena.





Reťazenie je veľmi užitočný spôsob kombinácie dvoch reťazcov do jedného. PHP používa bodku na spojenie reťazcov, zatiaľ čo JavaScript a jQuery používajú znamienko plus.

Reťazenie v SQL funguje úplne rovnako. Na spojenie dvoch vecí do jednej použijete špeciálneho operátora. Tu je príklad v Pseudokód :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

V programovacích jazykoch zreťazenie uľahčuje čítanie kódu. Ak váš kód vždy potrebuje prístup k dvom reťazcom, ich zlúčenie do jedného uľahčuje zapamätanie si a znižuje dĺžku kódu.

Aj keď sú premenné v jazyku SQL menej bežné (ale stále sa používajú), zreťazenie je stále potrebné na vrátenie kombinovaných výsledkov alebo na manipuláciu s údajmi.





Ako zreťaziť

Reťazenie je veľmi ľahké v SQL. Aj keď je SQL bežný jazyk, jednotlivé databázové stroje implementujú funkcie rôznymi spôsobmi. Aj keď sú všetky tieto príklady v dialektu PostgreSQL, je ľahké ich preložiť do iných variantov jednoduchým vyhľadaním výrazu „Concatenate“ na webe. Rôzne motory môžu mať odlišnú syntax pre zreťazenie, ale princíp zostáva rovnaký.

Keď sa vrátime k nášmu príkladu mena, tu je základ vyberte dopyt:





SELECT first_name, last_name, email FROM users_table

Nie je to nič zložité, takže pridáme reťazec:

SELECT first_name || last_name AS full_name, email FROM users_table

Ako vidíte, toto zreťazenie fungovalo perfektne, je tu však jeden malý problém. Výsledný úplný názov bol zošitý presne ako súčin oboch stĺpcov - medzi názvami by mala byť medzera!

Našťastie je ľahké to opraviť: jednoducho vytvorte priestor medzi nimi:

SELECT first_name || ' ' || last_name AS full_name, email FROM users_table

Toto sú základné príklady, ale mali by ste vidieť, ako funguje zreťazenie - je to skutočne také jednoduché! Operátor potrubia ( | ) sa používa dvakrát medzi doložkami. Váš SQL engine vie, že každá časť pred a za týmto symbolom by mala byť spojená a považovaná za jednu. Buďte však opatrní, ak použijete operátor concat, ale nič nespojíte, zobrazí sa chyba.

Ako bolo uvedené vyššie, tieto príklady používajú variant SQL PostgreSQL. Ostatné varianty môžu používať iného operátora alebo dokonca špeciálnu funkciu, na ktorú musíte zavolať. To je vlastne jedno ako zreťazíte reťazce za predpokladu, že to urobíte tak, ako váš databázový stroj očakáva.

Ide hlbšie

Teraz, keď poznáte základy, pozrime sa na niektoré hĺbkové príklady spolu s niektorými bežnými nástrahami.

Väčšina databázových strojov úspešne zachytí kombináciu reťazcov a celých čísel, možno aj dátumov. Pri pokuse o zreťazenie zložitých typov, ako sú polia, sa zvyčajne stretnete s problémami:

SELECT first_name || ' ' || last_name || ARRAY[123, 456] AS full_name, email FROM users_table

Tento kód nebude fungovať. Nie je možné kombinovať reťazce so zložitými objektmi, ako sú polia. Ak premýšľate o tom, čo musíte urobiť, často môžete napísať jednoduchý kód, ktorý funguje, a nie zložitý, bláznivý kód, ktorý sa nedá spustiť.

Ak ste si dobre premysleli, čo musíte urobiť, a napriek tomu vám SQL nefunguje, uvažovali ste nad použitím programovacieho jazyka? Ako softvérový vývojár pracujúci na starom kóde poznám bolesť pri pokuse o ladenie jazyka SQL, do ktorého niekto vtesnal toľko logiky, a je zázrak, že vôbec beží - ak sa pokúšate písať logiku v jazyku SQL, prepnite na programovací jazyk (existuje veľa jednoduchých jazykov na naučenie).

Zreťazenie funguje veľmi dobre na kde aj vyhlásenia:

SELECT first_name, last_name, email FROM users_table WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR')::date

Deje sa tu niekoľko vecí. V tomto prípade DEŇ , MESIAC a ROK sú parametre, ktoré boli odovzdané zo skriptu. Možno boli tieto údaje vygenerované kódom alebo ich zadal používateľ. Tieto sú spolu zreťazené a potom prenesené do typu dátumu (pomocou syntaxe prenášania do dátumu PostgreSQL ::dátum ).

Použitie tohto zreťazenia týmto spôsobom vám umožní spojiť jednotlivé časti dátumu, ktoré potom môžu byť spracované ako „skutočný“ dátum, na rozdiel od reťazca. Nezabudnite, že tento základný príklad nechráni pred injekciou SQL, takže ho bez úprav nepoužívajte v žiadnom produkčnom kóde.

Ďalšou nástrahou, na ktorú si treba dať pozor, je nulový hodnoty (nulový reťazec je prázdny alebo neexistujúci reťazec). Vzhľadom na tento dotaz:

SELECT first_name || ' ' || NULL AS full_name, email FROM users_table

Tento dotaz ticho zlyhá. Je to spôsobené spôsobom interného kódovania zreťazenia vo vašom databázovom stroji. S týmto problémom sa nemôžete stretnúť vždy, ale je to celkom bežný jav.

Ak si myslíte, že údaje, ktoré váš dotaz vracia, môžu mať hodnotu null, budete musieť použiť príponu splývať . Coalesce možno zhruba považovať za „ak je toto nulové, nahraďte ho týmto iným reťazcom alebo stĺpcom“:

SELECT first_name || ' ' || COALESCE(NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table

Teraz viete, ako používať zreťazenie v SQL, čo s ním urobíte? Budeš vytvoriť webovú stránku a oživiť to SQL? Alebo možno potrebujete generátor statických stránok na jednoduchší prístup k vytváraniu webových stránok.

Nech robíte čokoľvek, dajte nám vedieť v nižšie uvedených komentároch!

V systéme Windows 10 nie je možné nič nainštalovať
zdieľam zdieľam Tweet E -mail 6 zvukových alternatív: najlepšie bezplatné alebo lacné aplikácie pre zvukové knihy

Ak nemáte záujem platiť za audioknihy, tu je niekoľko skvelých aplikácií, ktoré vám umožnia počúvať ich bezplatne a legálne.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Programovanie
  • SQL
O autorovi Joe Coburn(136 publikovaných článkov)

Joe je absolventom počítačových vied na University of Lincoln, UK. Je profesionálnym softvérovým vývojárom, a keď nelieta s dronmi ani nepíše hudbu, často ho zastihne fotografovanie alebo vytváranie videí.

Viac od Joe Coburn

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber