Oglas

Strukturirani jezik upita (SQL) je nevjerojatno moćan alat i onaj prepun značajki. Jednom kada svladate najviše važne SQL naredbe 13 najvažnijih SQL naredbi koje svaki programer treba znatiSvaka velika ili dinamična web stranica koristi bazu podataka na neki način, a u kombinaciji s strukturiranim jezikom upita (SQL) mogućnosti manipuliranja podacima zaista su beskrajne. Čitaj više , možete početi postati kreativniji sa svojim SQL-om. Danas ću vam pokazati sve što trebate znati o nizovima pridruživanja SQL.

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

Što je spajanje?

Spajanje 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 varijabla punoga imena.

Spajanje je vrlo koristan način kombiniranja dva niza u jedan. PHP koristi potpuno stajalište da spoji nizove zajedno, a JavaScript i jQuery Osnovni vodič za JQuery za programere Javascript

instagram viewer
Ako ste Javascript programer, ovaj vodič za JQuery pomoći će vam da započnete kodiranje poput nindže. Čitaj više upotrijebite znak plus.

Povezivanje u SQL-u djeluje potpuno isto. Pomoću posebnog operatera povezujete dvije stvari u jednu. Evo primjera u pseudokod:

prvo ime = Joe. last_name = Coburn. Cijelo_ime = ime_ prezime

U programskim jezicima pridruživanje olakšava čitanje koda. Ako vaš kôd uvijek treba pristupiti dvama strunama, njihovo kombiniranje u jednu olakšava pamćenje i smanjuje duljinu koda.

Iako su varijable u SQL-u manje uobičajene (ali se i dalje koriste), pridruživanje rezultata je potrebno za vraćanje kombiniranih rezultata ili za manipuliranje podacima.

Kako spojiti

Spajanje je vrlo jednostavno u SQL-u. Iako je SQL uobičajeni jezik, pojedinačni motori baza podataka implementiraju značajke na različite načine. Iako su svi ovi primjeri u dijagramu PostgreSQL, lako je prevesti na druge inačice jednostavnim pretraživanjem weba za „Spajanje „. Različiti motori mogu imati različitu sintaksu za spajanje, ali princip ostaje isti.

Vratimo se našem primjeru imena, ovdje je osnovno Izaberi upit:

ODABERITE ime i prezime, e-poštu OD korisničkih tablica
sql odaberite

Ovdje nema ništa složeno, pa dodajmo u objed:

ODABERITE prvo ime || prezime AS puno ime, e-pošta od korisnika_podatka
sql osnovno spajanje

Kao što vidite, ta povezanost funkcionirala je savršeno, ali postoji jedan mali problem. Rezultirajući puni naziv složen je točno kao produkt oba stupca - trebao bi biti razmaka između imena!

Srećom, to je lako popraviti: jednostavno zakucajte razmak između dva:

ODABERITE prvo ime || '' || prezime AS puno ime, e-pošta od korisnika_podatka
prostor za spajanje sql

Ovo su osnovni primjeri, ali trebali biste vidjeti kako spajanje djeluje - stvarno je tako jednostavno! Operator cijevi (|) koristi se dvaput između klauzula. Vaš SQL engine zna da svaki dio prije i nakon ovog simbola treba spojiti i tretirati kao jedan. Međutim, budite oprezni ako upotrebljavate concat operator, ali ne povežete ništa, dobit ćete pogrešku.

greška sql

Kao što je gore spomenuto, u tim se primjerima koristi PostgreSQL varijanta SQL-a. U drugim se inačicama može koristiti drugi operator ili čak posebna funkcija koju morate pozvati. To zapravo i nije važno kako spajate žice, pod uvjetom da to radite na način na koji vaš motor baze podataka očekuje.

Idete dublje

Sada kada znate osnove, pogledajmo nekoliko detaljnih primjera, zajedno s nekim uobičajenim zamkama.

Većina motora baze podataka uspješno će konkutirati mješavinu nizova i cijelih brojeva, možda i datuma. Obično ćete naići na probleme kada pokušavate povezati složene tipove poput nizova:

ODABERITE prvo ime || '' || prezime || 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 djeluje, umjesto složenog, ludog koda koji se ne uspije pokrenuti.

Ako ste dobro razmislili o tome što trebate učiniti, a SQL još uvijek ne može raditi, jeste li razmišljali o upotrebi programskog jezika? Kao programer softvera koji radi na naslijeđenom kodu, znam kako pokušava pokušati uklanjanje pogrešaka u SQL-u to što je netko toliko gomila logike čudo je što se uopće pokreće - ako pokušavate pisati logiku u SQL-u, a zatim se prebacite na programski jezik (ima dosta od lako jezike za učenje 6 najlakših jezika za programiranje za učenje za početnikeNaučiti programirati znači pronalaženje pravog jezika jednako koliko i postupak edifikacije. Slijedi prvih šest najlakših programskih jezika za početnike. Čitaj više ).

Povezivanje djeluje vrlo dobro za gdje i izjave:

ODABERITE ime i prezime, e-mail OD korisnika_tableGDJE datum_of_birth = ('DAY' || '/' || 'MJESEC' || '/' || 'GODINA'):: datum

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

Upotreba spajanja na ovaj način omogućuje vam povezivanje pojedinih dijelova datuma koji se mogu obraditi kao "stvarni" datum, za razliku od niza. Ne zaboravite da ovaj osnovni primjer ne štiti od SQL ubrizgavanje Što je SQL ubrizgavanje? [MakeUseOf objašnjava]Svijet internetske sigurnosti zatrpava otvorenim portovima, stražnjim otvorenim otvorima, sigurnosnim rupama, trojancima, crvima, ranjivošću vatrozida i mnoštvom drugih problema koji nas svakodnevno drže na vrhu. Za privatne korisnike, ... Čitaj više , pa nemojte upotrebljavati ga ni u jednom proizvodnom kodu bez izmjena.

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

ODABERITE prvo ime || '' || NULL KAO puno ime, e-pošta od korisničkih tablica
sql null concatenation

Ovaj upit tiho ne uspijeva. To je zbog načina na koji je spajanje interno kodirano na vašem pogonu baze podataka. Ne možete uvijek naići na ovaj problem, ali to je prilično uobičajena pojava.

Ako mislite da podaci koje vaš upit vraća mogu biti ništavni, morat ćete ih koristiti srasti. Coalesce se otprilike može zamisliti kao "ako je to nulo, zamijenite ga s ovim drugim nizom ili stupcem":

ODABERITE prvo ime || '' || COALESCE (NULL, 'ERROR NULL DATA') KAO puno ime, e-adresa OD users_table
sql concatenation coalesce

Sad znate kako koristiti pridruživanje u SQL-u, što ćete učiniti s njim? Hoćeš li napraviti web stranicu Kako napraviti web stranicu: za početnikeDanas ću vas voditi kroz izradu kompletne web stranice ispočetka. Ne brinite ako ovo zvuči teško. Vodit ću vas kroz to na svakom koraku. Čitaj više i oživjeti ga SQL-om? Ili ti možda trebaš generator statičkih stranica 7 razloga za ispadanje vašeg CMS-a i razmotrite statički generatorMnogo je godina objavljivanje web stranice bilo teško. CMS-ovi poput WordPressa to su promijenili, ali još uvijek mogu biti zbunjujuće. Druga alternativa je statički generator. Čitaj više za jednostavniji pristup izradi web stranica.

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

Joe je diplomski studij informatike na Sveučilištu u Lincolnu u Velikoj Britaniji. On je profesionalni programer softvera, a kad ne leti dronovima ili piše glazbu, često ga mogu naći fotografirati ili snimati videozapise.