SQL (Structured Query Language) este un limbaj standardizat pentru definirea și manipularea datelor dintr-o bază de date relațională. În conformitate cu modelul relațional de date, baza de date este percepută ca un set de tabele, relațiile sunt reprezentată prin valori din tabele și datele sunt preluate prin specificarea unui tabel de rezultate care poate fi derivat de la unul sau mai multe tabele de bază. Interogările iau forma unui limbaj de comandă care vă permite selectați, inserați, actualizați, găsiți locația datelor și așa mai departe.
În Delphi: TQuery
Dacă veți utiliza SQL în aplicațiile dvs., veți deveni foarte familiar cu TQuery componentă. Delphi permite aplicațiilor dvs. să utilizeze sintaxa SQL direct deși componenta TQuery să acceseze date din tabelele Paradox și dBase (utilizând SQL local - subsetul SQL standard ANSI), baze de date de pe serverul InterBase local și baze de date din baza de date la distanță servere.
Delphi acceptă, de asemenea, interogări eterogene împotriva a mai mult de un server sau tip de tabel (de exemplu, date dintr-o tabelă Oracle și o tabelă Paradox) .TQuery are o proprietate numită
TQuery încapsulează una sau mai multe instrucțiuni SQL, le execută și oferă metode prin care putem manipula rezultatele. Interogările pot fi împărțite în două categorii: cele care produc seturi de rezultate (cum ar fi a SELECTAȚI declarație) și cele care nu (cum ar fi un an ACTUALIZAȚIsau INTRODUCE afirmație). Folosiți TQuery. Deschis pentru a executa o interogare care produce un set de rezultate; utilizați TQuery. ExecSQL pentru a executa interogări care nu produc seturi de rezultate.
Instrucțiunile SQL pot fi fie static sau dinamicadică pot fi setate la momentul proiectării sau pot include parametri (TQuery. params) care variază la timpul de rulare. Utilizarea interogărilor parametrizate este foarte flexibilă, deoarece puteți schimba vizualizarea utilizatorului și accesul la datele din zbor în timpul rulării.
Toate instrucțiunile SQL executabile trebuie să fie pregătite înainte de a putea fi executate. Rezultatul pregătirii este forma executabilă sau operațională a declarației. Metoda de pregătire a unei declarații SQL și persistența formei sale operaționale disting SQL static de SQL dinamic. La momentul proiectării, o interogare este pregătită și executată automat atunci când setați întrebare Proprietatea activă a componentei pentru True. La timpul de execuție, o interogare este pregătită cu un apel la Pregătire și executat atunci când aplicația apelează la metodele Open sau ExecSQL ale componentei.
Un TQuery poate returna două tipuri de seturi de rezultate: "Trăi"ca și în cazul componentei TTable (utilizatorii pot edita datele cu controale de date, iar atunci când apare un apel la Post, modificările sunt trimise în baza de date),"read-only"numai pentru afișare. Pentru a solicita un set de rezultate live, setați proprietatea RequestLive a componentei de interogare pe True și fiți conștienți că instrucțiunea SQL trebuie să îndeplinească unele cerințe specifice (fără COMANDARE, SUMĂ, AVG etc.)
O interogare se comportă în multe feluri, asemănătoare unui filtru de masă, iar în unele moduri, o interogare este chiar mai puternică decât un filtru, deoarece vă permite să accesați:
- mai multe tabele simultan („alăturați-vă” în SQL)
- un subset specificat de rânduri și coloane din tabelul (tabelele) de bază, în loc să le întoarcă întotdeauna pe toate
Exemplu simplu
Acum, să vedem unele SQL în acțiune. Deși am putea utiliza Expert Formular Wizard pentru a crea câteva exemple SQL pentru acest exemplu, îl vom face manual, pas cu pas:
1. Plasați o componentă TQuery, TDataSource, TDBGrid, TEdit și o componentă TButton pe formularul principal.
2. Setați proprietatea DataSet a componentei TDataSource la Query1.
3. Setați proprietatea DataSource a componentei TDBGrid la DataSource1.
4. Setați proprietatea DatabaseName a componentei TQuery la DBDEMOS.
5. Faceți dublu clic pe proprietatea SQL a unui TQuery pentru a-i atribui instrucțiunea SQL.
6. Pentru a face datele afișate grilă la momentul proiectării, schimbați proprietatea Active a componentei TQuery pe True.
Grila afișează datele din tabelul Employee.db în trei coloane (FirstName, LastName, Salary) chiar dacă Employee.db are 7 câmpuri, iar setul de rezultate este limitat la acele înregistrări în care începe numele FirstName cu „R”.
7. Acum alocați următorul cod la evenimentul OnClick al butonului1.
procedură TForm1.Button1Click (Expeditor: TObject); începe Query1.Close;{închideți interogarea}// atribuiți o nouă expresie SQL Query1.SQL.Clear; Query1.SQL.Add ('Selectați EmpNo, FirstName, LastName'); Query1.SQL.Add („FROM Employee.db”); Query1.SQL.Add ('WHERE Salary>' + Edit1.Text); Query1.RequestLive: = true; Query1.Open; {interogare deschisă + date afișate}Sfârșit;
8. Rulați aplicația. Când faceți clic pe buton (atâta timp cât Edit 1 are o valută valabilă în el), grila va afișa Câmpurile EmpNo, FirstName și LastName pentru toate înregistrările în care Salariul este mai mare decât moneda specificată valoare.
În acest exemplu, am creat o instrucțiune SQL statică simplă cu set de rezultate live (nu am schimbat nicio înregistrare afișată) doar în scopul afișării.