13 najvažnijih SQL naredbi koje bi svaki programer trebao znati

13 najvažnijih SQL naredbi koje bi svaki programer trebao znati

Baze podataka pokreću suvremeni web. Svaka velika ili dinamična web stranica na neki način koristi bazu podataka, a u kombinaciji s njom Jezik strukturiranih upita (SQL) , mogućnosti manipulacije podacima doista su beskrajne. Ako već znate SQL, svakako provjerite ove vještine programiranja koje bi svi programeri web stranica trebali znati.





Danas ću vam pokazati neke od njih jezgrene SQL naredbe morate znati kao programer.





Postoji mnogo naziva za podatke vraćene iz tablice baze podataka. Podaci se obično nazivaju Redovi , Zapisi , ili Torte . Ove ću izraze koristiti naizmjenično u ovom članku.





Predgovor

Svi današnji primjeri temeljit će se na četiri izmišljene tablice. The kupac tablica sadrži ime i dob kupaca:

The visine tablica sadrži ime i visinu bilo koje osobe:



The osoblje tablica sadrži ime i dob zaposlenika - potpuno isto što i tablica kupaca:

Završni stol tzv narod sadrži ime i dob ljudi, baš kao i tablice kupaca i osoblja:





1. Odaberite

The Odaberi izjava je najjednostavniji i bitno je da je razumijete jer podupire gotovo sve ostale naredbe. Smatra se najboljom praksom da svoje rezervirane SQL riječi napišete velikim slovima jer olakšava čitanje i razumijevanje naredbe.

Kao što mu naziv govori, select je navikao Odaberi podatke iz baze podataka. Evo najjednostavnije upotrebe:





SELECT * FROM table;

Ovo ima dva dijela. Prvi dio ( ODABERI * ) navodi koje stupce želite odabrati. Zvjezdica označava da želite odabrati sve stupce u tablici. Drugi dio ( OD stola ) govori vašem stroju baze podataka odakle želite dohvatiti te podatke. Zamijenite 'tablicu' imenom vaše tablice baze podataka.

Taj odabir poznat je kao 'odaberi zvijezdu'. Korištenje zvjezdice dobar je način da saznate koji su podaci u tablici, ali ne preporučujem da ih koristite za bilo koji proizvodni kod. Kada koristite odabranu zvjezdicu, na stroju baze podataka je da vam predstavi željene podatke. Nemate nikakvu kontrolu nad redoslijedom vraćanja podataka, pa ako netko doda novi stupac u tablicu, možda ćete otkriti da vaše varijable u vašem programskom jeziku više ne predstavljaju točne podatke. Srećom, rješenje postoji.

Možete izričito navesti koje stupce želite dohvatiti, ovako:

SELECT age, name FROM people;

Ovaj upit dohvaća stupce 'dob' i 'ime' iz tablice 'ljudi'. Biti ovako eksplicitan može biti pomalo zamorno ako imate puno podataka, ali to će smanjiti probleme u budućnosti, uz olakšavanje razumijevanja vašeg SQL -a budućim programerima.

Ako želite odabrati dodatni podatak, ali nije pohranjen ni u jednoj od vaših tablica, to možete učiniti ovako:

SELECT age, '1234' FROM people;

Bilo koji niz unutar pojedinačnih navodnika bit će vraćen umjesto da odgovara nazivu stupca.

2. Gdje

Naredba select izvrsna je za dohvaćanje podataka, ali što ako želite rezultate još malo filtrirati? Što je s vraćanjem samo ljudi koji imaju plave oči? Što je s ljudima rođenima u siječnju koji rade kao mehaničari? Ovdje se nalazi gdje dolazi naredba. To vam omogućuje da primijenite uvjete na odabir i jednostavno ga dodate na kraj izraza:

SELECT age, name FROM people WHERE age > 10;

Ovaj je upit sada ograničen na osobe starije od 10 godina. Možete kombinirati više uvjeta pomoću I operater:

SELECT age, name FROM people WHERE age > 10 AND age <20;

The I naredba radi točno kao u engleskom jeziku: primjenjuje drugi uvjet na iskaz. U ovom primjeru, vraćeni podaci bili bi svi zapisi stari između 10 i 20 godina. Kako nema podudarnih rezultata, ne vraćaju se podaci.

najbolje je pogledati na youtube -u

Druga naredba koja se može koristiti zajedno s ovim je ILI . Evo primjera:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Ovaj upit vraća zapise u kojima je dob veća od 10 godina ili je ime jednako 'Joe'. Primijetite kako postoji samo jedan znak jednakosti? Većina programskih jezika koristi dvostruko jednako (==) za provjeru ekvivalentnosti. To nije potrebno za veliku većinu pokretača baza podataka (ali može vrlo po okruženju, pa prvo provjerite).

3. Red

The narudžba naredba se koristi za sortiranje vraćenih rezultata. Još je jedan jednostavan za korištenje. Jednostavno ga dodajte na kraj svoje izjave:

SELECT name, age FROM people ORDER BY age DESC;

Morate navesti stupac i redoslijed koji može biti ASC za uzlazni ili DESC za spuštanje. Možete naručiti po više stupaca ovako:

SELECT name, age FROM people ORDER BY name ASC, age DESC

NARUČI PO je možda najkorisniji u kombinaciji s drugim naredbama. Neće svi upiti vratiti podatke na logičan ili uređen način - ova naredba vam omogućuje da to promijenite.

4. Pridružite se

The pridružiti naredba je navikla pridružiti povezane podatke pohranjene u jednoj ili više tablica. Vas pridružiti drugu tablicu u prvu tablicu i odredite kako su podaci povezani. Evo osnovnog primjera:

najbolje mjesto za preuzimanje besplatne glazbe
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Ovdje se događa nekoliko stvari. Morate početi sa sintaksom 'LEFT JOIN', koja određuje da se želite pridružiti tablici pomoću pridruživanja tipa left. Zatim navedite tablicu kojoj se želite pridružiti (visine). The UPOTREBA (naziv) sintaksa navodi da se stupac 'name' može pronaći u obje tablice, te da se to treba koristiti kao ključ za spajanje tablica.

Ne brinite ako vaši stupci imaju različite nazive u svakoj tablici. Možete koristiti 'ON' umjesto 'USING':

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

Naredba on izričito navodi na koje se stupce treba upisati. Postoji mnogo vrsta pridruživanja i trebalo bi puno vremena da se detaljno razmotre svaki od njih, pa evo kratkog sažetka njihove uporabe:

  • (UNUTRAŠNJE) PRIDRUŽITE SE - Vraća retke s podudarnošću u obje tablice.
  • LIJEVO (VANJSKO) PRIDRUŽIVANJE - Vraća sve retke iz lijeve tablice, sa svim podudaranjima iz desne tablice. Ako nema podudaranja, lijevi zapisi tablice i dalje se vraćaju.
  • DESNO (VANJSKO) PRIDRUŽITE SE - Ovo je suprotno od lijevog spajanja: vraćaju se svi retci iz desne tablice, zajedno sa svim podudaranjima u lijevoj tablici.
  • PUNO (VANJSKO) PRIDRUŽIVANJE - Vraća sve zapise s podudaranjem u bilo kojoj tablici.

Sintaksa 'INNER' ili 'OUTER' nije obavezna. Može olakšati razumijevanje stvari, ali ne morate to navoditi veliku većinu vremena.

5. Pseudonimi

Sada znate osnove, pogledajmo alias naredba. Ovo se koristi za privremeno preimenovanje tablice - više nadimak nego bilo što drugo, jer ovaj novi naziv postoji samo unutar pojedinačne transakcije koju pokrećete. Evo kako ga koristite:

SELECT A.age FROM people A;

Možete koristiti bilo koje valjano ime koje želite, ali ja volim koristiti slova abecede. Prije imena svakog stupca alias se nalazi prefiks. Ovaj se pseudonim dodjeljuje tablici odmah nakon što je deklariran. To je potpuno isto kao i ovo:

SELECT people.age FROM people;

Umjesto da morate upisivati ​​dugačak naziv tablice, možete unijeti jednostavno i lako pamtljivo slovo - ali u čemu je poanta? Pa, ako odabirete iz više tablica, lako ćete se zbuniti koji stupci pripadaju kojoj tablici. Ako obje vaše tablice imaju stupce s istim imenom, vaš se upit baze podataka možda neće uspjeti pokrenuti bez izričitog pozivanja na naziv tablice ili pseudonim. Evo primjera s dvije tablice:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

I evo istog upita s aliasima:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

Tablica osoblja ima pseudonim 'A', a tablica kupaca pseudonim 'B'. Sklapanje tablica doista pomaže u olakšavanju razumijevanja koda i smanjuje količinu tipkanja koju morate napraviti.

Također možete preimenovati stupac s pseudonimom pomoću naredbe 'AS':

SELECT age AS person_age FROM people;

Kad se ovaj upit pokrene, stupac će se sada zvati 'person_age' umjesto 'age'.

6. Sindikat

Unija velika je zapovijed. Omogućuje vam međusobno dodavanje redaka. Za razliku od spojeva koji dodaju podudarajuće stupce, sindikat može dodati nepovezane retke pod uvjetom da imaju isti broj i naziv stupaca. Evo kako ga koristite:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Sindikat možete zamisliti kao način kombiniranja rezultata dva upita. Sindikat će vratiti rezultate samo ako postoji jedinstveni redak između dva upita. Možete koristiti sintaksu 'UNION ALL' za vraćanje svih podataka, bez obzira na duplikate:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Primijetili ste kako se redoslijed redova mijenja? Union djeluje na najučinkovitiji način, pa se vraćeni podaci mogu razlikovati po redoslijedu.

Mogući slučaj uporabe za sjedinjenje je međuzbir: možete upisati upit ukupnog zbroja u upit pojedinačnih zbrojeva za određeni scenarij.

7. Umetnite

Sada znate sve o preuzimanju podataka iz baze podataka, ali što je s umetanjem? Ovdje se nalazi umetnuti dolazi naredba. Evo primjera:

INSERT INTO people(name, age) VALUES('Joe', 102);

Morate navesti naziv tablice (osobe) i stupce koje želite koristiti (ime i dob). Sintaksa 'VALUES' tada se koristi za osiguravanje vrijednosti za umetanje. Oni moraju biti istim redoslijedom kao i prethodno navedeni stupci.

Ne možete navesti klauzulu where za umetke, a morate se pobrinuti da slijedite sva potrebna ograničenja tablice koja su prisutna.

8. Ažuriranje

Nakon umetanja nekih podataka, prirodno je promijeniti određene retke. Ovdje je ažuriranje sintaksa naredbe:

UPDATE people SET name = 'Joe', age = 101;

Morate navesti tablicu koju želite promijeniti, a zatim pomoću sintakse 'SET' odrediti stupce i njihove nove vrijednosti. Ovaj primjer je dobar, ali će ažurirati svaki pojedinačni zapis - nešto što nije uvijek poželjno!

Da biste bili precizniji, možete koristiti klauzule 'WHERE' kao i pri odabiru:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Možete čak odrediti više uvjeta koristeći 'AND' i 'OR':

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Uočite kako se zagrade koriste za ograničavanje uvjeta.

crni ekran smrti windows 10

9. Upsert

Ups je čudna zvučna riječ, ali to je nevjerojatno korisna naredba. Recimo da imate ograničenje na tablici, a naveli ste da želite samo zapise s jedinstvenim imenima - na primjer, ne želite pohraniti dva retka s istim imenom. Ako pokušate umetnuti više vrijednosti 'Joe', vaš bi mehanizam baze podataka prikazao pogrešku i odbio to učiniti (sasvim ispravno). UPSERT omogućuje ažuriranje zapisa ako već postoji. Ovo je nevjerojatno korisno! Bez ove naredbe morali biste napisati puno logike kako biste prvo provjerili postoji li zapis, umetnite ga ako nema, u suprotnom dohvatite ispravan primarni ključ, a zatim ažurirajte.

Nažalost, nadogradnje se različito implementiraju u različite strojeve baze podataka. PostgreSQL je tek nedavno stekao ovu sposobnost, dok je MySQL to imao već duže vrijeme. Evo reference za sintaksu MySQL:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Primijetite kako je ovo u biti ažuriranje i izraz za umetanje, koji se može sažeti kao 'ažuriranje ako umetanje nije uspjelo'.

10. Izbriši

Izbrisati koristi se za potpuno uklanjanje zapisa - može biti prilično štetno ako se zloupotrijebi! Osnovna sintaksa vrlo je jednostavna za korištenje:

DELETE FROM people;

Kao i većina drugih naredbi, i ovo će izbrisati sve ! Morate upotrijebiti mjesto za ograničavanje na malo razumniji broj redaka - idealno jedan:

DELETE FROM people WHERE name = 'Joe';

Ako razvijate sustav, često je pametno primijeniti 'meko brisanje'. Zapravo nikada ne pokrećete naredbu delete, nego stvarate izbrisani stupac, a zatim provjeravate taj stupac u odabranim postavkama - to može izbjeći mnogo potencijalnih neugodnosti ako možete brzo i jednostavno dohvatiti navodno izbrisane zapise. Međutim, ovo nije zamjena za odgovarajuće sigurnosne kopije.

11. Napravite tablicu

The stvoriti tablicu naredba se koristi za stvaranje tablica. To je još jedan vrlo jednostavan:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

Uočite kako su nazivi stupaca i ograničenja unutar zagrada, a stupcima je dan odgovarajući tip podataka. Naveden je primarni ključ, što je potrebno u svakom dobrom dizajnu baze podataka.

12. Promijeni tablicu

The mijenjati tablicu naredba se koristi za promjenu strukture tablice. To je malo ograničeno jer vam baza podataka neće dopustiti da promijenite tablicu ako bi postojeći podaci uzrokovali sukob - na primjer, mijenjanje niza u cijeli broj. U tim slučajevima prvo popravite podatke, a zatim izmijenite tablicu. Evo primjera:

ALTER TABLE people ADD height integer;

Ovaj primjer dodaje stupac zvan 'visina' tipa integer u tablicu ljudi. Zapravo nema ograničenja u onome što možete promijeniti.

13. Ispuštanje tablice

Konačna naredba je padni stol . Zamislite ovo kao brisanje, ali umjesto brisanja jednog zapisa, on uklanja svaki pojedinačni zapis zajedno s tablicom! Evo kako ga koristite:

DROP TABLE people;

To je prilično drastična naredba i nema razloga da je treba programirati u sustav. U velikoj većini slučajeva treba ga izvesti samo ručno, a može biti vrlo destruktivno.

To je sve za danas. Nadam se da ste naučili neke korisne trikove! Mogli biste naučiti kako napraviti web stranicu , a zatim upotrijebite svoje novootkrivene vještine kako biste ga učinili dinamičnim - samo pazite da ne napravite ove pogreške ili ga ostavite ranjivim na SQL ubrizgavanje. Ako niste sigurni trebate li naučiti SQL, jeste li razmišljali o generatoru statičke web lokacije?

Zašto ne ostavite komentar ispod s vašim omiljenim SQL savjetima i trikovima?

Zasluge za slike: HYS_NP/Shutterstock

Udio Udio Cvrkut E -pošta Isplati li se nadogradnja na Windows 11?

Windows je redizajniran. No, je li to dovoljno da vas uvjeri da prijeđete s Windows 10 na Windows 11?

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