Cum se scrie interogări SQL - exemple detaliate. Interogări simple SQL - scurt ajutor și exemple

Fiecare dintre noi întâlnește și folosește în mod regulat diverse baze de date. Când selectăm o adresă de e-mail, lucrăm cu o bază de date. Bazele de date sunt folosite de serviciile de căutare, bănci pentru a stoca datele clienților etc.

Dar, în ciuda utilizării constante a bazelor de date, chiar și pentru mulți dezvoltatori de sisteme software există încă multe puncte moarte din cauza interpretărilor diferite ale acelorași termeni. Vom oferi o scurtă definiție a termenilor de bază ale bazei de date înainte de a acoperi limbajul SQL. Asa de.

Bază de date - un fișier sau o colecție de fișiere pentru stocarea structurilor ordonate de date și a relațiilor lor. Foarte des, un sistem de management este numit o bază de date. O bază de date este doar o stocare de informații într-un format specific și poate funcționa cu diferite SGBD.

Masa - Să ne imaginăm un folder în care sunt stocate documente, grupate după o anumită caracteristică, de exemplu, o listă de comenzi pentru ultima lună. Acesta este un tabel dintr-un computer Un tabel separat are propriul nume unic.

Tip de date - tipul de informații care pot fi stocate într-o coloană sau un rând separat. Acestea pot fi numere sau text de un anumit format.

Coloană și rând- Cu toții am lucrat cu foi de calcul, care au și rânduri și coloane. Orice bază de date relațională funcționează cu tabele într-un mod similar. Rândurile sunt uneori numite înregistrări.

Cheia principala- Fiecare rând al unui tabel poate avea una sau mai multe coloane pentru a-l identifica în mod unic. Fără o cheie primară, este foarte dificil să actualizați, să modificați și să ștergeți rândurile relevante.

Ce este SQL?

SQL(Engleză - limbaj de interogare structurat) a fost dezvoltat doar pentru lucrul cu baze de date și este în prezent standardul pentru toate SGBD-urile populare. Sintaxa limbajului constă dintr-un număr mic de operatori și este ușor de învățat. Dar, în ciuda simplității sale aparente, permite crearea de interogări sql pentru operațiuni complexe cu o bază de date de orice dimensiune.

Din 1992, a existat un standard general acceptat numit ANSI SQL. Definește sintaxa și funcțiile de bază ale operatorilor și este susținut de toți liderii de piață DBMS, cum ar fi ORACLE. Este imposibil să luăm în considerare toate capabilitățile limbajului într-un articol scurt, așa că vom lua în considerare pe scurt doar interogările SQL de bază. Exemplele arată clar simplitatea și capacitățile limbajului:

  • crearea de baze de date și tabele;
  • eșantionarea datelor;
  • adăugarea înregistrărilor;
  • modificarea și ștergerea informațiilor.

Tipuri de date SQL

Toate coloanele dintr-un tabel de bază de date stochează același tip de date. Tipurile de date din SQL sunt aceleași ca și în alte limbaje de programare.

Cream tabele si baze de date

Există două moduri de a crea baze de date noi, tabele și alte interogări în SQL:

  • Instrucțiuni SQL prin consola DBMS
  • Utilizarea instrumentelor de administrare interactive incluse cu serverul de baze de date.

O nouă bază de date este creată de către operator CREAȚI BAZĂ DE DATE<наименование базы данных>; . După cum puteți vedea, sintaxa este simplă și concisă.

Creăm tabele în baza de date folosind instrucțiunea CREATE TABLE cu următorii parametri:

  • numele tabelului
  • numele coloanelor și tipurile de date

De exemplu, să creăm un tabel de mărfuri cu următoarele coloane:

Creați un tabel:

CREATE TABLE Marfa

(commodity_id CHAR(15) NOT NULL,

vendor_id CHAR(15) NOT NULL,

nume_marfă CHAR(254) NULL,

preț_marfă DECIMAL(8,2) NULL,

commodity_desc VARCHAR(1000) NULL);

Tabelul este format din cinci coloane. După numele vine tipul de date, coloanele sunt separate prin virgule. Valoarea coloanei poate accepta valori goale (NULL) sau trebuie completată (NOT NULL), iar aceasta este determinată în momentul creării tabelului.

Preluarea datelor dintr-un tabel

Operatorul de preluare a datelor este cea mai frecvent utilizată interogare SQL. Pentru a obține informații, trebuie să indicăm ce dorim să alegem dintr-un astfel de tabel. Mai întâi un exemplu simplu:

SELECTAȚI nume_marfă FROM Mărfuri

După instrucțiunea SELECT specificăm numele coloanei pentru a obține informații, iar FROM definește tabelul.

Rezultatul interogării vor fi toate rândurile tabelului cu valori Commodity_name în ordinea în care au fost introduse în baza de date, adică. fără nicio sortare. O clauză ORDER BY suplimentară este folosită pentru a ordona rezultatul.

Pentru a interoga mai multe câmpuri, enumerați-le separate prin virgule, ca în exemplul următor:

SELECTAȚI ID-ul mărfii, numele_marfurilor, prețul_marfei FROM Mărfuri

Este posibil să obțineți valoarea tuturor coloanelor dintr-un rând ca rezultat al interogării. Pentru a face acest lucru, utilizați semnul „*”:

SELECTAȚI * DIN MARFĂ

  • În plus, SELECT acceptă:
  • Sortarea datelor (operatorul ORDER BY)
  • Selectare in functie de conditii (UNDE)
  • Termen de grupare (GROUP BY)

Adăugați o linie

Pentru a adăuga un rând la un tabel, se folosesc interogări SQL cu operatorul INSERT. Adăugarea se poate face în trei moduri:

  • adăugați o nouă linie întreagă;
  • parte dintr-un șir;
  • rezultatele interogării.

Pentru a adăuga un rând complet, trebuie să specificați numele tabelului și valorile coloanelor (câmpurilor) noului rând. Iată un exemplu:

INSERT INTO Commodity VALUES ("106", "50", "Coca-Cola", "1,68", "Fără Alcogol ,)

Exemplul adaugă un produs nou la tabel. Valorile sunt listate după VALUES pentru fiecare coloană. Dacă nu există o valoare corespunzătoare pentru coloană, atunci trebuie specificat NULL. Coloanele sunt populate cu valori în ordinea specificată la crearea tabelului.

Dacă adăugați doar o parte dintr-un rând, trebuie să specificați în mod explicit numele coloanelor, ca în exemplu:

INSERT INTO Commodity (commodity_id, vendor_id, commodity_name)

VALUES(„106”, ‘50”, „Coca-Cola”,)

Am introdus doar identificatorii produsului, furnizorul și numele acestuia și am lăsat câmpurile rămase necompletate.

Adăugarea rezultatelor interogării

INSERT este folosit în primul rând pentru a adăuga rânduri, dar poate fi folosit și pentru a adăuga rezultatele unei instrucțiuni SELECT.

Schimbarea datelor

Pentru a modifica informațiile din câmpurile unui tabel de bază de date, trebuie să utilizați instrucțiunea UPDATE. Operatorul poate fi utilizat în două moduri:

  • Toate rândurile din tabel sunt actualizate.
  • Doar pentru o anumită linie.

UPDATE constă din trei elemente principale:

  • tabel în care trebuie făcute modificări;
  • numele câmpurilor și noile lor valori;
  • condițiile de selectare a rândurilor de schimbat.

Să ne uităm la un exemplu. Să presupunem că prețul unui produs cu ID=106 s-a modificat, așa că această linie trebuie actualizată. Scriem următorul operator:

UPDATE Mărfuri SET pretul_marfă = "3.2" WHERE id_marfă = "106"

Am specificat denumirea tabelului, în cazul nostru Marfă, unde se va efectua actualizarea, apoi după SET - noua valoare a coloanei și am găsit înregistrarea dorită prin specificarea valorii ID solicitate în WHERE.

Pentru a schimba mai multe coloane, instrucțiunea SET este urmată de mai multe perechi coloană-valoare separate prin virgule. Să ne uităm la un exemplu în care numele și prețul unui produs sunt actualizate:

UPDATE Commodity SET commodity_name=’Fanta’, commodity_price = "3.2" WHERE commodity_id = "106"

Pentru a elimina informații dintr-o coloană, îi puteți atribui valoarea NULL dacă structura tabelului o permite. Trebuie amintit că NULL este tocmai valoarea „nu” și nu zero sub formă de text sau număr. Să eliminăm descrierea produsului:

UPDATE Commodity SET commodity_desc = NULL WHERE commodity_id = "106"

Eliminarea rândurilor

Interogările SQL pentru ștergerea rândurilor dintr-un tabel sunt executate folosind instrucțiunea DELETE. Există două cazuri de utilizare:

  • Anumite rânduri din tabel sunt șterse;
  • Toate rândurile din tabel sunt șterse.

Un exemplu de ștergere a unui rând dintr-un tabel:

DELETE FROM Commodity WHERE commodity_id = „106”

După DELETE FROM indicăm numele tabelului în care vor fi șterse rândurile. Clauza WHERE conține condiția prin care rândurile vor fi selectate pentru ștergere. În exemplu, ștergem linia de produse cu ID=106. Specificarea UNDE este foarte importantă deoarece omiterea acestei declarații va șterge toate rândurile din tabel. Acest lucru este valabil și pentru modificarea valorii câmpurilor.

Instrucțiunea DELETE nu specifică numele coloanelor sau metacaracterele. Șterge complet rândurile, dar nu poate șterge o singură coloană.

Utilizarea SQL în Microsoft Access

Utilizat în mod obișnuit în mod interactiv pentru a crea tabele, baze de date, pentru a gestiona, modifica, analiza date dintr-o bază de date și pentru a implementa interogări SQL Access printr-un designer de interogări interactiv convenabil (Query Designer), cu ajutorul căruia puteți construi și executa imediat instrucțiuni SQL de orice complexitate.

De asemenea, este acceptat modul de acces la server, în care Access DBMS poate fi folosit ca generator de interogări SQL către orice sursă de date ODBC. Această caracteristică permite aplicațiilor Access să interacționeze cu orice format.

Extensii SQL

Deoarece interogările SQL nu au toate capabilitățile limbajelor de programare procedurale, cum ar fi bucle, ramificații etc., producătorii de SGBD dezvoltă propria versiune de SQL cu capabilități avansate. În primul rând, acesta este suport pentru procedurile stocate și operatorii standard ai limbajelor procedurale.

Cele mai comune dialecte ale limbii:

  • Baza de date Oracle - PL/SQL
  • Interbase, Firebird - PSQL
  • Microsoft SQL Server - Transact-SQL
  • PostgreSQL - PL/pgSQL.

SQL pe Internet

SGBD-ul MySQL este distribuit sub licența publică generală GNU gratuită. Există o licență comercială cu capacitatea de a dezvolta module personalizate. Ca componentă, este inclusă în cele mai populare ansambluri de servere de Internet, precum XAMPP, WAMP și LAMP, și este cel mai popular DBMS pentru dezvoltarea aplicațiilor pe Internet.

A fost dezvoltat de Sun Microsystems și este susținut în prezent de Oracle Corporation. Sunt acceptate baze de date de până la 64 de terabytes, standardul de sintaxă SQL:2003, replicarea bazelor de date și serviciile cloud.

Fiecare dezvoltator web trebuie să cunoască SQL pentru a scrie interogări de baze de date. Și, deși phpMyAdmin nu a fost anulat, este adesea necesar să vă murdărești mâinile pentru a scrie SQL de nivel scăzut.

De aceea am pregătit un scurt tur al elementelor de bază ale SQL. Să începem!

1. Creați un tabel

Instrucțiunea CREATE TABLE este folosită pentru a crea tabele. Argumentele trebuie să fie numele coloanelor, precum și tipurile de date ale acestora.

Să creăm un tabel simplu după nume lună. Este format din 3 coloane:

  • id– Numărul lunii din anul calendaristic (întreg).
  • Nume– Numele lunii (șir, maximum 10 caractere).
  • zile– Numărul de zile din această lună (întreg).

Iată cum ar arăta interogarea SQL corespunzătoare:

CREATE TABLE luni (id int, nume varchar(10), zile int);

De asemenea, la crearea tabelelor, este recomandabil să adăugați o cheie primară pentru una dintre coloane. Acest lucru va păstra înregistrările unice și va accelera cererile de preluare. În cazul nostru, să fie numele lunii unic (coloana Nume)

CREATE TABLE luni (id int, name varchar(10), days int, PRIMARY KEY (nume));

data si ora
Tip de dateDescriere
DATAValori date
DATETIMEValori date și ore exacte la minut
TIMPValori de timp

2. Inserarea rândurilor

Acum să ne completăm tabelul luni Informatii utile. Adăugarea înregistrărilor la un tabel se face folosind instrucțiunea INSERT. Există două moduri de a scrie această instrucțiune.

Prima metodă nu este de a specifica numele coloanelor în care vor fi inserate datele, ci de a specifica doar valorile.

Această metodă de înregistrare este simplă, dar nesigură, deoarece nu există nicio garanție că, pe măsură ce proiectul se extinde și tabelul este editat, coloanele vor fi în aceeași ordine ca înainte. O modalitate sigură (și în același timp mai greoaie) de a scrie o instrucțiune INSERT necesită specificarea atât a valorilor, cât și a ordinii coloanelor:

Iată prima valoare din listă VALORI se potrivește cu primul nume de coloană specificat etc.

3. Extragerea datelor din tabele

Instrucțiunea SELECT este cel mai bun prieten al nostru atunci când dorim să extragem date dintr-o bază de date. Este folosit foarte des, așa că acordați o atenție deosebită acestei secțiuni.

Cea mai simplă utilizare a instrucțiunii SELECT este o interogare care returnează toate coloanele și rândurile dintr-un tabel (de exemplu, tabelele după nume personaje):

SELECTAȚI * DIN „personaje”

Simbolul asterisc (*) înseamnă că dorim să obținem date din toate coloanele. Deoarece bazele de date SQL constau de obicei din mai mult de un tabel, este necesar să specificați cuvântul cheie FROM, urmat de numele tabelului, separat de un spațiu.

Uneori nu dorim să obținem date de la toate coloanele dintr-un tabel. Pentru a face acest lucru, în loc de asterisc (*), trebuie să notăm numele coloanelor dorite, separate prin virgule.

SELECT ID, numele FROM luna

În plus, în multe cazuri dorim ca rezultatele rezultate să fie sortate într-o anumită ordine. În SQL facem acest lucru folosind ORDER BY. Poate accepta un modificator opțional - sortarea ASC (implicit) în ordine crescătoare sau DESC, sortarea în ordine descrescătoare:

SELECT ID, nume FROM luna ORDEREA DUPĂ nume DESC

Când utilizați ORDER BY, asigurați-vă că este ultimul în instrucțiunea SELECT. În caz contrar, va fi afișat un mesaj de eroare.

4. Filtrarea datelor

Ați învățat cum să selectați anumite coloane dintr-o bază de date folosind o interogare SQL, dar ce se întâmplă dacă trebuie să recuperăm și anumite rânduri? Clauza WHERE vine în ajutor aici, permițându-ne să filtram datele în funcție de condiție.

În această interogare, selectăm doar acele luni din tabel lună, în care există mai mult de 30 de zile folosind operatorul mai mare decât (>).

SELECT ID, nume FROM luna WHERE zile > 30

5. Filtrare avansată a datelor. operatori AND și SAU

Anterior, am folosit filtrarea datelor folosind un singur criteriu. Pentru o filtrare mai complexă a datelor, puteți utiliza operatorii AND și SAU și operatorii de comparație (=,<,>,<=,>=,<>).

Aici avem un tabel care conține cele mai bine vândute patru albume din toate timpurile. Să le alegem pe cele care sunt clasificate ca rock și s-au vândut în mai puțin de 50 de milioane de exemplare. Acest lucru se poate face cu ușurință prin plasarea unui operator AND între aceste două condiții.


SELECT * FROM albume WHERE gen = „rock” AND sales_in_millions<= 50 ORDER BY released

6. În/Între/Like

WHERE acceptă, de asemenea, mai multe comenzi speciale, permițându-vă să verificați rapid interogările cele mai frecvent utilizate. Aici sunt ei:

  • IN – servește pentru a indica o serie de condiții, dintre care oricare poate fi îndeplinită
  • BETWEEN – verifică dacă o valoare se află în intervalul specificat
  • LIKE – caută modele specifice

De exemplu, dacă vrem să selectăm albume cu popȘi suflet muzica, putem folosi IN("value1","value2") .

SELECTAȚI * DIN albumele WHERE genre IN ("pop","soul");

Dacă vrem să obținem toate albumele lansate între 1975 și 1985, trebuie să scriem:

SELECTAȚI * DIN albumele WHERE lansate ÎNTRE 1975 ȘI 1985;

7. Funcții

SQL este plin de funcții care fac tot felul de lucruri utile. Iată câteva dintre cele mai frecvent utilizate:

  • COUNT() – returnează numărul de rânduri
  • SUM() - returnează suma totală a unei coloane numerice
  • AVG() - returnează media unui set de valori
  • MIN() / MAX() – Obține valoarea minimă/maximă dintr-o coloană

Pentru a obține cel mai recent an în tabelul nostru, trebuie să scriem următoarea interogare SQL:

SELECT MAX (lansat) FROM albume;

8. Subinterogări

În paragraful anterior, am învățat cum să facem calcule simple cu date. Dacă vrem să folosim rezultatul din aceste calcule, nu ne putem lipsi de interogări imbricate. Să presupunem că vrem să ieșim artist, albumȘi anul lansării pentru cel mai vechi album din tabel.

Știm cum să obținem aceste coloane specifice:

SELECT artist, album, lansat DIN albume;

De asemenea, știm cum să obținem cel mai devreme an:

SELECT MIN (lansat) FROM album;

Tot ce este nevoie acum este să combinați cele două interogări folosind WHERE:

SELECT artist,album,released FROM albums WHERE lansat = (SELECT MIN(released) FROM albums);

9. Îmbinarea meselor

În bazele de date mai complexe, există mai multe tabele legate între ele. De exemplu, mai jos sunt două tabele despre jocuri video ( jocuri video) și dezvoltatori de jocuri video ( game_developers).


In masa jocuri video există o coloană pentru dezvoltatori ( developer_id), dar conține un număr întreg, nu numele dezvoltatorului. Acest număr reprezintă identificatorul ( id) a dezvoltatorului corespunzător din tabelul dezvoltatorilor de jocuri ( game_developers), legând logic două liste, permițându-ne să folosim informațiile stocate în ambele în același timp.

Dacă vrem să creăm o interogare care să returneze tot ce trebuie să știm despre jocuri, putem folosi un INNER JOIN pentru a lega coloanele din ambele tabele.

SELECT video_games.name, video_games.genre, game_developers.name, game_developers.country FROM video_games INNER JOIN game_developers ON video_games.developer_id = game_developers.id;

Acesta este cel mai simplu și mai comun tip JOIN. Există mai multe alte opțiuni, dar acestea se aplică cazurilor mai puțin frecvente.

10. Aliasuri

Dacă te uiți la exemplul anterior, vei observa că există două coloane numite Nume. Acest lucru este confuz, așa că să setăm un alias la una dintre coloanele care se repetă, astfel Nume de la masă game_developers va fi chemat dezvoltator.

De asemenea, putem scurta interogarea prin aliasarea numelor tabelelor: jocuri video Hai sa sunăm jocuri, game_developers - dezvoltatori:

SELECT games.name, games.genre, devs.name AS dezvoltator, devs.country FROM video_games AS jocuri INNER JOIN game_developers AS devs ON games.developer_id = devs.id;

11. Actualizarea datelor

Adesea trebuie să schimbăm datele pe anumite rânduri. În SQL, acest lucru se face folosind instrucțiunea UPDATE. Declarația UPDATE constă din:

  • Tabelul în care se află valoarea de înlocuire;
  • Numele coloanelor și noile lor valori;
  • Rândurile selectate folosind WHERE pe care dorim să le actualizăm. Dacă acest lucru nu se face, toate rândurile din tabel se vor schimba.

Mai jos este tabelul Seriale TV cu serialele TV și ratingurile acestora. Cu toate acestea, o mică eroare s-a strecurat în tabel: deși seria Game of Thronesși este descrisă ca o comedie, chiar nu este. Să reparăm asta!

Date de tabel tv_series UPDATE tv_series SET gen = "drama" WHERE id = 2;

12. Ștergerea datelor

Ștergerea unui rând de tabel folosind SQL este un proces foarte simplu. Tot ce trebuie să faceți este să selectați tabelul și rândul pe care doriți să le ștergeți. Să ștergem ultimul rând din tabel din exemplul anterior Seriale TV. Acest lucru se face folosind instrucțiunea >DELETE.

DELETE FROM tv_series WHERE id = 4

Aveți grijă când scrieți instrucțiunea DELETE și asigurați-vă că este prezentă clauza WHERE, altfel toate rândurile din tabel vor fi șterse!

13. Ștergeți un tabel

Dacă vrem să ștergem toate rândurile, dar să părăsim tabelul în sine, atunci folosiți comanda TRUNCATE:

TRUNCATE TABLE nume_tabel;

În cazul în care dorim de fapt să ștergem atât datele, cât și tabelul în sine, atunci comanda DROP ne va fi utilă:

DROP TABLE nume_tabel;

Fii foarte atent cu aceste comenzi. Nu pot fi anulate!/p>

Aceasta încheie tutorialul nostru SQL! Sunt multe pe care nu le-am acoperit, dar ceea ce știți deja ar trebui să fie suficient pentru a vă oferi niște abilități practice pentru cariera dvs. pe web.

Instrucțiunea SQL SELECT este destinată interogărilor de selectare a datelor dintr-o bază de date. Poate fi folosit fie fără condiții (selectarea tuturor rândurilor din toate coloanele sau a tuturor rândurilor din anumite coloane), fie cu mai multe condiții (selectarea anumitor rânduri) care sunt specificate în clauza WHERE. Să ne familiarizăm cu instrumentele SQL care pot fi folosite pentru a seta aceste condiții pentru selectarea datelor și, de asemenea, să învățăm cum să folosim instrucțiunea SELECT în subinterogări.

SELECT pentru a selecta coloanele din tabel

O interogare cu o instrucțiune SELECT pentru a selecta toate coloanele unui tabel are următoarea sintaxă:

SELECTAȚI * DIN TABLE_NAME

Adică, pentru a selecta toate coloanele unui tabel, trebuie să puneți un asterisc după cuvântul SELECT.

Exemplul 1. Există o bază de date a companiei - Compania. Conține un tabel Org (Structura companiei) și Personal (Angajați). Trebuie să selectați toate coloanele din tabele. Interogarea corespunzătoare pentru a selecta toate coloanele din tabelul Org este următoarea:

SELECTAȚI * DIN ORG

Această interogare va returna următoarele (pentru a mări imaginea, faceți clic stânga pe ea):

Interogarea pentru a selecta toate coloanele din tabelul Staff arată astfel:

SELECTAȚI * DIN PERSONAL

Această interogare va returna următoarele:


Pentru a selecta anumite coloane din tabel, în loc de un asterisc, trebuie să listăm numele tuturor coloanelor care trebuie selectate, separate prin virgule:

SELECTAȚI SELECTABLE_COLUMNS DIN TABLE_NAME

Exemplul 2. Să presupunem că trebuie să selectați coloanele Depnumb și Deptname din tabelul Org, care conțin date despre numerele departamentelor companiei și, respectiv, numele acestora. Interogarea pentru a obține un astfel de eșantion ar fi următoarea:

SELECTAȚI DEPNUMB, DEPTNAME FROM ORG

Și din tabelul Staff trebuie să selectați coloanele DEPT, NUME, JOB, care conțin, respectiv, date despre numărul departamentului în care lucrează angajatul, numele și funcția acestuia:

SELECT și ORDER BY - sortarea (ordonarea) rândurilor

Interogările SQL SELECT discutate până acum au returnat rânduri care ar putea fi în orice ordine. Cu toate acestea, adesea trebuie să sortați rândurile după ordine numerică, alfabet și alte criterii. Acest lucru se face folosind cuvântul cheie ORDER BY. Astfel de solicitări au următoarea sintaxă:

Exemplul 15. Fie cerința să fie selectarea din tabelul Staff angajații care lucrează în departamentul numărul 84 și sortarea (ordonarea) înregistrărilor după numărul de ani lucrați în ordine crescătoare:

Cuvântul ASC indică faptul că ordinea de sortare este crescătoare. Acest cuvânt este opțional deoarece ordinea de sortare crescătoare este implicită. Rezultatul cererii:


Exemplul 16. Fie cerința să fie selectarea acelorași date ca în exemplul precedent, dar sortați (aranjați) înregistrările după numărul de ani lucrați în ordine descrescătoare.

Deci, în baza noastră de date pe forum există trei tabele: utilizatori (utilizatori), subiecte (subiecte) și postări (mesaje). Și vrem să vedem ce date conțin. Există un operator pentru aceasta în SQL SELECTAȚI. Sintaxa de utilizare a acestuia este următoarea:

SELECT what_select FROM unde_select;


În loc de „what_select” trebuie să specificăm fie numele coloanei ale cărei valori dorim să le vedem, fie numele mai multor coloane separate prin virgule, fie simbolul asterisc (*), adică selecția tuturor coloanelor din tabel. . În loc de „from_select”, ar trebui să specificați numele tabelului.

Să ne uităm mai întâi la toate coloanele din tabelul utilizatori:

SELECT * FROM utilizatori;

Acestea sunt toate datele noastre pe care le-am introdus în acest tabel. Dar să presupunem că vrem să ne uităm doar la coloana id_user (de exemplu, în ultima lecție, pentru a popula tabelul cu subiecte, trebuia să știm care id_users sunt în tabelul utilizatori). Pentru a face acest lucru, vom specifica numele acestei coloane în cerere:

SELECTează id_user FROM utilizatori;

Ei bine, dacă vrem să vedem, de exemplu, numele și e-mailurile utilizatorilor noștri, atunci vom enumera coloanele de interes separate prin virgule:

SELECTează numele, e-mailul de la utilizatori;

În mod similar, puteți vedea ce date conțin celelalte tabele ale noastre. Să vedem ce subiecte avem:

SELECT * FROM subiecte;

Acum avem doar 4 subiecte, dar dacă sunt 100 dintre ele? Aș dori să fie afișate, de exemplu, în ordine alfabetică. Există un cuvânt cheie pentru aceasta în SQL COMANDA PENTRU urmat de numele coloanei după care va avea loc sortarea. Sintaxa este următoarea:

SELECT coloană_nume FROM table_name ORDER BY sort_column_name;



În mod implicit, sortarea este în ordine crescătoare, dar aceasta poate fi schimbată prin adăugarea unui cuvânt cheie DESC

Acum datele noastre sunt sortate în ordine descrescătoare.

Sortarea se poate face pe mai multe coloane simultan. De exemplu, următoarea interogare va sorta datele după coloana topic_name, iar dacă există mai multe rânduri identice în această coloană, atunci coloana id_author va fi sortată în ordine descrescătoare:

Comparați rezultatul cu rezultatul interogării anterioare.

De foarte multe ori nu avem nevoie de toate informațiile din tabel. De exemplu, vrem să aflăm ce subiecte au fost create de utilizatorul sveta (id=4). Există un cuvânt cheie pentru aceasta în SQL UNDE, sintaxa pentru o astfel de solicitare este următoarea:

Pentru exemplul nostru, condiția este ID-ul utilizatorului, adică. Avem nevoie doar de acele rânduri a căror coloană id_author conține 4 (ID utilizator sveta):

Sau vrem să știm cine a creat tema „biciclete”:

Desigur, ar fi mai convenabil dacă în loc de id-ul autorului să fie afișat numele acestuia, dar numele sunt stocate într-un alt tabel. În lecțiile ulterioare, vom învăța cum să selectăm date din mai multe tabele. Între timp, să aflăm ce condiții pot fi setate folosind cuvântul cheie WHERE.

Operator Descriere
= (egal) Sunt selectate valori egale cu valoarea specificată

Exemplu:

SELECT * FROM subiecte WHERE id_author=4;

Rezultat:

> (mai mult) Sunt selectate valori mai mari decât cele specificate

Exemplu:

SELECT * FROM subiecte WHERE id_author>2;

Rezultat:

< (меньше) Sunt selectate valori mai mici decât cele specificate

Exemplu:

SELECT * FROM subiecte WHERE id_author
Rezultat:

>= (mai mare sau egal cu) Sunt selectate valori mai mari și egale cu valoarea specificată

Exemplu:

SELECT * FROM subiecte WHERE id_author>=2;

Rezultat:

<= (меньше или равно) Sunt selectate valori mai mici și egale cu valoarea specificată

Exemplu:

SELECT * FROM subiecte WHERE id_author
Rezultat:

!= (nu este egal) Sunt selectate valori care nu sunt egale cu valoarea specificată

Exemplu:

SELECT * FROM subiecte WHERE id_author!=1;

Rezultat:

NU ESTE NUL Selectează rândurile care au valori în câmpul specificat

Exemplu:

SELECT * FROM subiecte WHERE id_author IS NOT NULL;

Rezultat:

ESTE NUL Selectează rânduri care nu au nicio valoare în câmpul specificat

Exemplu:

SELECT * FROM subiecte WHERE id_author IS NULL;

Rezultat:

Set gol - nu există astfel de linii.

ÎNTRE (între) Sunt selectate valorile dintre valorile specificate

Exemplu:

SELECT * FROM subiecte WHERE id_author INTRE 1 SI 3;

Rezultat:

IN (valoare conținută) Sunt selectate valorile corespunzătoare valorilor specificate

Exemplu:

SELECT * FROM subiecte WHERE id_author IN (1, 4);

Rezultat:

NOT IN (valoarea nu este inclusă) Sunt selectate alte valori decât cele specificate

Exemplu:

SELECT * FROM subiecte WHERE id_author NOT IN (1, 4);

Rezultat:

LIKE (potrivire) Sunt selectate valorile care se potrivesc cu modelul

Exemplu:

SELECT * FROM subiecte WHERE nume_subiect LIKE "led%";

Rezultat:

Metacaracterele posibile pentru operatorul LIKE vor fi discutate mai jos.

NU LIKE (nu se potrivește) Sunt selectate valori care nu se potrivesc cu modelul

Exemplu:

SELECT * FROM subiecte WHERE topic_name NOT LIKE "led%";

Rezultat:

Metacaracterele operatorului LIKE

Căutările folosind metacaractere pot fi efectuate numai în câmpuri de text.

Cel mai comun metacaracter este % . Înseamnă orice simboluri. De exemplu, dacă dorim să găsim cuvinte care încep cu literele „vel”, atunci vom scrie LIKE „vel%”, iar dacă dorim să găsim cuvinte care conțin caracterele „club”, atunci vom scrie LIKE „% club%". De exemplu:

Un alt metacaracter folosit frecvent este _ . Spre deosebire de %, care denotă puține sau deloc caractere, liniuța de subliniere denotă exact un caracter. De exemplu:

Atenție la spațiul dintre metacaracter și „pește” dacă îl săriți, cererea nu va funcționa, pentru că metacaracter _ reprezintă exact un caracter, iar un spațiu este, de asemenea, un caracter.

Este suficient pentru azi. În lecția următoare vom învăța cum să scriem interogări pe două sau mai multe tabele. Între timp, încercați să faceți propriile interogări în tabelul cu postări.