Matalino na Paraan upang Gumamit ng isang SQL Concatenation String

Matalino na Paraan upang Gumamit ng isang SQL Concatenation String

Istrakturang Wika ng Query Ang (SQL) ay isang napakalakas na tool, at isa na naka-pack na puno ng mga tampok. Kapag na-master mo na ang pinaka mahalagang mga utos ng SQL , maaari kang magsimula upang makakuha ng medyo mas malikhain sa iyong SQL. Ngayon ay ipapakita ko sa iyo ang lahat ng kailangan mong malaman tungkol sa mga string ng pagsasama-sama ng SQL.





Mayroong maraming iba't ibang mga SQL dialect. Para sa lahat ng mga halimbawang ito, ginagamit ko ang PostgreSQL iba-iba





kung paano mag-zoom out sa mac

Ano ang Pagtatapos?

Nangangahulugan ang pagtatapos na pagsamahin ang dalawang bagay. Maaaring ginamit mo ito sa isang wika ng programa upang sumali sa dalawang mga string. Marahil ay mayroon kang isang unang pangalan at apelyido na mga variable na pinagsama mo bilang isang buong variable ng pangalan.





Ang pagdudugtong ay isang napaka kapaki-pakinabang na paraan ng pagsasama-sama ng dalawang mga string sa isa. PHP gumagamit ng isang buong hintuan upang sumali sa mga string nang magkasama, samakatuwid JavaScript at ang jQuery ay gumagamit ng plus sign.

Ang konklusyon sa SQL ay gumagana nang eksaktong pareho. Gumagamit ka ng isang espesyal na operator upang sumali sa dalawang bagay sa isa. Narito ang isang halimbawa sa Pseudocode :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

Sa mga wika sa pagprograma, ginagawang mas madaling basahin ang code. Kung palaging kailangang i-access ng iyong code ang dalawang mga string, ang pagsasama sa mga ito sa isa ay ginagawang mas madaling matandaan, at binabawasan ang haba ng code.

Habang ang mga variable sa SQL ay hindi gaanong karaniwan (ngunit ginagamit pa rin), kinakailangan pa rin ang pagsasama upang maibalik ang pinagsamang mga resulta, o upang manipulahin ang data.





Paano Magtapos

Pangwakas ay napaka madali sa SQL. Habang ang SQL ay isang pangkaraniwang wika, ang mga indibidwal na database engine ay nagpapatupad ng mga tampok sa iba't ibang paraan. Habang ang lahat ng mga halimbawang ito ay nasa diyalekto ng PostgreSQL, madaling i-translate sa iba pang mga variant sa pamamagitan ng simpleng paghahanap sa web para sa 'Concatenate.' Ang magkakaibang mga makina ay maaaring may iba't ibang syntax para sa pagsasama-sama, ngunit ang prinsipyo ay mananatiling pareho.

Bumabalik sa aming halimbawa ng pangalan, narito ang isang batayan pumili ka tanong:





SELECT first_name, last_name, email FROM users_table

Walang kumplikado dito, kaya't magdagdag tayo sa concatenate:

SELECT first_name || last_name AS full_name, email FROM users_table

Tulad ng nakikita mo, ang pagkakaugnay na ito ay ganap na gumana, ngunit may isang maliit na problema. Ang nagresultang buong pangalan ay na-stitched nang eksakto tulad ng produkto ng parehong mga haligi - dapat mayroong isang puwang sa pagitan ng mga pangalan!

Sa kasamaang palad, madali itong ayusin: simpleng i-concat ang isang puwang sa pagitan ng dalawa:

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

Ito ang mga pangunahing halimbawa, ngunit dapat mong makita kung paano gumagana ang pagsasama - talagang madali iyon! Ang operator ng tubo ( | ) ay ginagamit nang dalawang beses sa pagitan ng mga sugnay. Alam ng iyong SQL engine na ang bawat bahagi bago at pagkatapos ng simbolong ito ay dapat na pagsali at tratuhin bilang isa. Mag-ingat bagaman, kung gagamitin mo ang concat operator ngunit hindi nag-uugnay sa anumang bagay, makakakuha ka ng isang error.

Tulad ng nabanggit sa itaas, ang mga halimbawang ito ay gumagamit ng variant ng PostgreSQL ng SQL. Ang ibang mga variant ay maaaring gumamit ng ibang operator, o kahit isang espesyal na pagpapaandar na kailangan mong tawagan. Hindi naman talaga bagay paano pinagsama mo ang mga string, na nagbibigay sa iyo na gawin ito sa paraang inaasahan ng iyong database engine.

Lalong Mas malalim

Ngayong alam mo na ang mga pangunahing kaalaman, tingnan natin ang ilang mga malalim na halimbawa, kasama ang ilang mga karaniwang bitag.

Karamihan sa mga makina ng database ay matagumpay na nakakumpuni ng isang halo ng mga string at integer, marahil kahit na ang mga petsa din. Karaniwan kang magkakaroon ng mga problema kapag sinusubukang i-concatenate ang mga kumplikadong uri tulad ng mga arrays:

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

Hindi gagana ang code na ito. Hindi posible na pagsamahin ang mga string sa mga kumplikadong bagay tulad ng mga arrays. Kung sa tingin mo tungkol sa kung ano ang kailangan mong gawin, maaari mong madalas na sumulat ng simpleng code na gumagana, sa halip na kumplikado, nakatutuwang code na nabigo upang tumakbo.

Kung pinag-isipan mong mabuti kung ano ang kailangan mong gawin, at hindi mo pa rin magawang gumana ang SQL, naisaalang-alang mo ba ang paggamit ng isang wika sa pagprograma? Bilang isang developer ng software na nagtatrabaho sa legacy code, alam ko ang sakit ng pagsubok na i-debug ang SQL na ang isang tao ay sumiksik ng labis na lohika sa isang nakakagulat na tumatakbo ito sa lahat - kung sinusubukan mong magsulat ng lohika sa SQL, pagkatapos ay lumipat sa isang wika ng programa (maraming mga madaling wikang matutunan).

Napakahusay na gumagana ng pagdudugtong para sa kung saan pahayag din:

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

Mayroong ilang mga bagay na nangyayari dito. Sa halimbawang ito, ARAW , BULAN , at TAON ay ang mga parameter na naipasa mula sa isang script. Siguro ang mga ito ay nabuo sa pamamagitan ng code, o naipasok ng isang gumagamit. Ang mga ito ay magkakasama, at pagkatapos ay i-cast sa isang uri ng petsa (gamit ang cast ng PostgreSQL hanggang sa syntax ng petsa :: petsa ).

Ang paggamit ng concatenation sa ganitong paraan ay nagbibigay-daan sa iyo upang magkasama ang mga indibidwal na bahagi ng isang petsa, na maaaring maproseso bilang isang 'totoong' petsa, taliwas sa isang string. Huwag kalimutan na ang pangunahing halimbawa na ito ay hindi pinoprotektahan laban sa SQL injection, kaya huwag gamitin ito sa anumang code ng paggawa nang hindi binabago.

Ang isa pang pitfall na dapat bantayan ay wala mga halaga (ang isang null string ay isang walang laman o walang umiiral na string). Dahil sa query na ito:

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

Tahimik na nabigo ang query na ito. Ito ay dahil sa paraan ng pagkakaloob ng panloob na naka-code sa iyong database engine. Maaaring hindi mo laging nakatagpo ang problemang ito, ngunit ito ay isang pangkaraniwang pangyayari.

Kung sa palagay mo ang data na ibinabalik sa iyong query ay maaaring maging null, kailangan mong gumamit ng a coalesce . Ang coalesce ay maaaring maisip bilang 'kung ito ay null, palitan ito ng ibang string o haligi':

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

Ngayon alam mo kung paano gamitin ang pagsasama sa SQL, ano ang gagawin mo dito? Gusto mo ba gumawa ng isang website at buhayin ito sa SQL? O marahil kailangan mo ng isang static na generator ng site para sa isang mas simpleng diskarte sa pagbuo ng mga website.

Anuman ang gagawin mo, ipaalam sa amin sa mga komento sa ibaba!

ano ang magagawa ng isang raspberry pi
Magbahagi Magbahagi Mag-tweet Email 6 Mga kahaliling Napapakinggan: Ang Pinakamahusay na Libre o Murang Audiobook Apps

Kung hindi mo pinangarap na magbayad para sa mga audiobook, narito ang ilang magagaling na apps na hinahayaan kang makinig sa kanila nang libre at ligal.

Basahin Susunod
Mga Kaugnay na Paksa
  • Programming
  • Programming
  • SQL
Tungkol sa May-akda Joe Coburn(136 Mga Artikulo Na-publish)

Si Joe ay nagtapos sa Computer Science mula sa University of Lincoln, UK. Siya ay isang propesyonal na developer ng software, at kapag hindi siya lumilipad ng mga drone o sumusulat ng musika, madalas siyang matagpuan na kumukuha ng mga larawan o gumawa ng mga video.

Higit pa Mula kay Joe Coburn

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe