
Michael Fisher
0
1480
103
Strukturirani upitni jezik (SQL) je nevjerojatno moćan alat i onaj prepun značajki. Nakon što savladate najvažnije SQL naredbe 13 Najvažnije SQL naredbe Svaki programer treba znati 13 Najvažnije SQL naredbe Svaki programer treba znati Svako veliko ili dinamično web mjesto koristi bazu podataka na neki način i u kombinaciji s strukturiranim jezikom upita (SQL) , mogućnosti za manipuliranje podacima doista su beskrajne. , 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 varijantu.
Š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 punog imena.
Spajanje je vrlo koristan način kombiniranja dva niza u jedan. PHP koristi potpuno stajalište da spoji nizove zajedno, dok JavaScript i jQuery Osnovni vodič za JQuery za programere Javascript Osnovni vodič za JQuery za programere Javascript Ako ste Javascript programer, ovaj vodič za JQuery pomoći će vam da započnete kodiranje kao nindža. upotrijebite znak plus.
Spajanje u SQL-u djeluje potpuno isto. Pomoću posebnog operatera povezujete dvije stvari u jednu. Evo primjera u Pseudocode:
first_name = Joe last_name = Zatvori cijelo ime = prvo ime i 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 još uvijek potrebno za povratak 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 “povezati u obliku lanca .” Različiti motori mogu imati različitu sintaksu za spajanje, ali princip ostaje isti.
Vratimo se našem primjeru imena, ovdje je osnovno Odaberi upit:
ODABERITE ime i prezime, e-poštu OD korisničkih tablica
Ovdje nema ništa složeno, pa dodamo u spajanje:
ODABERITE prvo ime || prezime AS puno ime, e-pošta od korisnika_predložak
Kao što vidite, ta povezanost funkcionirala je savršeno, ali postoji jedan mali problem. Rezultirajući puni naziv sjedinjen je točno kao proizvod oba stupca - između imena bi trebao biti razmak!
Srećom, to je lako popraviti: jednostavno zakažite razmak između dva:
ODABIR ime i prezime || "|| prezime AS puno ime, e-pošta OD korisničke tablice
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 koristite concat operator, ali ništa ne povezujete, dobit ćete pogrešku.
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:
ODABIR ime i prezime || "|| prezime || ARRAY [123, 456] KAO puno ime, e-pošta OD korisnika_ tablice
Ovaj kôd neće raditi. Nije moguće kombinirati žice sa složenim objektima kao što su nizovi. Ako razmišljate o tome što biste trebali učiniti, često možete napisati jednostavan kôd koji djeluje, umjesto složenog, ludog koda koji se ne uspijeva 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 logike ubacio u to je čudo što se uopće pokreće - ako pokušavate napisati logiku u SQL-u, prebacite se na programiranje jezika (postoji mnogo jednostavnih jezika za naučiti. 6 najlakših jezika za programiranje za početnike 6 jezika za najlakše programiranje za učenje za početnike. Učenje za program znači pronalaženje pravog jezika koliko i o procesu jedifikacije. Evo prvih šest najlakši programski jezici za početnike.).
Povezivanje djeluje vrlo dobro za gdje i izjave:
ODABERITE ime i prezime, e-mail OD korisnika_table GDJE 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 dodaju datumu (koristeći PostgreSQL cast za sintaksu datuma ::datum).
Upotreba spajanja na ovaj način omogućuje vam da spojite pojedinačne dijelove datuma koji se mogu obraditi kao “stvaran” datum, za razliku od niza. Ne zaboravite da ovaj osnovni primjer ne štiti od injekcije SQL Što je SQL ubrizgavanje? [MakeUseOf objašnjava] Što je SQL ubrizgavanje? [MakeUseOf objašnjava] Svijet internetske sigurnosti muči otvorene luke, stražnju stranu, sigurnosne rupe, Trojani, crvi, ranjivost vatrozida i mnoštvo drugih problema koji nas svakodnevno drže na nogama. Za privatne korisnike,…, nemojte ga koristiti ni u kojem 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 AS full_name, email FROM users_table
Ovaj upit tiho ne uspijeva. To je zbog načina na koji je spajanje interno kodirano na vašem pogonu baze podataka. Možda se ne susrećete uvijek s tim problemom, ali to je prilično česta pojava.
Ako smatrate da podaci koje vaš upit vraća mogu biti ništavni, morat ćete ih koristiti srasti. Grubo se može smatrati coalesce “ako je to nulo, zamijenite ga s ovim drugim nizom ili stupcem”:
ODABERITE ime_nago |
Sada znate kako koristiti pridruživanje u SQL-u, što ćete učiniti s njim? Hoćete li napraviti web stranicu Kako napraviti web stranicu: za početnike Kako napraviti web stranicu: za početnike Danas ću vas voditi kroz postupak izrade kompletne web stranice. Ne brinite ako ovo zvuči teško. Vodit ću vas kroz to na svakom koraku. i oživjeti ga SQL-om? Ili vam je potreban generator statičkog web mjesta. 7 razloga za istrebljenje CMS-a i razmotriti statički generator web stranica 7 razloga da istresete svoj CMS i razmislite o statičkom generatoru web stranica Mnogo godina je objavljivanje web mjesta bilo teško za mnoge korisnike. CMS-ovi poput WordPressa to su promijenili, ali još uvijek mogu biti zbunjujuće. Druga alternativa je statički generator. za jednostavniji pristup izradi web stranica.
Što god učinite, javite nam u komentarima u nastavku!