13 Cele mai importante comenzi SQL pe care orice programator ar trebui să le cunoască

13 Cele mai importante comenzi SQL pe care orice programator ar trebui să le cunoască

Bazele de date conduc web-ul modern. Fiecare site web mare sau dinamic folosește o bază de date într-un fel și atunci când este combinată cu Limbaj de interogare structurat (SQL) , posibilitățile de manipulare a datelor sunt cu adevărat nelimitate. Dacă știți deja SQL, asigurați-vă că verificați aceste abilități de programare pe care toți dezvoltatorii de site-uri web ar trebui să le cunoască.





Astăzi vă voi arăta câteva dintre comenzi SQL de bază trebuie să știți ca programator.





Există multe nume pentru datele returnate dintr-un tabel de baze de date. Datele sunt denumite în mod obișnuit Rânduri , Înregistrări , sau Tuples . Voi folosi acești termeni în mod interschimbabil de-a lungul acestui articol.





Prefaţă

Toate exemplele de astăzi se vor baza pe patru tabele fictive. The client tabelul conține numele și vârsta clienților:

The înălțimi tabelul conține numele și înălțimea oricărei persoane:



The personal tabelul conține numele și vârsta membrilor personalului - exact la fel ca tabelul clienților:

Masa finală a fost numită oameni conține numele și vârsta persoanelor, la fel ca tabelele pentru clienți și personal:





1. Selectați

The Selectați declarația este cea mai simplă și este esențial să o înțelegeți, deoarece stă la baza tuturor celorlalte comenzi. Este considerată o bună practică să scrieți cuvintele SQL rezervate cu majuscule, deoarece face comanda mai ușor de citit și de înțeles.

După cum sugerează și numele său, select este folosit Selectați date dintr-o bază de date. Iată cea mai simplă utilizare:





SELECT * FROM table;

Există două părți în acest sens. Prima parte ( SELECTAȚI * ) specifică ce coloane doriți să selectați. Asteriscul indică faptul că doriți să selectați toate coloanele din tabel. A doua parte ( DE la masă ) spune motorului bazei de date de unde doriți să preluați aceste date. Înlocuiți „tabel” cu numele tabelului bazei de date.

Această selecție este cunoscută sub numele de „selectează stea”. Utilizarea asteriscului este o modalitate bună de a afla ce date sunt într-un tabel, dar nu vă recomand să îl utilizați pentru niciun cod de producție. Atunci când utilizați o stea selectată, depinde de motorul bazei de date să vă prezinte datele dorite. Nu aveți niciun control asupra comenzii în care datele sunt returnate, deci dacă cineva adaugă o coloană nouă în tabel, este posibil să găsiți variabilele dvs. în limbajul dvs. de programare nu mai reprezintă datele corecte. Din fericire, există o soluție.

Puteți specifica în mod explicit ce coloane doriți să preluați, astfel:

SELECT age, name FROM people;

Această interogare recuperează coloanele „vârstă” și „nume” din tabelul „persoane”. A fi atât de explicit poate fi ușor obositor dacă aveți o mulțime de date, dar dacă faceți acest lucru, veți reduce problemele în viitor, împreună cu ușurarea înțelegerii SQL de către orice viitor programator.

Dacă doriți să selectați o parte suplimentară de date, dar nu este stocată în niciunul din tabelele dvs., puteți face acest lucru astfel:

SELECT age, '1234' FROM people;

Orice șir din ghilimele unice va fi returnat în loc să se potrivească cu un nume de coloană.

2. Unde

Comanda de selectare este excelentă pentru preluarea datelor, dar dacă doriți să filtrați rezultatele puțin mai mult? Dar despre recuperarea numai a persoanelor care au ochii albaștri? Dar persoanele născute în ianuarie care lucrează ca mecanici? Acesta este locul unde Unde comanda intră. Aceasta vă permite să aplicați condiții la selectare și pur și simplu o atașați la sfârșitul declarației:

SELECT age, name FROM people WHERE age > 10;

Această interogare este acum limitată la persoanele cu vârsta peste 10 ani. Puteți combina mai multe condiții folosind ȘI operator:

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

The ȘI comanda funcționează exact așa cum se întâmplă în limba engleză: aplică o altă condiție pentru enunț. În acest exemplu, datele returnate ar fi orice înregistrări cu vârsta cuprinsă între 10 și 20. Deoarece nu există rezultate potrivite, nu sunt returnate date.

cum să conectați airpod-urile la Xbox One

O altă comandă care poate fi utilizată împreună cu aceasta este SAU . Iată un exemplu:

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

Această interogare returnează înregistrări în care vârsta depășește 10 ani sau numele este egal cu „Joe”. Observați cum există un singur semn egal? Majoritatea limbajelor de programare folosesc dublu egal (==) pentru a verifica echivalența. Acest lucru nu este necesar pentru marea majoritate a motoarelor de baze de date (dar poate fi foarte per mediu, deci verificați mai întâi).

3. Comandă

The Ordin comanda este utilizată pentru a sorta rezultatele returnate. Este încă unul ușor de utilizat. Pur și simplu adăugați-l la finalul declarației:

SELECT name, age FROM people ORDER BY age DESC;

Trebuie să specificați coloana și ordinea, care pot fi ASC pentru ascendent sau DESC pentru coborâre. Puteți comanda după mai multe coloane astfel:

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

COMANDA DE este poate cel mai util atunci când este combinat cu alte comenzi. Nu toate interogările vor returna datele într-un mod logic sau ordonat - această comandă vă permite să schimbați acest lucru.

4. Alătură-te

The a te alatura comanda este folosită pentru a te alatura datele conexe stocate în unul sau mai multe tabele. Tu a te alatura al doilea tabel la primul tabel și specificați cum sunt conectate datele. Iată un exemplu de bază:

cum să inversați datele în Excel
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Aici se întâmplă câteva lucruri. Trebuie să începeți cu sintaxa „LEFT JOIN”, care specifică faptul că doriți să vă alăturați unei tabele utilizând o asociere de tip stânga. Apoi, specificați tabelul la care doriți să vă alăturați (înălțimi). The UTILIZARE (nume) sintaxa afirmă că coloana „nume” poate fi găsită în ambele tabele și că aceasta ar trebui folosită ca cheie pentru a uni tabelele.

Nu vă faceți griji dacă coloanele dvs. au nume diferite în fiecare tabel. Puteți utiliza „ON” în loc de „USING”:

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

Instrucțiunea on precizează în mod explicit pe ce coloane trebuie tastate. Există multe tipuri de înscriere și ar dura mult timp pentru a intra în detalii pentru fiecare, așa că iată un rezumat rapid al utilizărilor lor:

  • (INTERIOR) ÎNSCRIEȚI-VĂ - Returnează rânduri cu o potrivire în ambele tabele.
  • STÂNGA (EXTERIOR) ÎNSCRIEȚI-VĂ - Returnează toate rândurile din tabelul din stânga, cu orice potriviri din tabelul din dreapta. Dacă nu există potriviri, înregistrările tabelului din stânga sunt încă returnate.
  • DREPT (EXTERIOR) ÎNSCRIEȚI-VĂ - Acesta este opusul unei îmbinări la stânga: toate rândurile din tabelul din dreapta sunt returnate, împreună cu orice meciuri din tabelul din stânga.
  • ÎNREGISTRARE COMPLETĂ (EXTERIOARĂ) - Returnează orice înregistrări cu un meci în oricare dintre tabele.

Sintaxa „INNER” sau „OUTER” este opțională. Poate face lucrurile mai ușor de înțeles, dar nu trebuie să îl specificați pentru marea majoritate a timpului.

5. Aliasuri

Acum știți elementele de bază, să ne uităm la alias comanda. Aceasta este utilizată pentru a redenumi temporar un tabel - mai mult decât o poreclă decât orice altceva, deoarece acest nou nume există doar în cadrul tranzacției individuale pe care o executați. Iată cum îl utilizați:

SELECT A.age FROM people A;

Puteți folosi orice nume valid doriți, dar îmi place să folosesc litere din alfabet. Înainte de numele fiecărei coloane, aliasul este prefixat. Acest alias este atribuit tabelului imediat după ce a fost declarat. Este exact același lucru cu a face acest lucru:

SELECT people.age FROM people;

În loc să trebuiască să tastați un nume lung de masă, puteți introduce o literă simplă și ușor de reținut - dar ce rost are? Ei bine, dacă selectați din mai multe tabele, este ușor să vă confundați cu privire la ce coloane aparțin cărui tabel. Dacă ambele tabele au întotdeauna coloane cu același nume, interogarea bazei de date poate chiar să nu ruleze fără a face referire în mod explicit la numele tabelului sau alias. Iată un exemplu cu două tabele:

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

Iată aceeași interogare cu aliasuri:

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

Tabelul personalului primește aliasul „A”, iar tabela clienților este aliasul „B”. Aliasarea tabelelor vă ajută să vă ușurați înțelegerea codului și reduce cantitatea de tastare pe care trebuie să o faceți.

De asemenea, puteți redenumi o coloană cu un alias folosind comanda „AS”:

SELECT age AS person_age FROM people;

Când se execută această interogare, coloana va fi acum numită „person_age” în loc de „age”.

6. Unirea

Uniune este o comandă grozavă. Vă permite să atașați rânduri unul la celălalt. Spre deosebire de îmbinările care adaugă coloane potrivite, uniunea poate adăuga rânduri neafiliate cu condiția să aibă același număr și nume de coloane. Iată cum îl utilizați:

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

Vă puteți gândi la uniune ca la o modalitate de a combina rezultatele a două interogări. O uniune va returna rezultate numai atunci când există un rând unic între cele două interogări. Puteți utiliza sintaxa „UNION ALL” pentru a returna toate datele, indiferent de duplicate:

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

Observați cum se modifică ordinea rândurilor? Union funcționează în cel mai eficient mod, astfel încât datele returnate pot varia în ordine.

Un posibil caz de utilizare pentru unire este un subtotal: ați putea uni o interogare a sumei totale într-o interogare a totalurilor individuale pentru un anumit scenariu.

7. Introduceți

Acum știți totul despre recuperarea datelor dintr-o bază de date, dar ce-i cu introducerea acestora? Acesta este locul unde introduce comanda intră. Iată un exemplu:

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

Trebuie să specificați numele tabelului (persoane) și coloanele pe care doriți să le utilizați (nume și vârstă). Sintaxa „VALORI” este apoi utilizată pentru a furniza valorile de inserat. Acestea trebuie să fie în aceeași ordine cu coloanele care au fost specificate anterior.

Nu puteți specifica o clauză unde pentru inserții și trebuie să vă asigurați că respectați orice constrângeri de tabel necesare care sunt prezente.

8. Actualizare

După inserarea unor date, este firesc să schimbi anumite rânduri. Iată Actualizați sintaxa comenzii:

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

Trebuie să specificați tabelul pe care doriți să îl modificați și apoi să utilizați sintaxa „SET” pentru a specifica coloanele și noile lor valori. Acest exemplu este bun, dar va actualiza fiecare înregistrare - ceva care nu este întotdeauna de dorit!

Pentru a fi mai specific, puteți utiliza clauzele „WHERE” la fel ca atunci când faceți o selecție:

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

Puteți chiar specifica mai multe condiții folosind „ȘI” și „SAU”:

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

Observați modul în care parantezele sunt utilizate pentru a constrânge condițiile.

cum să faci un gif tapetul tău windows 10

9. Upsert

Hopa este un cuvânt ciudat, dar este o comandă incredibil de utilă. Spuneți că aveți o constrângere pe masă și ați specificat că vreți vreodată înregistrări cu nume unice - nu doriți să stocați două rânduri cu același nume, de exemplu. Dacă ați încerca să inserați mai multe valori „Joe”, motorul bazei de date ar arunca o eroare și ar refuza să o facă (pe bună dreptate). Un UPSERT vă permite să actualizați o înregistrare dacă există deja. Acest lucru este incredibil de util! Fără această comandă, ar trebui să scrieți o mulțime de logică pentru a verifica mai întâi dacă există o înregistrare, introduceți dacă nu există, altfel preluați cheia primară corectă și apoi actualizați.

Din păcate, upserts sunt implementate diferit în diferite motoare de baze de date. PostgreSQL a câștigat abia recent această abilitate, în timp ce MySQL o deține de ceva timp. Iată sintaxa MySQL pentru referință:

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

Observați cum este în esență o actualizare și o instrucțiune insert, care poate fi rezumată ca „actualizare dacă inserarea nu a reușit”.

10. Ștergeți

Șterge este folosit pentru a elimina complet înregistrările - poate fi destul de dăunător dacă este abuzat! Sintaxa de bază este foarte ușor de utilizat:

DELETE FROM people;

La fel ca majoritatea celorlalte comenzi, aceasta se va șterge Tot ! Trebuie să utilizați un loc unde să îl restrângeți la un număr puțin mai sănătos de rânduri - în mod ideal unul:

DELETE FROM people WHERE name = 'Joe';

Dacă dezvoltați un sistem, este adesea înțelept să implementați o „ștergere soft”. Nu executați niciodată comanda de ștergere, ci creați o coloană ștearsă, apoi verificați acea coloană din selecțiile dvs. - poate evita o mulțime de jenă dacă puteți recupera rapid și ușor înregistrările presupuse șterse. Cu toate acestea, acesta nu înlocuiește copiile de siguranță adecvate.

11. Creați tabel

The crea tabela comanda este utilizată pentru a crea tabele. Este un altul foarte simplu:

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

Observați cum numele și constrângerile coloanelor sunt în paranteze și coloanelor li se oferă un tip de date adecvat. Este specificată o cheie primară, așa cum este necesar în orice proiectare bună a bazei de date.

12. Modificarea tabelului

The modifica tabelul comanda este utilizată pentru a modifica structura unui tabel. Acest lucru este ușor limitat, deoarece baza de date nu vă va permite să modificați un tabel dacă datele existente ar provoca un conflict - schimbarea unui șir într-un număr întreg, de exemplu. În aceste cazuri, remediați mai întâi datele, apoi modificați tabelul. Iată un exemplu:

ALTER TABLE people ADD height integer;

Acest exemplu adaugă o coloană numită „înălțime” de tip întreg la tabelul de persoane. Nu există cu adevărat o limită în ceea ce puteți modifica.

13. Tabel de picături

Comanda finală este drop table . Gândiți-vă la asta ca la ștergere, dar mai degrabă decât la ștergerea unei singure înregistrări, elimină fiecare înregistrare împreună cu tabelul! Iată cum îl utilizați:

DROP TABLE people;

Este o comandă destul de drastică și nu există niciun motiv pentru care trebuie să fie programată în sistemul dvs. Ar trebui să fie efectuat manual numai în marea majoritate a cazurilor, și poate fi foarte distructiv.

Asta e tot pentru astăzi. Sper că ai învățat câteva trucuri utile! Ai putea învăța cum să creați un site web și apoi folosiți-vă noile abilități pentru ao face dinamic - asigurați-vă că nu faceți aceste greșeli sau lăsați-l vulnerabil la injecția SQL. Dacă nu sunteți sigur că trebuie să învățați SQL, v-ați gândit la un generator de site static?

De ce nu lăsați un comentariu mai jos cu sfaturile și trucurile dvs. SQL preferate?

Credite imagine: HYS_NP / Shutterstock

Acțiune Acțiune Tweet E-mail Merită să faceți upgrade la Windows 11?

Windows a fost reproiectat. Dar este suficient pentru a vă convinge să treceți de la Windows 10 la Windows 11?

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • Programare
  • SQL
Despre autor Joe Coburn(136 articole publicate)

Joe este absolvent de Informatică de la Universitatea Lincoln, Marea Britanie. Este un dezvoltator de software profesionist și, atunci când nu zboară cu drone sau nu scrie muzică, poate fi găsit adesea făcând fotografii sau producând videoclipuri.

Mai multe de la Joe Coburn

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona