Comenzi SQL Cheat Sheet

Comenzi SQL Cheat Sheet

SQL este limbajul de interogare structurat. A fost creat special pentru a gestiona și accesa datele deținute în baze de date relaționale. Prima activitate comercială care a folosit SQL a fost Oracle, care are încă limbajul de interogare SQL * Plus ca bază a întregului său sistem relațional de gestionare a bazelor de date (RDMS).

Astăzi, MySQL, SQL Server, SAP și Sybase folosesc SQL pentru acces la baze de date. În acest ghid, vă vom oferi versiunea standard a comenzilor SQL, acordând o atenție deosebită implementării Oracle în SQL * Plus.

ALEGEA EDITORULUI: Vă recomandăm instrumentele de gestionare a infrastructurii SolarWinds pentru a monitoriza toate instrumentele dvs. Microsoft, inclusiv SQL Server. Aveți nevoie de o suită de utilități de monitorizare care să poată interacționa pentru a acoperi toate facilitățile care vă sprijină baza de date relațională.

Baze de date relaționale

SQL administrează baze de date relaționale. O bază de date relațională conține tabele care sunt separate pentru a reduce repetarea datelor. Procesul de decizie asupra grupărilor corespunzătoare de categorii de date se numește „normalizare.”În unele cazuri, cerințele de performanță pot dicta că tabelele funcționează mai bine dacă nu sunt normalizate complet. Acest proces se numește „denormalizare” și este o întâlnire rară.

Fiecare tabel are nevoie de o coloană care identifică în mod unic fiecare rând. Aceasta se numește „cheia principala.”Celelalte tabele care se pot alătura acestei entități trebuie să conțină o referință la cheia primară din fiecare înregistrare. Această referință se numește „cheie externă.” Tu a te alatura tabele împreună prin potrivirea cheii străine într-un tabel cu cheia primară în alta. Această acțiune este efectuată cu SQL. Diagrama de entitate-relație este o referință utilă atunci când decideți cum să vă structurați instrucțiunea SQL.

Pentru a accelera accesul, este normal să plasați un index pe fiecare cheie primară din baza de date. De asemenea, este posibil să stocați aderare frecvent utilizate pentru a crea tabele virtuale, care se numesc „vizualizari.“

Încă un obiect de bază de date este a trăgaci. Aceasta este o bucată de SQL care se lansează ori de câte ori o valoare este adăugată la o coloană sau este modificată. Un declanșator va actualiza valorile într-o coloană dintr-un alt tabel sau în alte coloane din același tabel. Acest lucru se întâmplă dacă o valoare este adăugată sau modificată în coloana pe care este plasat declanșatorul. De asemenea, poate restricționa valorile care pot fi introduse într-o coloană.

DQL, DDL, DCL și DML

SQL include patru subseturi de comandă. Acestea sunt Limbajul interogării datelor (DQL), Descrierea limbii (DDL), Limbajul de control al datelor (DCL), și Limbajul de manipulare a datelor (DML).

La majoritatea proiectelor, Administratorul bazei de date (DBA) este singurul membru al echipei care are privilegiile de utilizare DDL. Acest grup de comandă creează, schimbă și scade tabele, indexuri, declanșatoare și vizualizări.

DML este utilizat pentru a adăuga, modifica sau elimina înregistrările din tabelele din baza de date. Accesul la aceste funcții SQL este de obicei limitat la personalul de sprijin sau la membrii seniori, responsabili ai comunității de utilizatori.

DQL este folosit pentru a genera rapoarte din baza de date. Acest subset de comandă este folosit de programatori și poate fi pus la dispoziția utilizatorilor finali, astfel încât să poată efectua propriile întrebări.

Gestionarea privilegiilor utilizatorului este stocată în aceeași bază de date ca și datele. Cu toate acestea, accesul la aceste tabele este de obicei limitat la DBA. Gestionarea accesului utilizatorilor este implementată prin intermediul DCL.

Există o comandă SQL utilă care nu se încadrează în clasificările nici DQL, DDL, DCL sau DML. Aceasta este “descrie”Care este de obicei implementat ca DESC. Aceasta arată structura unui obiect din baza de date. În cazul unui tabel, acesta va afișa o listă de coloane și tipul de date și dimensiunea fiecăreia. Acesta va arăta SQL care a creat o vizualizare sau un declanșator și va arăta coloanele care sunt implicate într-un index dat.

Operatori relaționali

Teoria bazelor de date relaționale a fost definită de E. F. Codd în 1970. În definiția Codd se află o cerință a unui instrument de interogare care trebuie să implementeze opt operații relaționale esențiale. Acestea sunt:

  1. SELECTAȚI
  2. PROIECT
  3. A TE ALATURA
  4. PRODUS
  5. UNIUNE
  6. INTERSECT
  7. DIFERENȚĂ
  8. DIVIDE

Trebuie să stăpâniți fiecare dintre aceste operațiuni pentru a accesa eficient datele dintr-o bază de date relațională. Acestea sunt explicate mai jos.

SELECTAȚI

SELECT a fost numită inițial RESTRICT. Este capacitatea de a extrage o înregistrare sau un grup de înregistrări potrivite dintr-un tabel din baza de date. Pe lângă faptul că este o operație teoretică, SELECTAȚI este numele comenzii principale în orice implementare SQL. De fapt, toate preluările de date sunt executate cu un SELECT. Comanda este atât de puternică încât poate fi modificată în mai multe moduri. Majoritatea SQL pe care va trebui să înveți sunt „clauzele” dintr-o instrucțiune SELECT.

PROIECT

PROIECT este abilitatea de a izola o coloană (sau „atribut”) într-un tabel. Aceasta este întotdeauna implementată cu o declarație SELECT.

A TE ALATURA

JOIN face legătura între tabele pe un atribut comun. Utilizați cheia străină într-un tabel pentru a potrivi valorile cheii primare dintr-un alt tabel. Actul unifică efectiv două tabele temporar. Aceasta este implementată ca o clauză într-o declarație SELECT. O îmbinare între două tabele va lăsa automat înregistrările care nu apar în ambele tabele de asistență. Un „îmbinare exterioară”Va afișa înregistrări care nu au o potrivire în celălalt tabel, lăsând câmpurile care ar fi trebuit să fie furnizate de cealaltă tabelă rămase necompletate.

PRODUS

PRODUSUL este cunoscut și sub numele de „ori.”Aceasta este implementată ca o declarație SELECT care atrage date din două tabele, dar nu specifică unirea dintre ele. În viața reală, există foarte puține motive practice pentru care oricine ar putea efectua vreodată de două ori pe două mese. De obicei este un semn de avertizare că ai scris greșit o clauză JOIN. Rezultatul unui PRODUS este că fiecare înregistrare de calificare dintr-un tabel se potrivește cu fiecare înregistrare de calificare din celălalt tabel. Deci, dacă creați o instrucțiune SELECT din două tabele, fiecare având zece înregistrări, rezultatele vor fi în total 100 de înregistrări.

UNIUNE

UNION este un operator comun în teoria seturilor. Dacă aveți două seturi, uniunea combină toți membrii ambelor seturi. Duplicarea este eliminată din rezultate. În SQL, acest lucru este implementat de SAU Operator boolean.

INTERSECT

INTERSECT este celălalt operator principal al teoriei de seturi. Dacă aveți două seturi, intersecția descrie acei subiecți care sunt membri ai ambelor seturi. Orice subiect care este membru al unuia dintre cele două seturi este exclus de la rezultate. În SQL, acest lucru este implementat de ȘI Operator boolean.

DIFERENȚĂ

DIFERINȚA este cunoscută și sub numele de „minus”Și în notație este reprezentat de semnul minus („ – ”). Există mai multe moduri de a implementa o DIFERENȚĂ. Poate fi creat prin includerea unui boolean NU în criteriile de selecție și poate fi implementat și de către MINUS operator urmat de o solicitare.

DIVIDE

DIVIDE este o operație neobișnuită care, la fel ca PRODUCT, are foarte puține aplicații practice. Codd a considerat DIVIDE ca testul acid al oricărui sistem relațional și instrumentul său de interogare, astfel încât fiecare implementare SQL include această capacitate doar pentru a se califica pentru titlul „relațional”. În realitate, nu îl veți folosi niciodată. Implementarea unui DIVIDE necesită o serie de subîncărcări care să alimenteze un sistem MINUS în Oracle SQL * Plus și un an CU EXCEPTIA operator în unele alte implementări SQL, cum ar fi SQL Server și PostgreSQL.

Operatori booleeni

George Boole a fost un matematician britanic care a murit în 1864. El a inventat algebra booleană, care nu a avut nicio aplicație practică până când la sfârșitul secolului XX au apărut domeniile informaticii și a bazelor de date relaționale. Algebra booleană este esențială pentru operațiunile SQL – nu puteți scrie decât cea mai de bază interogare SQL fără a utiliza logica booleană. Logica booleană stă la baza tuturor motoarelor de căutare. Operatorii cheie boolezi din SQL sunt:

  • ȘI
  • SAU
  • NU

Un alt britanic victorian foarte interesant despre care trebuie să știți este Augustus de Morgan. A venit cu o observație asupra transformării în teoria booleană a seturilor, de care fiecare programator SQL trebuie să fie conștient. Aceasta este faptul că un NU poate modifica modul în care funcționează un AND și un OR. Versiunea scurtă este că trebuie să fii atent cum folosești paranteze în declarațiile tale pentru a evita consecințele nedorite. Deci „și” și „sau” ar trebui să fie, de asemenea, considerate a fi operatori booleeni importanți în SQL.

ȘI

ȘI pune în aplicare INTERSECT în teoria seturilor. Dacă doriți să extrageți înregistrări dintr-o bază de date care se potrivesc doar cu două cerințe și nu doar cu unul dintre criteriile compuse, atunci trebuie să utilizați un AND. De exemplu, puteți derula o afacere de semințe și baza de date conține un tabel care stochează toate semințele cu atributele lor. Un client apelează și dorește doar begoniile galbene. Deci, ai căuta în baza de date specie = „begonia” ȘI culoare = „galben” pentru a obține catalogul de semințe potrivit.

SAU

SAU vă oferă tuturor membrilor a două seturi – este UNIUNEA în teoria seturilor. Deci, în baza de date a semințelor dvs., dacă ați efectuat o întrebare: specie = „begonia” SAU culoare = „galben”, veți obține rezultate care includ trandafiri galbeni, begonia galbenă, begonii roz și narcise galbene. În acest exemplu, begoniile galbene se califică de două ori. În teoria relațională, o singură înregistrare ar trebui returnată. Din fericire, SQL include calificativul DISTINCT, deci intrând SELECTĂ DISTINȚĂ * DIN FLORI WHERE specie = „begonia” SAU culoare = „galben”, acel record galben de begonie ar apărea o singură dată.

NU

NU este ușor de înțeles. Acesta exclude rezultatele pe care le-ar produce următoarea afirmație: ȘI NU, SAU NU. În practică, nu veți folosi aproape niciodată „SAU NU” într-o interogare. Dacă clientul tău de semințe dorea orice altă culoare de begonie decât galben, ai folosi specie = „begonia” ȘI NU culoare = „galben” pentru a selecta produsele de oferit.

Console

Conform Legii lui De Morgan:

„Negația unei disjuncții este conjuncția negațiilor; iar negația unei conjuncții este disjuncția negațiilor “.

În limba engleză simplă, utilizați paranteze cu atenție în instrucțiunea SQL când includeți, de asemenea, un NOT pentru a împiedica transformarea AND-urilor dvs. în OR și vice versa. Condițiile de bracketing pot reduce, de asemenea, criteriile de selecție. De exemplu, NU (specie = „begonia” ȘI culoare = „galben”) este la fel ca NU specii = „begonia” SAU NU culoare = „galben”.

Extragerea înregistrărilor

Implementări SQL diferite folosesc sintaxa diferită, dar în acest ghid, vom urma SQL * Plus al Oracle. Structura de bază a unei selecții de date SQL este:

SELECTAȚI
DIN

UNDE

Aceasta vă va oferi o listă de valori dintr-o coloană dintr-un tabel. Acesta este PROIECT operație relațională definită de Codd.

Puteți adăuga coloane la SELECT sau puteți folosi operatorul cu caracter comod („*”) Pentru a obține toate coloanele din tabel:

SELECTAȚI *
DIN

UNDE

Aceasta este Codd SELECTAȚI operație relațională. Fara UNDE clauză, vei primi fiecare înregistrare din tabel.

Mai multe coloane sunt separate prin virgule („,„):

SELECT column1, column2, column7
DIN

UNDE

UNDE clauza selectează înregistrări specifice. Acesta este cel mai important scop al operatorilor booleeni:

SELECT seed_num, seed_desc
DIN semințe
UNDE specii = „begonia” ȘI culoare = „galben”

În aceste exemple veți observa că nu puneți ghilimele în jurul numelor de coloane, ci puneți ghilimele în jurul valorilor coloanei. Dacă uitați să puneți ghilimele în jurul valorilor, DBMS se va aștepta ca cuvintele să fie nume de coloană. Deci, în interogarea de mai sus, fără ghilimele, ați primi o eroare care vă spune că nu există begonia și coloane galbene în tabel.

Mese de alăturare

Lucrarea cheie în interogările SQL constă în unirea tabelelor împreună. Există multe trucuri pe care le puteți efectua cu subîncheieri, dar dacă primiți greșeala, interogarea dvs. va întoarce întotdeauna rezultate incorecte.

Cel mai bun ghid pentru o aderare este Diagrama relației de entitate. Tot ce aveți nevoie pentru a crea o alăturare include mai multe tabele din DIN clauza SELECT și asigurați-vă că specificați coloanele de legătură din UNDE clauză. Rețineți că unele tabele ar putea utiliza aceleași nume de coloană. Pentru a evita confuzia, este mai bine să oferiți fiecărei tabele într-o unire a pseudonim pentru a putea identifica sursa coloanelor la care faceți referire în instrucțiunea SELECT:

SELECT a.seed_num, a.seed_desc, b.supplier_name
DIN semințele a, furnizori b
UNDE a.species = „begonia” ȘI a.color = „galben”
AND b.supplier_ID = a.supplier_ID

În exemplul de mai sus, supplier_ID este cheia principală din tabelul furnizorilor, iar un câmp cu același nume este cheia străină din tabelul semințelor care leagă înregistrarea corespunzătoare din tabelul furnizorilor..

Deși este posibil din punct de vedere tehnic să folosiți un OR pentru o aderare, este mai obișnuit să folosiți un AND. Utilizați OR-urile numai pentru criterii de selecție și nu pentru crearea unei uniri.

subinterogarilor

Puteți utiliza un SELECTAȚI declarație ca sursă de date pentru principal SELECTAȚI și vă puteți alătura și mai multe SELECTAȚI declarații împreună cu operatorii, cum ar fi MINUS. Aceste cazuri de interogări suplimentare care servesc o instrucțiune principală SELECT sunt numite „subinterogările.”La crearea unei subcenzii, cuvântul cheie ÎN poate fi foarte util.

De exemplu, dacă doriți să obțineți begoniile galbene de la furnizorii din UE, puteți crea o listă de valori cu ÎN precum:

SELECT a.seed_num, a.seed_desc, b.supplier_name
DIN semințele a, furnizori b
UNDE a.species = „begonia” ȘI a.color = „galben”
AND b.supplier_ID = a.supplier_ID
ȘI b.supplier_country IN („Marea Britanie”, „Franța”, „Germania”…)

Această listă a tuturor țărilor din UE s-ar întinde până la 28 de valori și ar trebui să le tastați pe toate – „…” în exemplul este doar pentru scurtitate. În acest exemplu, ar trebui să revizuiți toate întrebările dvs. și să modificați acea listă de valori ori de câte ori o țară a intrat sau a ieșit din UE. Este mai eficient să creăm un tabel al țărilor UE și să ne referim la asta. Apoi, trebuie doar să adăugați sau să ștergeți înregistrările într-un tabel, pe măsură ce compoziția UE se schimbă.

În acest scenariu, veți crea un tabel numit EU_countries cu un câmp country_ID ca cheie principală și o coloană country name. Apoi, puteți crea o solicitare pentru a crea acea listă de țări UE:

SELECT a.seed_num, a.seed_desc, b.supplier_name
DIN semințele a, furnizori b
UNDE a.species = „begonia” ȘI a.color = „galben”
AND b.supplier_ID = a.supplier_ID
AND b.supplier_country IN (SELECT nume de țară din EU_countries)

Este posibil să se creeze o serie de interogări cuibărite și unele funcții SQL necesită cel puțin două instrucțiuni SELECT. De exemplu, dacă doriți să obțineți furnizori de semințe din afara UE, puteți utiliza un MINUS:

SELECT a.seed_num, a.seed_desc, b.supplier_name
DIN semințele a, furnizori b
UNDE a.species = „begonia” ȘI a.color = „galben”
AND b.supplier_ID = a.supplier_ID
MINUS
SELECT c.seed_num, c.seed_desc, d.supplier_name
FROM seminte c, furnizori d, tarile EU_ e
WHERE d.supplier_country_ID = e.country_ID
AND b.supplier_ID = a.supplier_ID

În exemplul de mai sus, a doua interogare va aduce înapoi mult mai multe înregistrări decât prima. Cu toate acestea, niciunul dintre rezultatele acestei interogări nu va apărea în ieșire. Orice rezultate din interogarea principală care se potrivesc cu rezultatele celei de-a doua interogări vor fi eliminate din lista de ieșire.

A SE GRUPA CU

Puteți obține SQL pentru agregarea datelor pentru dvs. în cursul procesării unei interogări. A SE GRUPA CU clauza vă permite să calculați statistici pe grupuri de înregistrări. De exemplu:

SELECTĂ flori de specii, numără (1) cazuri
DIN semințe
GRUPA PE specii

În acest exemplu puteți vedea o funcție, NUMARA. Acest lucru necesită o coloană ca parametru, dar puteți să îi dați un simbol în schimb, în ​​acest caz, 1.  Acest exemplu arată, de asemenea, că puteți da nume de coloană alias. Nu există o comă între specie și floare în prima linie SELECTAȚI. DBMS va interpreta acest al doilea cuvânt drept numele coloanei care va fi afișat în ieșire. În unele implementări SQL, acel alias trebuie să fie între ghilimele, iar în altele, trebuie indicat prin cuvântul cheie LA FEL DE:

SELECTEAZĂ specii AS „floare”, numără (1) AS „instanțe”
DIN semințe
GRUPA PE specii

Introducerea unui nume semnificativ pe o coloană este deosebit de importantă dacă utilizați funcții în interogarea dvs..

Interogarea de mai sus vă va oferi o listă distinctă de nume de specii din tabelul semințelor și va oferi un număr de înregistrări din tabel care au fiecare valoare.

COMANDA PRIN

Puteți specifica secvența de ieșire a rezultatelor cu un COMANDA PRIN clauză. Aceasta va afișa valorile în ordine crescătoare în mod implicit, dar puteți, de asemenea, să specificați afișarea înregistrărilor în ordine descendentă.

SELECTĂ DISTINȚARE specii
DIN semințe
COMANDĂ PE specii DESC

Dacă aveți mai multe coloane în ieșire, puteți nominaliza oricare dintre acestea pentru a fi câmpul de comandă. În majoritatea implementărilor SQL, nu este necesar să introduceți numele coloanei în clauza ORDER BY, ci doar numărul poziției coloanei, cum ar fi, COMANDA CU 2 când doriți ca a doua coloană din ieșire să dicteze ordinea afișării.

În acest exemplu, vedeți DISTINCT opțiune pe a SELECTAȚI, care are același efect ca și A SE GRUPA CU. Cu toate acestea, dacă adăugați funcții de agregare la un SELECT, va trebui să utilizați A SE GRUPA CU in loc de DISTINCT.

Funcții SQL

Ați văzut deja funcția COUNT. Există multe alte funcții disponibile în toate implementările SQL. Acestea nu sunt, strict vorbind SQL, ci utilități suplimentare adăugate de creatorul versiunii SQL. Funcțiile statistice, cum ar fi media, suma, maximul și minul sunt comune tuturor aromelor SQL.

Mecanisme de control al fluxului, care ca DACĂs și IN TIMP CE bucle nu există în SQL. Cu toate acestea, selecția condiționată poate fi implementată printr-o varietate de funcții.

Foaia de înșelăciune SQL Comparitech

Există o listă lungă de opțiuni pe care le puteți pune pe o declarație SELECT. Acest scurt ghid a acoperit doar structura de bază a instrucțiunii SELECT, care este principalul instrument al SQL Limbajul interogării datelor. Puteți vedea o listă cuprinzătoare în Comparitech MySQL Cheat Sheet (PDF). Acea foaie include, de asemenea, comenzile standard utilizate pentru limbajul de descriere a datelor SQL, limbajul de control al datelor și limbajul de manipulare a datelor.

About the author

Comments

  1. le. DCL este utilizat pentru a acorda sau a revoca accesul la baza de date și la tabelele sale. Operatori relaționali SQL include o serie de operatori relaționali care permit interogarea datelor din baza de date. Acești operatori includ SELECT, PROIECT, A TE ALATURA, PRODUS, UNIUNE, INTERSECT, DIFERENȚĂ și DIVIDE. Acești operatori permit utilizatorilor să extragă informații specifice din baza de date. Operatori booleeni SQL include operatori booleeni, cum ar fi ȘI, SAU și NU, care permit utilizatorilor să creeze interogări complexe. Acești operatori permit utilizatorilor să combine mai multe condiții pentru a obține informații specifice din baza de date. Extragerea înregistrărilor SQL permite utilizatorilor să extragă informații specifice din baza de date. Acest proces implică utilizarea operatorilor relaționali și booleeni pentru a crea interogări complexe. Mese de alăturare SQL permite utilizatorilor să alăture mai multe tabele pentru a obține informații specifice din baza de date. Acest proces implică utilizarea cheilor primare și externe pentru a conecta tabelele. Subinterogările SQL permite utilizatorilor să creeze interogări complexe care implică mai multe niveluri de interogare. Aceste interogări pot fi utilizate pentru a extrage informații specifice din baza de date. COMANDA PRIN SQL permite utilizatorilor să grupeze informațiile din baza de date în funcție de anumite criterii. Această comandă este utilă pentru a obține informații agregate din baza de date. Funcții SQL include o serie de funcții care permit utilizatorilor să efectueze operații matematice și logice asupra datelor din baza de date. Aceste funcții includ SUM, AVG, COUNT, MAX și MIN. În concluzie, SQL este un limbaj de interogare structurat care este utilizat pentru a gestiona și accesa datele din bazele de date relaționale. Acest limbaj include o serie de comenzi și operatori care permit utilizatorilor să extragă informații specifice din baza de date. Pentru a gestiona bazele de date relaționale, este important să aveți o înțelegere solidă a SQL și a modului în care acesta poate fi utilizat pentru a extrage informații utile din baza de date.

Comments are closed.