Sumanūs būdai naudoti SQL sujungimo eilutę

Sumanūs būdai naudoti SQL sujungimo eilutę

Struktūrizuota užklausų kalba (SQL) yra nepaprastai galingas įrankis, kuriame gausu funkcijų. Kai įvaldysi daugiausiai svarbios SQL komandos , galite pradėti būti šiek tiek kūrybiškesni naudodami savo SQL. Šiandien aš jums parodysiu viską, ką reikia žinoti apie SQL sujungimo eilutes.





Yra daug skirtingų SQL tarmių. Visiems šiems pavyzdžiams aš naudoju „PostgreSQL“ variantas.





kaip pataisyti mėlyną mirties ekraną

Kas yra Sujungimas?

Sujungimas reiškia sujungti du dalykus. Galbūt naudojote jį programavimo kalba, kad sujungtumėte dvi eilutes. Galbūt turite vardo ir pavardės kintamuosius, kuriuos sujungėte kaip viso vardo kintamąjį.





Sujungimas yra labai naudingas būdas sujungti dvi eilutes į vieną. PHP naudoja tašką, kad sujungtų eilutes, tuo tarpu „JavaScript“ ir „jQuery“ naudoja pliuso ženklą.

Sujungimas SQL veikia lygiai taip pat. Norėdami sujungti du dalykus į vieną, naudojate specialų operatorių. Štai pavyzdys Pseudokodas :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

Programavimo kalbomis sujungimas palengvina kodo skaitymą. Jei jūsų kodui visada reikia prieiti prie dviejų eilučių, jas sujungus į vieną, bus lengviau įsiminti ir sutrumpės kodo ilgis.

Nors kintamieji SQL yra mažiau paplitę (tačiau vis dar naudojami), norint sujungti rezultatus arba manipuliuoti duomenimis, vis tiek reikia sujungti.





Kaip sujungti

Sujungimas yra labai lengva SQL. Nors SQL yra bendra kalba, atskiri duomenų bazių varikliai funkcijas įgyvendina skirtingai. Nors visi šie pavyzdžiai yra „PostgreSQL“ tarme, nesunku išversti į kitus variantus, tiesiog internete ieškant „Concatenate“. Skirtingi varikliai gali turėti skirtingą sujungimo sintaksę, tačiau principas išlieka tas pats.

Grįžtant prie mūsų vardo pavyzdžio, čia yra pagrindinis pasirinkti užklausa:





SELECT first_name, last_name, email FROM users_table

Čia nėra nieko sudėtingo, todėl pridėkime sujungimą:

SELECT first_name || last_name AS full_name, email FROM users_table

Kaip matote, šis sujungimas pavyko puikiai, tačiau yra viena maža problema. Gautas visas pavadinimas buvo sujungtas taip, kaip abiejų stulpelių produktas - tarp pavadinimų turi būti tarpas!

Laimei, tai lengva ištaisyti: tiesiog sujunkite tarpą tarp dviejų:

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

Tai yra pagrindiniai pavyzdžiai, tačiau turėtumėte pamatyti, kaip veikia sujungimas - tai tikrai taip paprasta! Vamzdžių operatorius ( | ) yra vartojamas du kartus tarp punktų. Jūsų SQL variklis žino, kad kiekviena dalis prieš ir po šio simbolio turėtų būti sujungta ir traktuojama kaip viena. Tačiau būkite atsargūs, jei naudosite sujungimo operatorių, bet nieko nesusiesite, gausite klaidą.

Kaip minėta aukščiau, šiuose pavyzdžiuose naudojamas SQL „PostgreSQL“ variantas. Kiti variantai gali naudoti kitą operatorių arba net specialią funkciją, kurią turite iškviesti. Tai tikrai nesvarbu kaip jūs sujungiate eilutes, jei tai darote taip, kaip tikisi jūsų duomenų bazės variklis.

Eina giliau

Dabar, kai žinote pagrindus, pažvelkime į keletą nuodugnių pavyzdžių ir bendrų klaidų.

Dauguma duomenų bazių variklių sėkmingai sujungs eilutes ir sveikus skaičius, o gal net datas. Paprastai susiduriate su problemomis, kai bandote sujungti sudėtingus tipus, tokius kaip masyvai:

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

Šis kodas neveiks. Neįmanoma sujungti eilučių su sudėtingais objektais, tokiais kaip masyvai. Jei galvojate apie tai, ką turite padaryti, dažnai galite parašyti paprastą, veikiantį kodą, o ne sudėtingą, beprotišką kodą, kurio nepavyksta paleisti.

Jei gerai pagalvojote, ką turite padaryti, ir vis tiek negalite priversti SQL veikti, ar pagalvojote naudoti programavimo kalbą? Kaip programinės įrangos kūrėjas, dirbantis prie palikto kodo, žinau, kaip sunku bandyti derinti SQL, kai kas nors sugrūdo tiek logikos, kad stebuklas išvis veikia - jei bandote rašyti logiką SQL, pereikite prie programavimo kalba (yra daug lengvai mokomų kalbų).

Sujungimas labai tinka kur teiginiai taip pat:

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

Čia vyksta keli dalykai. Šiame pavyzdyje DIENA , MĖNESIS , ir YEAR yra parametrai, perduoti iš scenarijaus. Galbūt jie buvo sukurti pagal kodą arba įvesti vartotojo. Jie yra sujungti ir tada perkeliami į datos tipą (naudojant „PostgreSQL“ perdavimo į datą sintaksę) ::data ).

Naudojant tokiu būdu sujungimą, galite susieti atskiras datos dalis, kurios vėliau gali būti apdorojamos kaip „tikra“ data, o ne eilutė. Nepamirškite, kad šis pagrindinis pavyzdys neapsaugo nuo SQL įpurškimo, todėl nenaudokite jo jokiame gamybiniame kode nekeisdami.

Dar viena duobė, į kurią reikia atkreipti dėmesį nulis reikšmės (nulinė eilutė yra tuščia arba neegzistuojanti eilutė). Atsižvelgiant į šią užklausą:

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

Ši užklausa tyliai nepavyksta. Taip yra dėl to, kaip jūsų duomenų bazės variklyje yra sujungtas sujungimas. Ne visada galite susidurti su šia problema, tačiau tai gana dažnas reiškinys.

Jei manote, kad užklausos pateikti duomenys gali būti niekiniai, turėsite naudoti a susilieti . Apytiksliai apie sujungimą galima galvoti taip: „jei tai yra nulis, pakeiskite jį kita eilute ar stulpeliu“:

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

Dabar jūs žinote, kaip naudoti susiejimą SQL, ką su juo darysite? Ar tu sukurti svetainę ir pagyvinti jį SQL? O galbūt jums reikia statinio svetainių generatoriaus, kad galėtumėte paprasčiau kurti svetaines.

Kad ir ką darytumėte, praneškite mums toliau pateiktose pastabose!

„Windows“ negali bendrauti su pagrindiniu DNS serveriu
Dalintis Dalintis „Tweet“ Paštu 6 garsinės alternatyvos: geriausios nemokamos ar pigios garso knygų programos

Jei nenorite mokėti už garso knygas, čia yra keletas puikių programų, leidžiančių nemokamai ir legaliai jų klausytis.

Skaityti toliau
Susijusios temos
  • Programavimas
  • Programavimas
  • SQL
Apie autorių Joe Coburn(Paskelbti 136 straipsniai)

Joe yra baigęs informatikos studijas Linkolno universitete, JK. Jis yra profesionalus programinės įrangos kūrėjas, o kai neskraido bepiločiais orlaiviais ir nerašo muzikos, jį dažnai galima rasti fotografuojant ar kuriant vaizdo įrašus.

Daugiau iš Joe Coburn

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia