реклама
език за структурирани заявки (SQL) е забележително мощен инструмент и този, който е пълен с функции. След като сте усвоили най-много важни SQL команди 13 най-важни SQL команди, които всеки програмист трябва да знаеВсеки голям или динамичен уебсайт използва база данни по някакъв начин и когато се комбинира със Структуриран език на заявките (SQL), възможностите за манипулиране на данни наистина са безкрайни. Прочетете още , можете да започнете да станете малко по-креативни с вашия SQL. Днес ще ви покажа всичко, което трябва да знаете за низовете за свързване на SQL.
Има много различни диалекти на SQL. За всички тези примери използвам PostgreSQL вариант.
Какво е сплотяването?
Свързването означава да се свържете две неща заедно. Може да сте го използвали на език за програмиране, за да обедините два низа заедно. Може би имате променливи за име и фамилия, които сте обединили като променлива с пълно име.
Конкатенацията е много полезен начин за комбиниране на две струни в една. PHP използва пълен стоп, за да съедини струните заедно, докато
JavaScript и JQuery Основно ръководство за JQuery за програмисти с JavaScriptАко сте Javascript програмист, това ръководство за JQuery ще ви помогне да започнете да кодирате като нинджа. Прочетете още използвайте знак плюс.Свързването в SQL работи точно по същия начин. Използвате специален оператор, за да свържете две неща в едно. Ето пример в Псевдокод:
first_name = Джо. last_name = Coburn. цяло_име = първо_име + фамилия
В езиците за програмиране конкатенацията прави код по-лесен за четене. Ако кодът ви винаги има нужда от достъп до два низа, комбинирането им в един улеснява запомнянето и намалява дължината на кода.
Докато променливите в SQL са по-рядко срещани (но все още се използват), конкатенацията все още е необходима за връщане на комбинирани резултати или за манипулиране на данни.
Как да се обединим
Съединението е много лесно в SQL. Докато SQL е общ език, отделните двигатели на бази данни изпълняват функции по различни начини. Въпреки че всички тези примери са в диаграмата PostgreSQL, е лесно да се превеждат на други варианти, като просто търсите в мрежата „Concatenate
Връщайки се към нашия пример с име, ето основно изберете заявка:
ИЗБЕРЕТЕ първо име, фамилия, имейл от потребителски таблици
Тук няма нищо сложно, така че нека добавим в съчетанието:
ИЗБЕРЕТЕ първо име || last_name AS full_name, имейл от потребител_table
Както можете да видите, това свързване работи перфектно, но има един малък проблем. Полученото пълно име е свързано точно като продукт на двете колони - трябва да има интервал между имената!
За щастие, това е лесно да се поправи: просто ограничете интервал между двете:
ИЗБЕРЕТЕ първо име || '' || last_name AS full_name, имейл от потребител_table
Това са основни примери, но трябва да видите как свързването става - наистина е толкова лесно! Тръбният оператор (|) се използва два пъти между клаузите. Вашият SQL двигател знае, че всяка част преди и след този символ трябва да бъде обединена и третирана като една. Внимавайте обаче, ако използвате оператора concat, но не свържете нищо, ще получите грешка.
Както бе споменато по-горе, в тези примери се използва PostgreSQL вариант на SQL. Други варианти могат да използват друг оператор или дори специална функция, която трябва да се обадите. Всъщност няма значение как обединявате низове, при условие че го правите по начина, по който двигателят на вашата база данни очаква.
Отивам по-дълбоко
Сега, когато знаете основите, нека разгледаме някои подробни примери, заедно с някои общи клопки.
Повечето двигатели на бази данни успешно ще съдържат комбинация от низове и цели числа, може би дори дати. Обикновено ще се сблъскате с проблеми, когато се опитвате да обедините сложни типове като масиви:
ИЗБЕРЕТЕ първо име || '' || last_name || ARRAY [123, 456] AS пълно име, имейл от потребителски таблици
Този код няма да работи. Не е възможно комбинирането на низове със сложни обекти, като масиви. Ако мислите какво трябва да направите, често можете да напишете прост код, който работи, а не сложен, луд код, който не се стартира.
Ако сте обмислили внимателно какво трябва да направите и все още не можете да накарате SQL да работи, тогава обмисляли ли сте да използвате език за програмиране? Като софтуерен разработчик, работещ върху наследения код, знам болката от опитите за отстраняване на грешки в SQL, че някой е натъпкал толкова много логика чудо е, че изобщо работи - ако се опитвате да пишете логика в SQL, след това преминете към език за програмиране (има много на лесни езици за учене 6 най-лесни езика за програмиране, които да научите за начинаещиДа се научим да програмираме, е да намерите правилния език точно толкова, колкото и за процеса на назидание. Ето първите шест най-лесни езика за програмиране за начинаещи. Прочетете още ).
Свързването работи много добре за където изявления също:
ИЗБЕРЕТЕ първо име, фамилия, имейл от потребител_table WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR'):: дата
Тук се случват няколко неща. В този пример, ДЕН, МЕСЕЦ, и ГОДИНА са параметри, които са били предадени от скрипт. Може би те са генерирани по код или са въведени от потребител. Те се обединяват заедно и след това се прехвърлят към тип дата (използвайки гласуването PostgreSQL към синтаксиса на дата ::дата).
Използването на конкатенацията по този начин ви позволява да свържете заедно отделните части на датата, които след това могат да бъдат обработени като „истинска“ дата, за разлика от низ. Не забравяйте, че този основен пример не защитава SQL инжекция Какво е SQL инжектиране? [MakeUseOf обяснява]Светът на интернет сигурността е обсебен от отворени пристанища, заден план, дупки в сигурността, троянски коне, червеи, уязвимости на защитната стена и множество други проблеми, които ни държат всеки ден на пръстите на краката. За частни потребители ... Прочетете още , така че не го използвайте в никакъв производствен код, без да променяте.
Друга клопка, на която трябва да внимавате, е нула стойности (нулев низ е празен или несъществуващ низ). Предвид тази заявка:
ИЗБЕРЕТЕ първо име || '' || NULL AS пълно име, имейл от потребителски таблици
Тази заявка мълчаливо се проваля. Това се дължи на начина, по който конкатенацията се кодира вътре в двигателя на вашата база данни. Не винаги можете да срещнете този проблем, но това е доста често срещано явление.
Ако смятате, че данните, които вашата заявка връща, може да са нулеви, тогава ще трябва да използвате сливам. Coalesce може грубо да се мисли като „ако това е нищожно, заменете го с този друг низ или колона“:
ИЗБЕРЕТЕ първо име || '' || COALESCE (NULL, 'ERROR NULL DATA') AS пълно име, имейл от потребител_table
Сега знаете как да използвате конкатенацията в SQL, какво ще правите с него? Ще направете уебсайт Как да си направим уебсайт: за начинаещиДнес ще ви насоча през процеса на изработка на цялостен уебсайт от нулата. Не се притеснявайте, ако това звучи трудно. Ще ви преведа през всяка стъпка от пътя. Прочетете още и да го оживи със SQL? Или може би имате нужда от генератор на статичен сайт 7 причини да изтриете вашата CMS и помислете за статичен генератор на сайтовеДълги години публикуването на уебсайт беше трудно за много потребители. CMS като WordPress промениха това, но все още могат да бъдат объркващи. Друга алтернатива е статичен генератор на сайтове. Прочетете още за по-опростен подход при изграждането на уебсайтове.
Каквото и да правите, уведомете ни в коментарите по-долу!
Джо е завършил компютърни науки от университета в Линкълн, Великобритания. Той е професионален разработчик на софтуер и когато не лети дронове или пише музика, често може да бъде намерен да прави снимки или да прави видео.