Introducerea interogărilor în mysql

În acest moment, este mai important să dai seama cum să emită întrebări decât ce și cum să creați în mod corespunzător baze de date. Această secțiune descrie principiile de bază ale introducerii comenzilor, utilizând mai multe interogări pe care le puteți utiliza pentru a vă familiariza cu funcționarea clientului mysql.







În interogări, există multe comenzi și parametri care fac parte din limbajul SQL. Acest capitol oferă doar scurte explicații privind progresul procesului, necesar pentru a înțelege ce este în joc. Limba SQL este discutată mai detaliat în următoarele capitole.

Există o comandă simplă pentru server pentru a comunica versiunea și data curentă. Introduceți acest lucru după cum se arată mai jos după promptul mysql> și apăsați tasta Enter:

Această interogare ilustrează câteva întrebări despre mysql:

  • Comanda constă, de obicei, dintr-o instrucțiune SQL urmată de o punct și virgulă. Există situații excepționale în care nu este necesar un punct și virgulă, de exemplu, comanda QUIT menționată mai sus. Vom ajunge la alții mai târziu;
  • când emiteți o comandă, mysql o trimite pe server pentru a executa și afișează rezultatele, apoi imprimă un alt prompt mysql> pentru a indica că este gata să primească următoarea comandă;
  • mysql afișează rezultatul interogării ca tabel (rânduri și coloane). Primul rând conține etichetele pentru coloane. Următoarele rânduri specifică rezultatele interogării. În mod obișnuit, etichetele de coloane reprezintă numele coloanelor pe care le selectați din tabelele bazei de date. Dacă obțineți valoarea unei expresii și nu o coloană a tabelului, mysql marchează coloana utilizând expresia direct;
  • mysql arată câte rânduri au fost returnate și cât timp cererea a fost procesată, ceea ce vă oferă date generale despre performanța serverului. Aceste valori sunt inexacte, deoarece nu reprezintă timpul mașinii sau timpul procesorului, ci sfera interogării. Aceste date produc, de exemplu, întârzieri în canalul rețelei. Pentru scurtcircuit, rândurile de rang în set nu sunt arătate în exemplele rămase din acest capitol, deoarece nu contează acum;
  • cuvântul cheie SELECT este unul dintre cele mai importante constructe ale limbajului SQL. Ea prescrie pentru a găsi ceea ce este definit de expresie după acest cuvânt.

Cuvinte cheie în limbajul SQL pot fi introduse în orice registru. Următoarele interogări sunt echivalente:

mysql> SELECT VERSION (), CURRENT_DATE;
mysql> selectare versiune (), current_date;
mysql> SeLeCt vErSiOn (), actualDATE;

Se recomandă introducerea cuvintelor cheie SQL în litere mari, iar toate celelalte elemente de interogare sunt mici. Deci, va fi mai ușor să înțelegeți o interogare complexă, pentru a separa comenzile de datele din ea.

Există o altă solicitare. Aceasta arată că puteți folosi mysql ca un calculator destul de avansat:







Echipele prezentate până acum au fost relativ scurte, cu o singură linie de instruire. Puteți chiar să introduceți mai multe instrucțiuni pe o singură linie. Trebuie doar să puneți capăt fiecăruia cu un punct și virgulă:

Cu toate acestea, echipele sunt, de asemenea, lungi. Limba SQL este cunoscută doar pentru instrucțiunile sale lungi. Dar comenzile lungi care necesită mai multe linii nu reprezintă o problemă. Clientul mysql definește sfârșitul instrucțiunii, căutând punct și virgulă, nu sfârșitul liniei. Cu alte cuvinte, mysql acceptă intrarea în formatul liber: colectează liniile de intrare într-una, dar nu le execută până când nu vede punct și virgulă.

Există o instrucțiune simplă cu o linie lungă:

În acest exemplu, observați cum se modifică sugestiile de la mysql> la -> după ce introduceți primul șir de interogări. Acest mysql indică faptul că nu a văzut încă instrucțiunea completă (și cel mai important, punct și virgulă la sfârșit) și o așteaptă. Sfat este prietenul tău, deoarece oferă feedback valoros. Dacă utilizați acest feedback, veți ști mereu exact ce se așteaptă mysql de la dvs. în acest moment.

Dacă decideți că nu doriți să executați comanda, dar sunteți în proces de intrare, anulați-o tastând:

Aici, de asemenea, să acorde atenție la indiciu. Acesta a revenit la mysql> după intrare, oferind feedback pentru a indica faptul că mysql este pregătit pentru noua comandă.

Următorul tabel 2.1 prezintă toate sugestiile și își generează semnificația:

Tabelul 2.1. Semnificația solicitărilor programului client:

Așteptând următoarea linie să colecteze un șir care începe cu o cotație dublă (")

Uneori instrucțiunile multiline sunt emise aleatoriu, când vă așteptați să emiteți o comandă într-o singură linie, dar uitați să fie finalizată varianta punctului. În acest caz, mysql așteaptă ca intrarea să continue:

mysql> SELECT USER ()
>

Dacă se întâmplă acest lucru (credeți că ați intrat într-un operator, dar singurul răspuns este un indiciu ->), este foarte probabil că mysql așteaptă o punct și virgulă. Introduceți punct și virgulă pentru a finaliza instrucțiunea și mysql va:

Sfaturi „> și“> apar atunci când se lucrează cu un șir în ghilimele. În MySQL, puteți scrie o linie în simbolurile „sau“ (de exemplu, „salut“ sau «la revedere»), si MySQL vă va permite să introduceți un șir lung în câteva linii scurte. Când vedeți solicitarea „> sau“>, aceasta înseamnă că ați introdus un șir care începe cu un apostrof „sau“, dar care nu au intrat încă de-al doilea citat, care se termină șirul. Se poate raporta și eroare:

mysql> SELECT * FROM my_table WHERE nume = "Smith AND age <30;
„>

Dacă introduceți această instrucțiune SELECT. apoi apăsând pe Enter nu va reveni nimic. În loc să vă gândiți la motivul pentru care această solicitare durează atât de mult, examinați promptul ">". Aceasta vă spune că mysql se așteaptă să vadă restul șirului neterminat. Vedeți o eroare în instrucțiuni? Linia "Smith nu are cel de-al doilea ghilimele.

Ce ar trebui să fac? Cea mai simplă soluție este anularea comenzii. Cu toate acestea, nu puteți să tastați doar anularea în acest caz, deoarece mysql o va interpreta ca parte a liniei de intrare! În schimb, introduceți caracterul final al citării (astfel încât mysql înțelege că ați terminat șirul) și numai atunci:

mysql> SELECT * FROM my_table WHERE nume = "Smith AND age <30;
">"
mysql>

Sugestia se modifică înapoi la mysql>, indicând faptul că mysql este pregătit pentru noua comandă.

Este important de știut că raportul indicii> și „>, pentru că dacă introduceți din greșeală o linie incompletă, orice linie, pe care îl introduceți în viitor, vor fi ignorate de MySQL, inclusiv a renunța la fumat! S-ar putea confunda programul, mai ales dacă nu știi care trebuie să intre în citatul complet înainte de a putea anula comanda curentă.

Aici este necesar să fii extrem de atent. Faptul este că șirul poate fi limitat la două tipuri de citate: "și". Sunt interschimbabile, dar trebuie să observați asocierea, adică dacă ați pornit șirul cu un ghilimele, trebuie să încheiați linia cu exact aceeași cotatie.







Trimiteți-le prietenilor: