Pametni načini korištenja SQL povezivanja niza

Pametni načini korištenja SQL povezivanja niza

Strukturirani jezik upita (SQL) je iznimno moćan alat i pun je mogućnosti. Nakon što ste svladali najviše važne SQL naredbe , možete početi postajati malo kreativniji sa svojim SQL -om. Danas ću vam pokazati sve što trebate znati o nizovima povezivanja SQL -a.





Postoji mnogo različitih SQL dijalekata. Za sve ove primjere koristim PostgreSQL varijanta.





kako provjeriti koju matičnu ploču imate

Što je spajanje?

Konkatenacija znači spojiti dvije stvari zajedno. Možda ste ga koristili u programskom jeziku za spajanje dva niza. Možda imate varijable imena i prezimena koje ste spojili kao varijablu s punim imenom.





Konkatenacija je vrlo koristan način kombiniranja dva niza u jedan. PHP koristi točku za spajanje nizova, dok JavaScript i jQuery koriste znak plus.

Spajanje u SQL -u radi potpuno isto. Pomoću posebnog operatora spojite dvije stvari u jednu. Evo primjera u Pseudokod :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

U programskim jezicima spajanje olakšava čitanje koda. Ako vaš kôd uvijek mora pristupiti dva niza, njihovo kombiniranje u jedan olakšava pamćenje i smanjuje duljinu koda.

Iako su varijable u SQL -u rjeđe (ali se i dalje koriste), povezivanje je još uvijek potrebno za vraćanje kombiniranih rezultata ili za manipulaciju podacima.





Kako spojiti

Spajanje je vrlo jednostavno u SQL -u. Iako je SQL uobičajen jezik, pojedini strojevi baze podataka implementiraju značajke na različite načine. Iako su svi ti primjeri na PostgreSQL dijalektu, lako je prevesti u druge varijante jednostavnim pretraživanjem weba za 'Poveži'. Različiti strojevi mogu imati različitu sintaksu za povezivanje, ali princip ostaje isti.

Vraćajući se na naš primjer imena, evo osnovnog Odaberi upit:





SELECT first_name, last_name, email FROM users_table

Ovdje nema ništa komplicirano, pa dodajmo ujedinjenje:

SELECT first_name || last_name AS full_name, email FROM users_table

Kao što vidite, ovo spajanje je savršeno funkcioniralo, ali postoji jedan mali problem. Rezultirajući puni naziv spojen je točno kao proizvod oba stupca - između imena treba biti razmak!

Srećom, to je lako popraviti: jednostavno zatvorite razmak između njih dvoje:

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

Ovo su osnovni primjeri, ali trebali biste vidjeti kako funkcionira spajanje - doista je tako jednostavno! Operater cijevi ( | ) koristi se dva puta između klauzula. Vaš SQL engine zna da svaki dio prije i poslije ovog simbola treba spojiti i tretirati kao jedan. Budite oprezni, ali ako koristite operator concat, ali ništa ne povežete, dobit ćete pogrešku.

Kao što je gore spomenuto, ovi primjeri koriste PostgreSQL varijantu SQL -a. Druge varijante mogu koristiti drugog operatora ili čak posebnu funkciju koju morate pozvati. Zapravo nije važno kako spajate nizove, pod uvjetom da to radite na način na koji vaš stroj baze podataka očekuje.

Ide dublje

Sada kada znate osnove, pogledajmo neke dublje primjere, zajedno s nekim uobičajenim zamkama.

Većina mehanizama baze podataka uspješno će spojiti mješavinu nizova i cijelih brojeva, možda čak i datume. Obično ćete naići na probleme pri pokušaju spajanja složenih tipova, kao što su nizovi:

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

Ovaj kôd neće raditi. Nije moguće kombinirati nizove sa složenim objektima kao što su nizovi. Ako razmišljate o tome što trebate učiniti, često možete napisati jednostavan kôd koji radi, a ne složen, ludi kôd koji se ne može pokrenuti.

Ako ste dobro razmislili što trebate učiniti, a još uvijek ne možete natjerati SQL da radi, jeste li razmislili o upotrebi programskog jezika? Kao programer softvera koji radi na naslijeđenom kodu, znam koliko je teško pokušavati otkloniti pogreške u SQL -u da je netko ugurao toliko logike u čudo da uopće radi - ako pokušavate pisati logiku u SQL -u, prijeđite na programski jezik (postoji mnogo jezika koji se lako uče).

Spajanje radi jako dobro za gdje izjave također:

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

Ovdje se događa nekoliko stvari. U ovom primjeru, DAN , MJESEC , i GODINA su parametri koji su preneseni iz skripte. Možda su oni generirani kodom ili ih je unijeo korisnik. Oni se spajaju zajedno, a zatim prenose na vrstu datuma (koristeći sintaksu dometa datuma za PostgreSQL ::datum ).

Korištenje povezivanja na ovaj način omogućuje vam povezivanje pojedinačnih dijelova datuma, koji se zatim može obraditi kao 'pravi' datum, za razliku od niza. Ne zaboravite da ovaj osnovni primjer ne štiti od SQL ubrizgavanja, stoga ga nemojte koristiti u bilo kojem proizvodnom kodu bez izmjena.

Još jedna zamka na koju morate paziti je null vrijednosti (null string je prazan ili nepostojeći niz). S obzirom na ovaj upit:

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

Ovaj upit tiho ne uspijeva. To je zbog načina na koji je povezivanje interno kodirano u vašem stroju baze podataka. Možda se nećete uvijek susresti s ovim problemom, ali to je uobičajena pojava.

Ako mislite da podaci koje vaš upit vraća mogu biti nuli, morat ćete upotrijebiti a spojiti se . Koalesce se otprilike može zamisliti kao 'ako je ovo null, zamijenite ga drugim nizom ili stupcem':

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

Sada znate kako koristiti spajanje u SQL -u, što ćete učiniti s njim? Hoćeš li napraviti web stranicu i oživjeti ga SQL -om? Ili vam je možda potreban statički generator web stranica za jednostavniji pristup izgradnji web stranica.

Što god učinili, javite nam u komentarima ispod!

kako čitati .dat datoteku
Udio Udio Cvrkut E -pošta 6 zvučnih alternativa: najbolje besplatne ili jeftine aplikacije za audio knjige

Ako ne volite plaćati audioknjige, evo nekoliko sjajnih aplikacija koje vam omogućuju besplatno i legalno slušanje.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Programiranje
  • SQL
O autoru Joe Coburn(136 objavljenih članaka)

Joe je diplomirao računalne znanosti na Sveučilištu Lincoln, UK. On je profesionalni programer softvera, a kad ne leti bespilotnim letjelicama ili ne piše glazbu, često ga se može zateći kako fotografira ili proizvodi video zapise.

Više od Joea Coburna

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu