Okos módszerek az SQL összefűzési karakterlánc használatára

Okos módszerek az SQL összefűzési karakterlánc használatára

Strukturált lekérdezési nyelv (SQL) rendkívül hatékony eszköz, és tele van funkciókkal. Miután elsajátította a legtöbbet fontos SQL parancsok , kezdhet egy kicsit kreatívabbá válni az SQL használatával. Ma mindent megmutatok, amit az SQL összefűzési karakterláncokról tudni kell.





Sok különböző SQL nyelvjárás létezik. Mindezen példákhoz a PostgreSQL változat.





hogyan találhat valaki kívánságlistát az Amazon -on

Mi az összefűzés?

Az összefűzés azt jelenti, hogy két dolgot összekapcsolunk. Lehet, hogy egy programozási nyelven használta két karakterlánc összekapcsolására. Talán van kereszt- és vezetéknév -változója, amelyeket teljes névváltozóként egyesített.





Az összefűzés egy nagyon hasznos módszer két karakterlánc egyesítésére. PHP pontot használ a karakterláncok összekapcsolására, míg JavaScript és a jQuery plusz jelet használ.

Az SQL összefűzése pontosan ugyanúgy működik. Egy speciális operátorral két dolgot egyesíthet egybe. Itt egy példa Pseudokód :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

A programozási nyelvekben az összefűzés megkönnyíti a kód olvasását. Ha a kódnak mindig két karakterlánchoz kell hozzáférnie, akkor azokat egybe kombinálva könnyebben megjegyezhető, és csökken a kód hossza.

Míg az SQL változói kevésbé gyakoriak (de még mindig használatosak), a kombinált eredmények visszaadásához vagy az adatok manipulálásához továbbra is összefűzésre van szükség.





Hogyan lehet összefűzni

Az összefűzés az nagyon könnyű az SQL -ben. Míg az SQL egy általános nyelv, az egyes adatbázis -motorok különböző módon valósítják meg a funkciókat. Bár mindezek a példák a PostgreSQL nyelvjárásban találhatók, könnyen lefordítható más változatokra, ha egyszerűen rákeres a weben a 'Összekapcsolás' kifejezésre. A különböző motorok eltérő szintaxissal rendelkezhetnek az összefűzéshez, de az elv ugyanaz marad.

Visszatérve a névpéldánkhoz, itt van egy alap válassza ki lekérdezés:





SELECT first_name, last_name, email FROM users_table

Itt nincs semmi bonyolult, ezért tegyük hozzá az összefűzést:

SELECT first_name || last_name AS full_name, email FROM users_table

Mint látható, ez az összefűzés tökéletesen működött, de van egy apró probléma. Az így kapott teljes nevet pontosan úgy varrták össze, mint a két oszlop szorzatát - szóköznek kell lennie a nevek között!

Szerencsére könnyű a javítás: egyszerűen össze kell kötni egy szóközt a kettő között:

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

Ezek alapvető példák, de látnia kell, hogyan működik az összefűzés - ez tényleg ilyen egyszerű! A csőkezelő ( | ) kétszer használják a tagmondatok között. Az SQL motor tudja, hogy a szimbólum előtti és utáni minden alkatrészt össze kell kötni és egyként kell kezelni. Legyen azonban óvatos, ha használja a concat operátort, de nem köt össze semmit, akkor hibaüzenetet kap.

Amint fentebb említettük, ezek a példák az SQL PostgreSQL változatát használják. Más változatok használhatnak másik operátort, vagy akár egy speciális funkciót, amelyet meg kell hívni. Nem igazán számít hogyan a karakterláncokat összefűzi, feltéve, hogy az adatbázis motorja által elvárt módon teszi.

Egyre mélyebbre

Most, hogy ismeri az alapokat, nézzünk néhány mélyreható példát, valamint néhány gyakori buktatót.

A legtöbb adatbázis -motor sikeresen összekapcsolja a karakterláncok és az egész számok keverékét, talán a dátumokat is. Általában problémákba ütközik, amikor összetett típusokat, például tömböket szeretne összefűzni:

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

Ez a kód nem fog működni. Nem lehet kombinálni a karakterláncokat összetett objektumokkal, például tömbökkel. Ha végiggondolja, mit kell tennie, gyakran írhat egyszerű kódot, amely működik, és nem komplex, őrült kódot, amely nem fut.

Ha alaposan átgondolta, hogy mit kell tennie, és még mindig nem tudja működtetni az SQL -t, akkor fontolóra vette a programozási nyelv használatát? Mint örökölt kódon dolgozó szoftverfejlesztő, tudom, milyen fájdalmat okoz az SQL hibakeresése, amikor valaki annyi logikát zsúfolt bele, hogy csoda, hogy egyáltalán fut - ha logikát próbál írni SQL -ben, akkor váltson egy programozási nyelv (rengeteg könnyű nyelv tanulható).

Az összefűzés nagyon jól működik ahol nyilatkozatok is:

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

Itt történik néhány dolog. Ebben a példában NAP , HÓNAP , és ÉV olyan paraméterek, amelyeket egy szkriptből adtak át. Lehet, hogy ezeket kód generálta, vagy egy felhasználó adta meg. Ezeket összefűzi, majd dátumtípussá alakítja (a PostgreSQL dátumra öntött szintaxisával ::dátum ).

Az ilyen módon történő összefűzés lehetővé teszi a dátum egyes részeinek láncolását, amelyeket ezután „valódi” dátumként lehet feldolgozni, szemben a karakterlánccal. Ne felejtse el, hogy ez az alapvető példa nem véd az SQL -befecskendezés ellen, ezért ne használja semmilyen gyártási kódban módosítás nélkül.

Egy másik buktató, amire figyelni kell nulla értékek (a null karakterlánc üres vagy nem létező karakterlánc). Tekintettel erre a lekérdezésre:

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

Ez a lekérdezés csendben meghiúsul. Ez annak köszönhető, hogy az összefűzés belső kódolású az adatbázis motorjában. Lehet, hogy nem mindig találkozik ezzel a problémával, de elég gyakori.

Ha úgy gondolja, hogy a lekérdezés által visszaadott adatok nullák lehetnek, akkor a egyesül . A Coalesce -t nagyjából úgy lehet elképzelni, hogy „ha ez null, akkor cserélje ki erre a másik karakterláncra vagy oszlopra”:

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

Most már tudja, hogyan kell használni az összefűzést az SQL -ben, mit fog tenni vele? Fogsz weboldalt készíteni és élénkíteni SQL -el? Vagy talán statikus webhelygenerátorra van szüksége a webhelyek létrehozásának egyszerűbb megközelítéséhez.

Bármit is tesz, tudassa velünk az alábbi megjegyzésekben!

nincs lehetőség a bluetooth bekapcsolására
Részvény Részvény Csipog Email 6 hallható alternatíva: A legjobb ingyenes vagy olcsó hangoskönyv -alkalmazások

Ha nem szeretne fizetni a hangoskönyvekért, íme néhány nagyszerű alkalmazás, amelyek segítségével ingyen és legálisan hallgathatja azokat.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Programozás
  • SQL
A szerzőről Joe Coburn(136 megjelent cikk)

Joe az Egyesült Királyságban, a Lincoln Egyetemen végzett informatikából. Professzionális szoftverfejlesztő, és amikor nem repül drónokkal és nem ír zenét, gyakran előfordul, hogy fényképeket készít vagy videókat készít.

Joe Coburn további alkotásai

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide