Principii de bază ale construirii interogărilor SQL. Preluarea datelor dintr-o bază de date Access utilizând interogări sql. Crearea unei baze de date în phpmyadmin

27.10.2019 Știri

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:

SELECT * FROM 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ă doriți 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:

SELECTAȚI DEPARTAMENTUL, NUMELE, POSTUL DIN PERSONAL

Pentru a selecta anumite rânduri ale tabelului, împreună cu instrucțiunea SELECT, veți avea deja nevoie cuvânt cheie UNDE, care indică o valoare sau valori conținute în rândurile de interes. Cele mai simple condiții sunt specificate folosind operatorii de comparație și egalitate (, =), precum și cuvântul cheie IS. Pot exista mai multe condiții, apoi sunt listate folosind cuvântul cheie AND. Interogările de selecție de rânduri au următoarea sintaxă:

Exemplul 4.În exemplul anterior, am selectat rânduri din tabel numai după valoarea unei coloane - DEPT. Să presupunem că acum trebuie să selectați date despre angajații care lucrează în al 38-lea departament și a căror funcție este Funcționar. Pentru a face acest lucru, în secțiunea UNDE, valorile corespunzătoare trebuie enumerate folosind cuvântul AND:


Exemplul 5. Să presupunem că trebuie să selectați din tabelul Staff identificatorii și numele acelor angajați a căror mărime a comisionului este nedeterminată. Pentru a face acest lucru, în secțiunea WHERE, înainte de a specifica valoarea coloanei COMM - NULL, trebuie să puneți nu un semn egal, ci cuvântul ESTE:

Această interogare va returna următoarele date:


Semnele de comparație sunt, de asemenea, folosite pentru a indica valorile din rândurile pe care doriți să le selectați.

Folosind predicate SELECT și IN, OR, BETWEEN, LIKE

Predicatele - cuvintele IN, OR, BETWEEN, LIKE din secțiunea WHERE - vă permit, de asemenea, să selectați anumite intervale de valori (IN, SAU, BETWEEN) sau valori în rânduri (LIKE) pe care doriți să le selectați din masa. Interogările cu predicate IN, OR, BETWEEN au următoarea sintaxă:

Interogările cu predicatul LIKE au următoarea sintaxă:

Exemplul 7. Să presupunem că doriți să selectați din tabelul Personal numele, funcțiile și numărul de ani lucrați ale angajaților care lucrează în departamentele numerotate 20 sau 84. Acest lucru se poate face cu următoarea interogare:

Rezultatul cererii:


Exemplul 8. Să presupunem că acum doriți să selectați aceleași date din tabelul Staff ca în exemplul anterior. O interogare cu cuvântul SAU este similară cu o interogare cu cuvântul IN și care enumerează valorile de interes între paranteze. Solicitarea va fi după cum urmează:

Exemplul 9. Să selectăm din același tabel numele, funcțiile și numărul de ani lucrați ale angajaților al căror salariu este între 15.000 și 17.000 inclusiv:

Rezultatul cererii:


Predicatul LIKE este folosit pentru a selecta acele șiruri de caractere ale căror valori conțin caracterele specificate după predicatul dintre apostrofe (").

Exemplul 10. Să selectăm din același tabel numele, funcțiile și numărul de ani lucrați ale angajaților ale căror nume încep cu litera S și constau din 7 caractere:

Linerul de subliniere (_) semnifică orice caracter. Rezultatul cererii:


Exemplul 11. Să selectăm din același tabel numele, funcțiile și numărul de ani lucrați ale angajaților ale căror nume încep cu litera S și conțin orice alte litere în orice cantitate:

Simbolul procentual (%) înseamnă orice număr de caractere. Rezultatul cererii:


Valorile specificate folosind predicatele IN, OR, BETWEEN, LIKE pot fi inversate folosind cuvântul NOT. Atunci datele solicitate vor avea sens invers. Daca folosim NOT IN (20, 84), atunci se vor afisa datele angajatilor care lucreaza in toate departamentele cu exceptia celor cu numerele 20 si 84. Folosind NOT INTRE 15000 SI 17000 putem obtine datele angajatilor al caror salariu nu este incluse în intervalul de la 15000 până la 17000. O interogare cu NOT LIKE va returna date pentru angajații ale căror nume nu încep sau nu conțin caracterele specificate cu NOT LIKE.

Scrieți interogări SQL cu SELECT și predicate IN, NOT IN, BETWEEN, apoi uitați-vă la soluții

Există o bază de date „Teatru”. Tabelul Play conține date despre producții. Masa echipei - despre rolurile actorilor. Tabelul de actori este despre actori. Masa directorului - despre directori. Câmpurile de tabel, cheile primare și străine pot fi văzute în figura de mai jos (clic stânga pentru a mări).


Exemplul 12. Afișează o listă de actori care nu au fost niciodată repartizați în rolul principal. În tabelul echipei, datele despre rolurile principale sunt conținute în coloana echipei principale. Dacă rolul este cel principal, atunci „Y” este marcat în linia corespunzătoare.

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 anterior, dar sortați (aranjați) înregistrările după numărul de ani lucrați în ordine descrescătoare:

Cuvântul DESC indică faptul că ordinea de sortare este descendentă. Rezultatul cererii:


SELECT și DISTINCT - eliminarea rândurilor duplicate

Când valorile rândurilor din tabel nu sunt setate la unic, în rezultatele interogării pot apărea rânduri duplicate. Adesea trebuie doar să scoateți șiruri de caractere unice. Acest lucru se face prin utilizarea expresiei DISTINCT după instrucțiunea SELECT.

Exemplul 17. Să presupunem că doriți să aflați ce departamente există și ce posturi sunt printre departamentele al căror număr este mai mic de 30. Acest lucru se poate face folosind următoarea interogare:

Rezultatul cererii:


Instrucțiunea SELECT în subinterogări SQL

Până acum, ne-am uitat la constructele SQL cu o instrucțiune SELECT, în care condițiile prin care datele sunt selectate și datele selectate în sine sunt conținute în același tabel de bază de date. În practică, se întâmplă adesea ca datele care trebuie selectate să fie conținute într-un tabel, iar condițiile să fie conținute într-un altul. Aici vin în ajutor subinterogările: valorile condiției de selecție sunt returnate de la o altă interogare (interogare imbricată), începând tot cu SELECT. Interogările cu subinterogări pot returna unul sau mai multe rânduri.

Exemplul 18. Toate aceleași mese ORG și STAFF. Să presupunem că doriți să aflați în ce departament lucrează angajatul cu numărul de identificare 280 și unde se află acest departament. Dar informațiile despre departamente sunt stocate în tabelul ORG, iar informațiile despre angajați sunt stocate în tabelul PERSONAL. Acest lucru se poate face folosind următoarea interogare cu o subinterogare în care SELECT-ul extern accesează tabelul ORG și SELECT-ul interior accesează tabelul STAFF:

Rezultatul cererii:


Exemplul 19. Să presupunem că acum trebuie să aflați în ce departamente (fără duplicare) lucrează angajații cu un salariu mai mic de 13 000. Pentru a face acest lucru, în secțiunea WHERE din exteriorul SELECT (interogare la tabelul ORG), este specificată o condiție care necesită un interval de valori (IN), iar SELECT interior (la tabelul STAFF) returnează doar intervalul de valori necesar:

Baze de date relaționale și limbaj SQL

Interogări - interogări structurate către baza de date. De ce exact curs de programare? În ciuda faptului că mulți „experți în literatură” vor argumenta că SQL nu este, dar limbajul de interogare, cred că cursurile despre studiul său pot și ar trebui să fie clasificate ca cursuri de programare. În primul rând, nu le numiți cursuri pentru scrierea cererilor, deoarece acest lucru le-ar putea confunda cu cursuri pentru funcționari începători sau procurori. În al doilea rând, lucrul cu bazele de date este atât de strâns legat de faptul că lipsa abilităților SQL restrânge destul de semnificativ domeniul de aplicare al unui anumit programator. Și în al treilea rând, interogările structurate (nu neapărat către bazele de date) nu mai sunt la abordările limitelor limbajelor de programare - le-au depășit deja, iar tehnologia poate servi ca exemplu în acest sens.

Toate exemplele sunt construite în jurul interogărilor pe trei tabele,


care contine urmatoarele informatii:

  • D_STAFF- lista angajatilor companiei;

    • S_NAME – nume complet
    • S_POSITION – poziție (director);
    • S_EXPERIENCE – experiență în muncă (număr întreg de ani);
    • S_CHIEF_ID – angajat senior al companiei (relația „șef” - „subordonat”);
    • S_COMMENTS – notă.


  • D_PROFIE- o listă de profiluri de utilizatori, care, conform legendei, este desfășurată pe teritoriul întreprinderii în cauză și ajută la automatizarea unora dintre procesele sale de afaceri. Acest sistem poate fi fie o dezvoltare internă „1C – Enterprise”, fie un sistem bazat pe pachete software SAP R/3, care este cel mai proeminent reprezentant al acestei clase software in strainatate;

    • XD_IID – Identificator unicînregistrări;
    • P_NAME – numele profilului (rolului);
    • P_COMMENTS – notă.


  • D_STAFF_PROFILE– un tabel care conectează angajații companiei (D_STAFF) cu profilurile utilizatorilor sistemului (D_PROFILE). Fiecare intrare din acest tabel este o relație care determină capacitatea angajatului de a se autentifica cu toate drepturile și permisiunile profilului selectat pentru el. Fiecare angajat poate avea mai multe profiluri permise și orice profil poate fi asociat cu mai mulți angajați diferiți. Astfel, tabelul D_STAFF_PROFILE definește o relație multi-la-mulți.

Scurtă prezentare generală a sintaxei interogărilor SQL în cauză

Actualizarea datelor sau comanda UPDATE

Scopul comenzii UPDATE este actualizarea înregistrările existenteîn tabelul specificat. Indicăm unde și ce dorim să schimbăm, iar după cuvântul cheie WHERE stabilim criterii de selectare a înregistrărilor actualizate. În comanda de actualizare a datelor, ca și în altele interogare SQL oh, puteți folosi subinterogări: de exemplu, puteți defini valoarea atribuită unui câmp ca rezultat al unei subinterogări care returnează doar o coloană și un rând.

UPDATE SET ( = ) sau UPDATE SET ( = (SELECTARE DIN UNDE))

Adăugarea datelor sau comanda INSERT

Adăugarea de noi înregistrări la tabelul specificat. Nimic complicat nici aici. Specificăm tabelul, lista de câmpuri și lista de valori adăugate acestor câmpuri. Ce poate da folosind SQL Subinterogarea este, de asemenea, ușor de ghicit - copierea matricei de date selectate folosind SELECT în tabelul specificat (în câmpurile enumerate separate prin virgule). Desigur, numărul și tipul de coloane din interogare SELECT trebuie să se potrivească cu numărul și tipul câmpurilor de tabel în care se efectuează inserarea.

INSERT INTO [()] VALUES () sau INSERT INTO [()] (SELECT FROM WHERE)

Ștergerea datelor sau comanda DELETE

Ștergerea rândurilor dintr-un tabel sau din mai multe tabele simultan, ale căror rânduri sunt combinate în funcție de condiții. Totul aici este, de asemenea, evident. Indicăm din ce tabel ștergem datele, iar în partea UNDE selectăm datele de șters. A doua versiune a interogării SQL folosind instrucțiunea DELETE arată sintaxa generală pentru ștergerea înregistrărilor din mai multe tabele simultan. În condițiile de selecție (în partea WHERE), puteți utiliza și subinterogări.

DELETE FROM sau DELETE FROM

Dacă totul este mai mult sau mai puțin clar, atunci ne facem cunoștință cu sau și începem procesul de învățare în sine.

    Executarea unor interogări SQL simple folosind comanda SELECT. Definirea criteriilor simple și compuse pentru selectarea înregistrărilor folosind clauza WHERE. Folosind operatorii BETWEEN și LIKE. Construirea unei interogări ierarhice folosind aliasuri de tabel și câmp.

Deci, în baza de date a forumului există trei tabele:

· utilizatori (utilizatori);

· subiecte (subiecte);

· postări (mesaje).

Trebuie să te uiți la ce date conțin. Există un operator pentru aceasta în SQL SELECTAȚI. Sintaxa de utilizare a acestuia este următoarea:

SELECTAȚI what_select FROM unde_select;

În loc de „what_select” trebuie să specificați fie numele coloanei ale cărei valori doriți să le vedeți, fie numele mai multor coloane separate prin virgule, fie simbolul asterisc (*), ceea ce înseamnă selectarea tuturor coloanelor din tabel. În loc de „where_select”, ar trebui să specificați numele tabelului.

Mai întâi, să ne uităm la toate coloanele din tabelul utilizatori:

SELECT * FROM utilizatori;

Acestea sunt toate datele care au fost introduse în tabel.

Să presupunem că trebuie să vă uitați doar la coloana id_user (deoarece pentru a popula tabelul cu subiecte, trebuie să știți care id_users sunt în tabelul utilizatori). Pentru a face acest lucru, specificați numele acestei coloane în interogare:

SELECTează id_user FROM utilizatori;

Dacă trebuie să vă uitați, de exemplu, la numele și e-mailurile utilizatorilor, atunci trebuie să enumerați coloanele de interes separate prin virgule:

SELECT numele, e-mailul de la utilizatori;

În mod similar, puteți vedea ce date conțin alte tabele.

Mai întâi să vedem ce subiecte există:

SELECT * FROM subiecte;

Acum sunt doar 4 subiecte în tabel, 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 modificată prin adăugarea unui cuvânt cheie DESC.

Datele sunt acum 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 utilizatorul nu are nevoie de toate informațiile din tabel. De exemplu, trebuie să aflați 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:

SELECT coloană_nume FROM table_name condiție WHERE;

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):

SELECT * FROM subiecte WHERE id_author=4;

Acum trebuie să aflăm 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 continuare, ne vom uita la modul de selectare a datelor 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 valoarea specificată. Exemplu: SELECT * FROM subiecte WHERE id_author > 2; Rezultat:
< (меньше) Sunt selectate valori mai mici decât valoarea specificată. Exemplu: SELECT * FROM subiecte WHERE id_author< 3; Результат:
>= (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<= 3; Результат:
!= (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 o 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 valori între cele specificate. Exemplu: SELECT * FROM subiecte WHERE id_author BETWEEN 1 AND 3; Rezultat:
IN (valoare conținută) Sunt selectate valorile corespunzătoare celor 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:

Lecția va acoperi limbajul de interogare: instrucțiunea SELECT sql - pentru selectarea datelor

Selectați Interogare SQL este destinat eșantionării normale dintr-o bază de date. Acestea. dacă trebuie doar să primim date fără a face nicio prelucrare cu acestea și fără a face modificări în baza de date, atunci putem folosi acest instrument în siguranță.

Sintaxa instrucțiunii SELECT

SELECT * FROM table_name;

Aceasta este cea mai simplă opțiune de lucru cu operatorul, atunci când selectăm toate înregistrările dintr-un tabel de bază de date.

Simbolul * denotă preluarea tuturor înregistrărilor dintr-un tabel. Cu toate acestea, coloanele și rândurile setului de rezultate nu sunt ordonate.

Să ne uităm la exemple de interogări de selectare SQL:

Exemplu: Dacă ați creat o bază de date locală și ați completat tabelele, ca în cel discutat mai devreme (sau ați folosit serviciul sqlFiddle), atunci să rulăm următorul exemplu.
Trebuie să selectați toate înregistrările din tabelul profesorilor

SELECT * FROM table_name LIMIT 2,3;

În exemplu, 3 înregistrări sunt selectate din tabel, începând cu înregistrarea 2.
Această interogare este necesară în special atunci când se creează un bloc de pagini de navigare.

La ordonează câmpurile setului de rezultate, ar trebui să fie listate separate prin virgule în ordinea necesară după cuvântul SELECT:

SELECT numele, zarplata, premia FROM profesori ORDER BY nume;

Selectați valorile câmpurilor nume, zarplata, premia și sortați după câmpul nume (în ordine alfabetică)


Exemplu: DB „Magazin de calculatoare”. Selectați informații despre viteza și memoria computerelor. Doriți să sortați setul de rezultate după viteza procesorului în ordine crescătoare.

SELECTAȚI `Viteză`, `Memorie` DIN `PC` COMANDĂ CU 1 ASC

Rezultat:

Puteți sorta după două câmpuri:

SELECT numele, zarplata, premia FROM profesori ORDEREA PENTRU nume DESC;

Selectează valorile câmpurilor de nume, zarplata, premia și sortează după câmpul de nume în ordine descrescătoare


Eliminarea valorilor duplicate în SQL

Când trebuie să obțineți rânduri unice, puteți utiliza cuvântul cheie DISTINCT.

DISTINCT(tradus din engleza DIFERENTA) - un argument care elimină valorile duble:

Exemplu de baza de date „Institut”: trebuie să cunoașteți posibilele opțiuni premium. Dacă nu utilizați Distinct , rezultatul va fi două valori identice. Puteți elimina valorile duplicate în sql introducând Distinct - ca urmare, valorile duplicate nu se repetă.

    SELECTARE Viteza, Memorie DE LA PC;

    Rezultat:

    În tabelul PC, cheia primară este câmpul de cod. Deoarece acest câmp nu este prezent în interogare, există rânduri duplicat în setul de rezultate de mai sus.

    Când trebuie să obțineți șiruri unice (de exemplu, ne interesează doar diferite combinații de viteză și memorie a procesorului, și nu caracteristicile tuturor computerelor disponibile), atunci trebuie să utilizați Distinct:

    SELECTARE DISTINCT Speed, Memory FROM PC;

    SELECTARE DISTINCT Speed, Memory FROM PC;

    Rezultat:

    sql select task 1_1. DB „Institut” Rulați o interogare pentru a selecta id și numele din tabelul profesorilor. Sortați numele profesorilor în ordine descrescătoare

    Limbajul SQL: condiția unde

    Condiția este îndeplinită de sentință
    UNDE
    care se scrie după clauza FROM.

    În acest caz, numai acele înregistrări pentru care valoarea predicatului este TRUE vor fi incluse în setul de rezultate.

    Exemplu de baza de date „Institut”: Ieșiți datele unui profesor din tabelul profesorilor, al cărui nume este Ivanov

    Condiții multiple în SQL

    Predicatele (condițiile) pot consta fie dintr-o expresie, fie dintr-o combinație de expresii construite folosind operatori booleeni:

  1. ȘI
  2. sau nu
  3. Exemplu de baza de date „Institut”: afiseaza codul unui profesor al carui salariu este 10000 , și bonusul 500

    Operatori relaționali găsiți în condiții:
    = Egal
    > Mai mult decât
    >= Mai mare sau egal cu
    Nu este egal

    Între în SQL (între)

    Predicatul BETWEEN verifică dacă valorile expresiei testate se încadrează în intervalul specificat de expresiile de limită unite de cuvântul funcție ȘI.

    Sintaxă:

    <Проверяемое выражение>ÎNTRE<Начальное выражение>ȘI<Конечное выражение>

    Exemplu de bază de date „Institut”: Tipăriți numele și salariul unui profesor al cărui salariu este între 5000 și 10000.

    Exemplu de bază de date „Institut”: Afișați numele și salariul unui profesor al cărui salariu nu este în intervalul de la 5000 la 10000.

    Predicat IN

    Predicatul IN determină dacă valoarea expresiei testate va fi găsită într-un set de valori care este definit în mod explicit.

    Sintaxă:

    < Проверяемое выражение>[ NU ÎN (< набор значений> )

    <Проверяемое выражение>IN (<набор значений>)

    Exemplu de bază de date „Institut”: afișați numele profesorilor al căror salariu este de 5000, 10000 sau 11000

    Exemplu de bază de date „Institut”: afiseaza numele profesorilor al caror salariu nu se afla printre valorile: 5000, 10000 sau 11000

    sql select task 1_3. DB „Institut” Afișați numele, salariul și bonusul profesorilor al căror bonus este de la 2000 la 5000 de ruble.

Lecția va acoperi limbajul de interogare sql: elementele de bază ale sintaxei limbajului sql, lucrând în phpMyAdmin si serviciu pentru controale online interogări sql

Bază de date- depozit de date centralizat care asigură stocare, acces, prelucrare primarăși căutarea de informații.

Bazele de date sunt împărțite în:

  • Ierarhic
  • Reţea
  • Relațional
  • Orientat pe obiecte

SQL (limbaj de interogare structurat)— este un limbaj de interogare structurat (traducere din engleză). Limbajul este axat pe lucrul cu baze de date relaționale (tabulare). Limbajul este simplu și, în esență, constă din comenzi (interpretate), prin care puteți lucra cu cantități mari de date (baze de date), ștergerea, adăugarea, modificarea informațiilor din acestea și efectuarea unor căutări convenabile.

Pentru a lucra cu cod SQL, aveți nevoie de un sistem de gestionare a bazelor de date (DBMS), care oferă funcționalitate pentru lucrul cu bazele de date.

Sistemul de gestionare a bazelor de date(DBMS) - un set de limbaj și software, destinat creării, întreținerii și partajarea DB de către mulți utilizatori.

De obicei folosit pentru antrenament Microsoft Access DBMS, dar vom folosi un sistem mai comun în sfera web - . Pentru comoditate, veți folosi interfața web sau serviciu online pentru construirea de interogări SQL, principiul de lucru cu care este descris mai jos.

Important: Când lucrați cu baze de date relaționale sau tabelare, vom apela rânduri de tabel înregistrări, iar coloanele sunt câmpuri.

Fiecare coloană trebuie să aibă propriul tip de date, de ex. trebuie să fie destinat introducerii de date de un anumit tip. sunt descrise într-una dintre lecțiile din acest curs.

Componentele limbajului SQL

Limbajul SQL este format din următoarele componente:

  1. Limbajul de manipulare a datelor (DML);
  2. Limbajul de definire a datelor (DDL);
  3. Limbajul de control al datelor (DCL).

1.
Limbajul de manipulare a datelor constă din 4 comenzi principale:

  • preluarea datelor din baza de date -
  • inserarea datelor într-un tabel de bază de date -
  • actualizarea (modificarea) datelor din tabelele bazei de date -
  • stergerea datelor din baza de date -

Limbajul de definire a datelor folosit pentru a crea și modifica structura bazei de date și a componentelor acesteia - tabele, indecși, vederi (tabele virtuale), precum și declanșatoare și proceduri stocate.

Ne vom uita la doar câteva dintre ele comenzile de bază ale limbajului. Sunt:

  • crearea unei baze de date - CREATE DATABASE
  • crearea unui tabel - CREATE TABLE
  • schimbarea unui tabel (structură) - ALTER TABLE
  • ștergerea unui tabel - DROP TABLE

Limbajul de gestionare a datelor este utilizat pentru a gestiona drepturile de acces accesarea datelor și executarea procedurilor într-un mediu multi-utilizator.

Cum se face o interogare sql în phpmyadmin

  1. Lansați comanda rapidă denwer de pornire.
  2. În bara de adrese a browserului, tastați http://localhost/tools/phpmyadmin.
  3. În partea stângă a ferestrei, selectați baza de date de interes sau creați-o (dacă nu este deja creată). Crearea unei baze de date în phpmyadmin este acoperită.
  4. Dacă cunoașteți tabelul cu care va funcționa interogarea, selectați acest tabel în partea stângă a ferestrei.
  5. Selectați fila SQL și începeți să introduceți o interogare.

Crearea unei baze de date în phpmyadmin

Mai întâi trebuie să completați primele două puncte de la.
Apoi:

  • în interfața web care se deschide, selectați fila Bază de date;
  • în câmp Creați o bază de date introduceți numele bazei de date;
  • faceți clic pe butonul Crea;
  • Acum, pentru a continua să lucrați în phpMyAdmin în baza de date creată, puteți accesa .

Lucrează în serviciul SQL Fiddle

Verificarea online a interogărilor SQL este posibilă folosind serviciul.
Cel mai simplu mod de a organiza munca constă în următorii pași:


Alt exemplu:


Acum să ne uităm la câteva puncte mai detaliat.

Crearea tabelelor:

Exemplu: creați trei tabele simultan (profesori, lecții și cursuri); adăugați mai multe valori la fiecare tabel.

* pentru cei care nu sunt familiarizați cu sintaxa - doar copiați întregul cod și lipiți-l în fereastra din stânga a serviciului

* lecție despre crearea tabelelor în Limbajul SQL

/*profesori*/ CREATE TABLE `teachers` (​`id` INT (11 ) NOT NULL , `name` VARCHAR (25 ) NOT NULL , `code` INT (11 ) , `zarplata` INT (11 ) , ` premia` INT(11), PRIMARY KEY(`id`)); INSERT INTO teachers VALUES (1 , "Ivanov" , 1 , 10000 , 500 ) , (2 , "Petrov" , 1 , 15000 , 1000 ) , (3 , "Sidorov" , 1 , 14000 , ", 8 , 14000 , , 8 Bobrova", 1, 11000, 800); /*lectii*/ CREATE TABLE `lessons` ( `id` INT (11 ) NOT NULL , `tid` INT (11 ) , `course` VARCHAR (25 ) , `date` VARCHAR (25 ) , CHEIE PRIMARĂ (`id `)); INSERT INTO VALUES pentru lecții (1 , 1 , "php" , "2015-05-04" ), (2 , 1 , "xml" , "2016-13-12" ) ; /*cursuri*/ CREATE TABLE `courses` ( `id` INT (11 ) NOT NULL , `tid` INT (11 ) , `title` VARCHAR (25 ) , `length` INT (11 ) , PRIMARY KEY (`id `)); INSERT INTO courses VALUES (1, 1, "php" , 54 ) , (2 , 1 , "xml" , 72 ) , (3 , 2 , "sql" , 25 ) ;

/*profesori*/ CREATE TABLE `teachers` (`id` int(11) NOT NULL, `name` varchar(25) NOT NULL, `code` int(11), `zarplata` int(11), `premia` int(11), CHEIE PRIMARĂ (`id`)); inserați în profesori valori (1, „Ivanov”,1,10000,500), (2, „Petrov”,1,15000,1000) ,(3, „Sidorov”,1,14000,800), (4 ," Bobrova",1.11000.800); /*lectii*/ CREATE TABLE `lessons` (`id` int(11) NOT NULL, `tid` int(11), `course` varchar(25), `date` varchar(25), PRIMARY KEY (`id`) `)); inserați în lecții valori (1,1, "php","2015-05-04"), (2,1, "xml","2016-13-12"); /*cursuri*/ CREATE TABLE `courses` (`id` int(11) NOT NULL, `tid` int(11), `title` varchar(25), `length` int(11), CHEIE PRIMARĂ (`id `)); inserați în curs valori (1,1, "php",54), (2,1, "xml",72), (3,2, "sql",25);

Ca rezultat, obținem tabele cu date:

Trimiterea unei cereri:
Pentru a testa funcționalitatea serviciului, adăugați codul de solicitare în fereastra din dreapta.

Exemplu: folosind o interogare, selectați toate datele din tabelul profesorilor legate de profesorul cu numele de familie Ivanov

În lecțiile viitoare de SQL va fi folosită aceeași schemă, așa că va trebui doar să copiați schema și să o inserați în fereastra din stânga a serviciului.

Pentru vizualizarea online a schemei bazei de date, puteți utiliza serviciul https://dbdesigner.net/:

  1. Creați-vă contul (conectați-vă dacă aveți deja unul).
  2. Faceți clic pe butonul Accesați Aplicație.
  3. Meniul Schemă -> Import.
  4. Copiați și inserați codul pentru crearea și completarea tabelelor bazei de date în fereastra care apare