13 cele mai importante comenzi SQL pe care orice programator ar trebui să le cunoască
Bazele de date conduc webul modern. Fiecare site mare sau dinamic utilizează într-un fel o bază de date și când este combinată cu Limbă de interogare structurată (SQL), posibilitățile de manipulare a datelor sunt cu adevărat nesfârșite. Dacă știți deja SQL, asigurați-vă că ați terminat aceste abilități de programare 7 Abilități de programare Toți dezvoltatorii site-ului ar trebui să știe 7 abilități de programare Toate dezvoltatorii site-ului ar trebui să știe Website design și dezvoltare oferă plăți bune și beneficii, ore de lucru decente, și perspectiva de avansare. Vă vom arăta care sunt abilitățile esențiale pe care le puteți învăța acum pentru a intra în acest domeniu interesant. Citește mai mult pe toți dezvoltatorii site-ului ar trebui să știe.
Astăzi vă voi arăta câteva dintre comenzile de bază pe care trebuie să le cunoașteți ca programatori.
Există numeroase nume pentru datele returnate dintr-o tabelă de baze de date. Datele sunt denumite în mod obișnuit ca rânduri, Înregistrări, sau Perechile. Voi folosi acești termeni interschimbabil în tot acest articol.
Prefaţă
Toate exemplele de astăzi se vor baza pe patru tabele ficționale. client tabelul conține numele și vârsta clienților:
înălțimi tabelul conține numele și înălțimea oricărei persoane:
personal tabelul conține numele și vârsta membrilor personalului - exact la fel ca și masa clientului:
Masa finală a sunat oameni conține numele și vârsta persoanelor, la fel ca mesele pentru clienți și personal:
1. Selectați
Selectați declarația este cea mai simplă și este esențial să o înțelegeți deoarece stă la baza tuturor celorlalte comenzi. Se consideră o bună practică scrierea cuvintelor SQL rezervate în majuscule, deoarece face comanda mai ușor de citit și de înțeles.
După cum sugerează și numele, selectați este folosit pentru a Selectați datele dintr-o bază de date. Iată cea mai simplă utilizare:
SELECT * FROM tabel;
Există două părți în acest sens. Prima parte (SELECTAȚI *) specifică coloanele pe care doriți să le selectați. Asteriscul indică faptul că doriți să selectați toate coloanele din tabel. A doua parte (Din tabel) vă informează despre motorul bază de date în care doriți să preluați aceste date. A inlocui “masa” cu numele tabelului de bază de date.
Această selecție este cunoscută ca “selectați stea.” Folosirea asteriscului reprezintă o modalitate bună de a afla ce date sunt într-un tabel, dar nu recomand să le folosiți pentru orice cod de producție. 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 returnate, astfel încât dacă cineva adaugă o coloană nouă în tabel, este posibil ca variabilele în limba dvs. de programare să nu mai reprezinte datele corecte. Din fericire, există o soluție.
Puteți specifica în mod explicit coloanele pe care doriți să le recuperați, cum ar fi:
Selectați vârsta, numele de la persoane;
Această interogare preia “vârstă” și “Nume” coloane din “oameni” masa. Fiind explicită aceasta poate fi ușor obositoare dacă aveți o mulțime de date, dar acest lucru va reduce problemele în viitor, împreună cu a face SQL-ul dvs. mai ușor de înțeles de către orice programatori viitori.
Dacă doriți să selectați o piesă suplimentară de date, dar nu este stocată în niciunul dintre tabelele dvs., puteți face acest lucru:
SELECT age, '1234' FROM people;
Orice șir din citate unică va fi returnat în locul potrivirii unui nume de coloană.
2. Unde
Comanda select este excelentă pentru recuperarea datelor, dar dacă ați fi dorit să filtrați rezultatele mai mult? Dar recuperarea numai a persoanelor care au ochi albaștri? Ce zici de oamenii născuți în ianuarie care lucrează ca mecanici? Aici este locul unde Unde comanda vine înăuntru. Aceasta vă permite să aplicați condițiile selectului și pur și simplu îl adăugați la sfârșitul instrucțiunii:
Selectați vârsta, numele de la persoanele unde se află vârsta> 10 ani;
Această interogare este acum limitată la persoanele care au o vechime mai mare de 10 ani. Puteți combina mai multe condiții folosind ȘI operator:
SELECTĂ vârsta, numele de la persoanele în vârstă> 10 ani și de vârstă < 20;
ȘI comandă funcționează exact ca în limba engleză: aplică o altă condiție pentru declarație. În acest exemplu, datele returnate ar fi orice înregistrări cu o vârstă cuprinsă între 10 și 20. Deoarece nu există rezultate potrivite, nu se întoarce date.
O altă comandă care poate fi folosită în legătură cu aceasta este SAU. Iată un exemplu:
Selectați vârsta, numele de la persoanele unde se află vârsta> 10 SAU nume = 'Joe';
Această interogare returnează înregistrări în cazul în care vârsta este mai mare de 10, sau numele este egal cu “Joe”. Observați cum există un singur semn egal? Cele mai multe limbi de programare utilizează dublu egal (==) pentru a verifica echivalența. Acest lucru nu este necesar pentru marea majoritate a motoarelor de baze de date (dar poate foarte în funcție de mediul înconjurător, deci verificați dublu mai întâi).
3. Ordinul
Ordin comanda este folosită pentru sortarea rezultatelor returnate. Este ușor de utilizat. Pur și simplu adăugați-l la sfârșitul declarației:
SELECT nume, vârstă DE LA ORDINȚI după vârstă DESC;
Trebuie să specificați coloana și ordinea, care poate fi ASC pentru ascensiune sau DESC pentru coborâre. Puteți comanda prin mai multe coloane, după cum urmează:
SELECT nume, vârstă FROM people ORDER BY name ASC, vârstă DESC
COMANDA DE LA este probabil cea 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ă modificați acest lucru.
4. Alăturați-vă
a adera este folosită comanda a adera legate de date stocate în unul sau mai multe tabele. Tu a adera al doilea tabel la primul tabel și specificați cum sunt conectate datele. Iată un exemplu de bază:
SELECTĂ vârsta, numele, înălțimea de la persoane LEFT JOIN heights USING (nume);
Sunt câteva lucruri care se întâmplă aici. Trebuie să începeți cu “ÎNCĂLZIRE LUPĂ” sintaxă, care specifică faptul că doriți să vă alăturați unei mese utilizând o conexiune de tip stânga. Apoi, specificați tabelul în care doriți să vă alăturați (înălțimi). UTILIZAREA (nume) sintaxa spune că coloana “Nume” pot fi găsite în ambele tabele și că aceasta ar trebui folosită ca o cheie pentru a se alătura tabelelor împreună.
Nu vă faceți griji dacă coloanele dvs. au nume diferite în fiecare tabel. Poți să folosești “PE” in loc de “UTILIZAREA”:
SELECTĂ vârstă, nume, înălțime DE LA PERSOANE LEFT JOIN heights ON (numea = numeb);
Instrucțiunea "on" indică în mod explicit coloanele pe care trebuie să tastați. Există multe tipuri de conexiuni și ar fi nevoie de mult timp pentru a intra în detalii pentru fiecare, deci iată un scurt rezumat al utilizărilor acestora:
- (INNER) - Returnează rândurile cu o potrivire în ambele tabele.
- REDUCEREA LOCALĂ (EXTERNĂ) - Returnează toate rândurile din tabelul stâng, cu orice potriviri din tabelul din dreapta. Dacă nu există potriviri, înregistrările tabelului stâng sunt încă returnate.
- DREAPTA (EXTERIOR) ALEGEȚI - Acesta este opusul unei îmbinări din stânga: toate rândurile de pe masa dreaptă sunt returnate, împreună cu toate potrivirile din tabelul stâng.
- FULL (EXTERIOR) ALEGEȚI - Returnează orice înregistrări cu o potrivire în oricare dintre tabele.
“INTERIOR” sau “EXTERIOR” sintaxa este opțională. Poate face lucrurile mai ușor de înțeles, dar nu trebuie să le specificați pentru marea majoritate a timpului.
5. Alias
Acum știți elementele de bază, să ne uităm la ele alias comanda. Aceasta este folosită pentru a redenumi temporar o tabelă - mai mult o poreclă decât orice altceva, deoarece acest nume nou există doar în interiorul tranzacției individuale pe care o executați. Iată cum îl folosiți:
SELECT A.aj de la persoane A;
Puteți folosi orice nume valabil care vă place, dar îmi place să folosesc literele alfabetului. Înainte de fiecare nume de coloană, aliasul este prefixat. Acest alias este atribuit mesei imediat după ce este declarat. Acesta este exact același lucru ca și cum ați proceda astfel:
SELECT people.age FROM people;
În loc să introduceți un nume de lungă masă, puteți scrie o scrisoare simplă și ușor de reținut - dar care este motivul? Dacă selectați din mai multe mese, este ușor să obțineți confuzie despre ce coloane aparțin tabelului. Dacă ambele tabele se întâmplă să aibă coloane cu același nume, interogarea bazei dvs. de date poate chiar să nu funcționeze fără a menționa explicit numele sau aliasul tabelului. Iată un exemplu cu două tabele:
SELECT staff.age, staff.name, customers.age, customers.name FROM personal, clienți;
Iată aceeași interogare cu pseudonime:
SELECT A.age, A.name, B.age, B.name FROM personalul A, clienții B;
Tabelul de personal este dat altui nume “A”, și tabelul clienților este dat un alias de “B”. Tabelele de aliniere contribuie într-adevăr la simplificarea înțelegerii codului dvs. și reduc cantitatea de tastare pe care trebuie să o faceți.
De asemenea, puteți redenumi o coloană cu un alias utilizând “LA FEL DE” comanda:
SELECT vârsta AS person_age FROM people;
Când se execută această interogare, coloana va fi apelată acum “personaj” in loc de “vârstă”.
6. Uniunea
Uniune este o mare poruncă. Acesta vă permite să adăugați rânduri unul la celălalt. Spre deosebire de îmbinările care adaugă coloanele potrivite, uniunea poate adăuga rânduri care nu au legătură, cu condiția ca aceștia să aibă același număr și același nume de coloane. Iată cum îl folosiți:
SELECT vârstă, nume de la clienți UNION SELECT vârstă, nume FROM personal;
Vă puteți gândi la uniune ca la o modalitate de a combina rezultatele a două întrebări. O uniune va returna rezultate numai în cazul în care există un rând unic între cele două interogări. Puteți utiliza funcția “UNION ALL” sintaxa pentru a returna toate datele, indiferent de duplicate:
SELECT vârstă, nume de la clienți UNION ALL SELECT vârstă, nume FROM personal;
Observați cum se modifică ordinea rândurilor? Uniunea operează în modul cel mai eficient, astfel încât datele returnate pot varia în ordine.
Un posibil caz de utilizare pentru uniune este un subtotal: ați putea uni o interogare a sumei totale pe o interogare a totalurilor individuale pentru un anumit scenariu.
7. Introduceți
Știți acum despre recuperarea datelor dintr-o bază de date, dar despre introducerea datelor? Aici este locul unde introduce comanda vine. Iată un exemplu:
INSCRIERE ÎN OAMENI (nume, vârstă) VALORI ("Joe", 102);
Trebuie să specificați numele tabelului (persoane) și coloanele pe care doriți să le utilizați (nume și vârstă). “VALORI” sintaxa 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ă în cazul inserțiilor și trebuie să vă asigurați că urmați orice constrângeri de tabelă necesare care sunt prezente.
8. Actualizare
După introducerea unor date, este normal să modificați anumite rânduri. Iată-l Actualizați comanda sintaxa:
UPDATE persoane nume SET = 'Joe', vârsta = 101;
Trebuie să specificați tabelul pe care doriți să îl modificați și apoi să utilizați “A STABILIT” sintaxa 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 folosi “UNDE” clauze la fel ca atunci când faci o selectare:
UPDATE persoane Nume SET = 'Joe', vârsta = 101 WHERE name = 'James';
Puteți chiar să specificați mai multe condiții folosind “ȘI” și “SAU”:
UPDATE people SET nume = 'Joe', vârsta = 101 WHERE (nume = 'James' și vârsta = 100) SAU nume = 'Ryan';
Observați cum sunt utilizate parantezele pentru a restrânge condițiile.
9. Upsert
Upsert este un cuvânt ciudat, dar este o comandă incredibil de utilă. Spuneți că aveți o constrângere pe masă și că ați specificat că vreți vreodată înregistrări cu nume unice - nu doriți să stocați, de exemplu, două rânduri cu același nume. Dacă ați încercat să introduceți mai multe valori ale lui "Joe", motorul de bază 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ă, va trebui să scrieți o mulțime de logică pentru a verifica mai întâi dacă există o înregistrare, introduceți dacă nu, în caz contrar extrageți cheia primară corectă și apoi actualizați.
Din păcate, noile componente sunt implementate diferit în motoare de baze de date diferite. PostgreSQL a câștigat recent această abilitate, în timp ce MySQL a avut-o de ceva timp. Iată sintaxa MySQL pentru referință:
INSCRIERE ÎN OAMENI (nume, vârstă) VALORI ("Joe", 101) PE DUPLICATE KEY UPDATE vârstă = 101;
Observați cum este în esență o actualizare și o instrucțiune insert, care poate fi rezumată ca “actualizați dacă nu a reușit inserarea.”
10. Ștergeți
Șterge este folosit pentru a elimina în întregime înregistrările - poate fi destul de dăunător dacă este abuzat! Sintaxa de bază este foarte ușor de utilizat:
DELETE de la oameni;
Ca majoritatea celorlalte comenzi, acest lucru va fi șters Tot! Trebuie să utilizați un loc unde să îl restricționați la un număr ușor mai mare de rânduri - în mod ideal unul:
DELETE FROM people unde numele = 'Joe';
Dacă dezvoltați un sistem, este deseori înțelept să îl implementați “ștergeți soft.” Nu executați niciodată comanda de ștergere, mai degrabă creați o coloană ștersă și apoi verificați dacă coloana din selecția dvs. - poate evita o foarte mare potențial de stânjenire dacă puteți recupera rapid și ușor înregistrările presupuse șterse. Acest lucru nu este însă un înlocuitor pentru copiile de rezervă adecvate.
11. Creați tabelul
creați tabelul comanda este folosită pentru a crea tabele. Este un altul foarte simplu:
CREATE TABLE people (nume TEXT, vârstă, INTEGER, KEY PRIMARY (nume));
Observați cum numele și constrângerile coloanelor se află în paranteze, iar coloanelor li se dă un tip de date corespunzător. Se specifică o cheie primară, așa cum este necesar în orice proiectare de bază de date bună.
12. Modificați tabelul
modificați tabelul comanda este utilizată pentru a modifica structura unei mese. Acest lucru este puțin limitat, deoarece baza de date nu vă va permite să modificați o tabelă dacă datele existente ar cauza un conflict - schimbând, de exemplu, un șir la un întreg. În aceste situații, reparați mai întâi datele, apoi modificați tabelul. Iată un exemplu:
ALTER TABLE persoane ADD înălțime întreg;
Acest exemplu adaugă o coloană numită “înălţime” de tip integer la tabelul de oameni. Nu există într-adevăr o limită pentru ceea ce puteți modifica.
13. Drop Tabel
Comanda finală este drop table. Gândiți-vă la acest lucru ca la ștergere, dar în loc să ștergeți o singură înregistrare, aceasta elimină fiecare înregistrare împreună cu tabelul! Iată cum îl folosiți:
DROP TABLE persoane;
Este o comandă destul de drastică și nu există niciun motiv pentru a fi 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 ziua de azi. Sper că ați învățat câteva trucuri utile! Ai putea învăța cum să faci un site Cum să faci un site web: Pentru începători Cum să faci un site web: Pentru începători Azi te voi îndruma prin procesul de a face un site complet de la zero. Nu vă faceți griji dacă acest lucru pare dificil. Te voi îndruma în fiecare pas al drumului. Citiți mai multe și apoi utilizați-vă abilitățile noi pentru a deveni dinamică - asigurați-vă că nu faceți aceste greșeli 9 Greșeli pe care nu ar trebui să le faceți când construiți o pagină Web Page 9 Greșeli pe care nu trebuie să le faceți atunci când construiți o pagină Web Următoarele Cheile de codare HTML sunt ușor de realizat, dar dacă le eliminați mai devreme decât mai târziu, pagina dvs. va arăta mai bine, va fi mai ușor de întreținut și va funcționa așa cum doriți. Citiți mai multe sau lăsați-o vulnerabilă la injecția SQL Ce este o injecție SQL? [Explicarea MakeUseOf] Ce este o injecție SQL? [MakeUseOf explică] Lumea securității pe Internet este afectată de porturi deschise, backdoors, găuri de securitate, troieni, viermi, vulnerabilități ale firewall-ului și o serie de alte probleme care ne țin pe fiecare în fiecare zi. Pentru utilizatorii privați, ... Read More. Dacă nu sunteți sigur că trebuie să învățați SQL, ați considerat un generator de site-uri statice 7 motive pentru a vă scufunda CMS și să ia în considerare un generator de site-ul static 7 motive pentru a vă șterge CMS și ia în considerare un generator de site-ul static De mulți ani, publicarea unui site web a fost dificil pentru mulți utilizatori. CMS, cum ar fi WordPress, au schimbat acest lucru, dar pot fi în continuare confuze. O altă alternativă este un generator de site-uri statice. Citeste mai mult ?
De ce să nu lăsați un comentariu de mai jos cu sfaturi și trucuri SQL preferate?
Credite de imagine: HYS_NP / Shutterstock
Explorați mai multe despre: Programare, SQL.