Sintaxa cererii de acces. Sql este un limbaj pentru accesarea și gestionarea accesului la baza de date. Funcții de interogare în MS Access

În timp, poate fi necesar să transferați baza de date server de fișiere Microsoft Office Access (Access) într-un format DBMS client-server. De obicei, ODBC este utilizat în acest scop. Cu toate acestea, pentru transferul la Microsoft SQL Server (MS SQL), SGBD-urile Access și MS SQL au instrumente specializate convenabile.

Există trei moduri de a transfera o bază de date de la Access la MS SQL. Să le privim pe toate folosind exemplul unei baze de date simple constând din două tabele și o interogare.

Transferul bazei de date prin mijloaceAcces (Convertire în Expert FormatSQLServer")

Pentru a începe transferul, trebuie să faceți clic pe butonul „SQL Server” din zona „Mutarea datelor” din fila „Lucrul cu baze de date”.

În fereastra care se deschide, trebuie să selectați unde vor fi transferate datele.

Există două opțiuni:

  1. Export într-o bază de date MS SQL existentă;
  2. Creați o nouă bază de date (implicit).

Specificăm numele serverului către care vom transfera baza de date, numele bazei de date care urmează să fie creată și indicăm numele de utilizator și parola pentru conexiune.

Pentru a selecta un tabel, utilizați butonul „>”, iar pentru a selecta toate tabelele, utilizați butonul „>>”. Pentru a refuza transferul există butoane „<» и «<<» соответственно.

După selectarea tabelelor, puteți seta parametri suplimentari pentru transferul acestora. În special, versiunile moderne de Access pot exporta nu numai tabelele de date, ci și relațiile dintre ele. Acest lucru reduce semnificativ timpul necesar pentru migrarea bazelor de date, deoarece acestea nu trebuie să fie recreate după migrare.

  • Creați o nouă aplicație client-server cu interfața de utilizator Access;
  • Includeți tabelele migrate în baza de date sursă ca externe (implicit);
  • Nu efectuați nicio acțiune în baza de date sursă.

Când toate informațiile necesare au fost colectate, puteți fie să reveniți la unul dintre pașii anteriori pentru a verifica, fie să începeți procesul de transfer făcând clic pe butonul „Finalizare”.

Progresul procesului de transfer este afișat clar într-o fereastră specială.

Odată ce migrarea este finalizată, puteți deschide SQL Server Management Studio și puteți vedea rezultatele.

Această metodă este cea mai simplă și mai convenabilă, dar, din păcate, vă permite doar să transferați tabele și elementele însoțitoare ale acestora (indici, relații etc.).

Import baze de dateMijloace de accesMicrosoftSQLServer

MS SQL poate importa date dintr-o mare varietate de surse. Dar importul direct din Access este posibil doar pentru bazele de date cu format vechi (.mdb).

Puteți găsi instrucțiuni detaliate pentru importarea unor astfel de baze de date.

Importarea bazelor de date cu formate noi (2007 și mai recente) este mult mai dificilă.

Există două moduri de a rezolva această problemă:

  • Preexportați baza de date Access în vechiul format.
    În acest caz, puteți utiliza cu ușurință instrucțiunile date în link-ul de mai sus;
  • Folosind ODBC.
    Crearea unei surse de date pentru o bază de date Access și apoi conectarea prin aceasta de la MS SQL Server.

Din păcate, metoda asociată utilizării ODBC este destul de complicată în cazul versiunilor de Windows pe 64 de biți.

Motivul este că versiunile pe 64 de biți ale MS SQL vin cu versiuni pe 32 de biți ale SQL Server Management Studio. Această circumstanță înseamnă că bazele de date Access pentru care sursele de date au fost create folosind drivere pe 64 de biți nu pot fi importate folosind acest program.

Există din nou două căi de ieșire aici (ne referim doar la metode care folosesc o interfață grafică):

  • Utilizați versiuni pe 32 de biți de Windows, MS SQL, Office;
  • Utilizați numai accesul pe 32 de biți și configurați sursa de date folosind un manager ODBC pe 32 de biți (de obicei C:\Windows\SysWOW64\odbcad32.exe);
  • Utilizați software alternativ pentru a lucra cu MS SQL.

Cu toate acestea, chiar dacă este posibil să se stabilească procesul de import, beneficiile din acesta se pot dovedi a fi mult mai mici decât efortul și timpul petrecut.

La import, numai tabelele în sine și conținutul lor sunt transferate și nimic altceva (comparați cu capacitățile metodei anterioare).

De asemenea, trebuie remarcat faptul că importul direct din Access rezolvă parțial problema cu exportarea interogărilor (nu există acces la interogări prin ODBC). Dar, implicit, interogările sunt importate în baza de date MS SQL sub formă de tabele obișnuite.

Din fericire, este posibil să reglați fin parametrii de import și puteți înlocui manual interogarea SQL pentru a crea un tabel cu o interogare pentru a crea o vizualizare.

Pentru a face acest lucru, în fereastra din captura de ecran de mai sus, pentru interogarea de acces selectată, faceți clic pe butonul „Editați”.

În fereastra care se deschide, faceți clic pe butonul „Editați SQL...”.

Se va deschide o fereastră de editare a interogării SQL, în care, de fapt, trebuie să înlocuiți interogarea generată automat

al tau.

Ca urmare, interogarea din Access va fi transferată corect în baza de date MS SQL, sub formă de vizualizare, nu de tabel.

Desigur, astfel de setări sunt muncă manuală minuțioasă, care necesită, de asemenea, anumite cunoștințe și abilități, dar totuși, după cum se spune, „mai bine decât nimic”.

Prin urmare, această metodă de transfer a bazelor de date Access în MS SQL este mai potrivită pentru specialiștii calificați în ambele SGBD.

Mai jos este un exemplu de import a unei baze de date Access folosind ODBC pe o versiune de Windows pe 32 de biți. Pe Windows pe 64 de biți, când se utilizează Acces pe 32 de biți, importul este similar, dar sursa de date este creată în Managerul ODBC pe 32 de biți.

Creați o sursă de date.

În fereastra care se deschide, indicați numele lui.

Apoi faceți clic pe butonul „Selectați” și indicați baza de date Access la care doriți să vă conectați.

Când sunt specificate numele sursei și fișierul bazei de date, tot ce trebuie să faceți este să faceți clic pe „Ok” și sursa de date pentru baza de date Access dorită este gata.

Acum puteți trece direct la importarea bazei de date în MS SQL.

Pentru a face acest lucru, în meniul contextual al bazei de date în care doriți să importați, selectați „Sarcini” -> „Import date”.

Se va deschide „Expertul de import și export de date”.

În lista derulantă „Sursă de date”, trebuie să selectați „Furnizor de date .Net Framework pentru Odbc” (dacă nu este selectat implicit) și în linia Dsn din tabel, să specificați numele sursei de date create mai sus pentru Acces la baza de date. Șirul de conexiune („Șir de conexiune”) va fi generat automat.

Apoi, trebuie să specificați în ce bază de date, în ce instanță de MS SQL să importați. Pentru a face acest lucru, după ce faceți clic pe butonul „Următorul”, selectați din lista derulantă „Destinație” fie „Client nativ Microsoft SQL Server” (așa cum se arată în captura de ecran de mai jos), fie „Furnizor Microsoft OLE DB pentru SQL Server”, specificați numele de utilizator al bazei de date și parola dorite pentru conexiuni.

Apoi trebuie să selectați tabelele care vor fi importate. După cum sa menționat mai sus, atunci când utilizați ODBC, importarea interogărilor Access nu este disponibilă. Prin urmare, spre deosebire de captura de ecran anterioară cu lista de obiecte de importat, această listă va conține numai tabele.

Folosind casetele de selectare, puteți selecta toate tabelele simultan (care este ceea ce a fost făcut în acest exemplu) sau unele dintre ele separat.

Se va afișa apoi o fereastră cu setările finale pentru procesul de import. Să lăsăm toate valorile implicite.

După ce faceți clic pe butonul „Terminare”, procesul de import se va finaliza. Dacă totul este făcut corect și importul are succes, fereastra cu informații despre progresul importului nu va conține erori (vezi captura de ecran de mai jos).

Pentru a finaliza expertul, faceți clic pe butonul „Închidere”.

Rezultatul poate fi văzut în SQL Server Management Studio.

Transferarea unei baze de date prin mijloace externeODBC

Această metodă este universală pentru exportul de date din Access în orice alt SGBD. Este suficient să accepte lucrul cu ODBC.

Un exemplu de astfel de export a fost deja discutat anterior în articolul „”

PentruDOMNIȘOARĂSQL această metodă de transfer a unei baze de date de laAccesul nu este recomandat, deoarece numai tabelele cu date sunt exportate, iar interogările sunt exportate numai ca tabele obișnuite.

Cu toate acestea, o astfel de opțiune de transfer este încă disponibilă (versiunea 2014 nu a făcut excepție). Prin urmare, să luăm în considerare și noi.

Mai întâi, să creăm o sursă de date pentru lucrul cu MS SQL (să fie un DSN de utilizator).

Să specificăm driverul pentru sursă.

După aceasta, va începe procesul de creare și configurare.

Să setăm numele sursei de date și să indicăm numele instanței MS SQL la care doriți să vă conectați.

După aceasta, vom indica baza de date în care intenționăm să transferăm tabelul sau interogarea. Transfer folosindODBC poate fi executat doar într-o bază de date deja existentă. Prin urmare, dacă datele trebuie transferate într-o nouă bază de date, acestea trebuie mai întâi create.

După ce faceți clic pe butonul „Terminare”, va fi afișată o fereastră cu informații rezumate despre sursa de date creată.

Pentru ca sursa de date să fie în sfârșit creată, trebuie doar să faceți clic pe butonul „Ok”. Dar, este mai bine să-i verificați mai întâi funcționalitatea făcând clic pe butonul „Verificați sursa de date”.

Dacă totul este făcut corect, va fi afișat un mesaj de verificare cu succes.

Acum că avem o sursă de date, putem trece direct la procesul de transfer.De exemplu, exportăm o singură cerere „Solicitare Contacte” din baza de date.

Pentru a face acest lucru, selectați-l cu mouse-ul și faceți clic pe butonul „Avansat” din zona „Export” din fila „Date externe”. În meniul care se deschide, selectați „Bază de date ODBC”.

În acest caz, valoarea inițială este lăsată.

După ce faceți clic pe butonul „Ok”, trebuie să selectați sursa de date creată.

Apoi introduceți numele de utilizator și parola pentru a vă conecta la server.

După ce faceți clic pe butonul „Ok”, exportul va fi finalizat.

Cu toate acestea, după cum sa menționat mai sus, rezultatul exportului în cazul unei cereri nu este corect.

În loc de vizualizarea „Contacts Request”, a fost creat un tabel cu același nume în baza de date MS SQL.

În plus, chiar dacă exportați doar tabele, există mulți pași suplimentari care trebuie efectuati după export (recrearea relațiilor etc.). Prin urmare, metoda descrisă de transfer de baze de date de la Access la MS SQL practic nu mai este utilizată.

Interogările din Access sunt instrumentul principal pentru selectarea, actualizarea și procesarea datelor în tabelele bazei de date. Access, în conformitate cu conceptul de baze de date relaționale, folosește SQL (Structured Query Language) pentru a executa interogări. Folosind instrucțiunile limbajului SQL, orice interogare în Access este implementată.

Principalul tip de cerere este o cerere de selecție. Rezultatul acestei interogări este un tabel nou care există până când interogarea este închisă. Înregistrările sunt formate prin combinarea înregistrărilor tabelelor pe care se bazează interogarea. Metoda de combinare a înregistrărilor de tabel este specificată la definirea relației lor în schema de date sau la crearea unei interogări. Condițiile de selecție formulate în interogare vă permit să filtrați înregistrările care alcătuiesc rezultatul îmbinării tabelelor.

În Access pot fi create mai multe tipuri de interogări:

  • cerere de mostra- selectează datele dintr-un tabel sau interogare sau mai multe tabele interdependente și alte interogări. Rezultatul este un tabel care există până când interogarea este închisă. Înregistrările tabelului de rezultate sunt generate în conformitate cu condițiile de selecție specificate și atunci când se utilizează mai multe tabele prin combinarea înregistrărilor acestora;
  • cerere de creare a unui tabel- selectează datele din tabele interconectate și din alte interogări, dar, spre deosebire de o interogare select, stochează rezultatul într-un nou tabel permanent;
  • solicitări de actualizare, adăugare, ștergere- sunt cereri de acțiune, în urma cărora datele din tabele sunt modificate.

Interogările din Access în modul proiectare conțin o schemă de date care afișează tabelele utilizate și un formular de interogare în care sunt proiectate structura tabelului de interogare și condițiile de selectare a înregistrărilor (Fig. 4.1).

Folosind o interogare, puteți efectua următoarele tipuri de prelucrare a datelor:

  • includeți câmpuri de tabel selectate de utilizator în tabelul de interogări;
  • efectuați calcule în fiecare dintre înregistrările primite;
  • selectați înregistrări care îndeplinesc condițiile de selecție;
  • creați un nou tabel virtual bazat pe combinarea înregistrărilor de tabele interconectate;
  • înregistrările grupului care au aceleași valori în unul sau mai multe câmpuri, îndeplinesc simultan funcții statistice pe alte câmpuri ale grupului și, ca urmare, includ o înregistrare pentru fiecare grup;
  • creați un nou tabel de bază de date folosind date din tabelele existente;
  • actualizați câmpurile dintr-un subset selectat de înregistrări;
  • ștergeți un subset selectat de înregistrări dintr-un tabel al bazei de date;
  • adăugați un subset selectat de înregistrări la un alt tabel.

Interogările din Access servesc ca surse de înregistrare pentru alte interogări, formulare și rapoarte. Folosind o interogare, puteți colecta informații complete pentru a genera un anumit document de domeniu din mai multe tabele, apoi îl puteți utiliza pentru a crea un formular - o reprezentare electronică a acestui document. Dacă un formular sau un raport este creat de către vrăjitor pe baza mai multor tabele interconectate, atunci o interogare este generată automat pentru acestea ca sursă de înregistrări.
Pentru a consolida acest lucru, urmăriți tutorialul video.

Limbajul SQL nu are funcțiile unui limbaj de dezvoltare cu drepturi depline, dar este axat pe accesul la date, deci este inclus în instrumentele de dezvoltare a programelor. În acest caz se numește SQL încorporat. Standardul limbajului SQL este susținut de implementări moderne ale următoarelor limbaje de programare: PL/1, Ada, C, COBOL, Fortran, MUMPS și Pascal.

În sistemele specializate de dezvoltare de aplicații de tip client-server, mediul de programare este, în plus, de obicei completat cu instrumente de comunicare (stabilirea și deconectarea conexiunilor cu serverele de baze de date, detectarea și procesarea erorilor apărute în rețea etc.), instrumente de dezvoltare interfețe cu utilizatorul, instrumente de proiectare și depanare

Există două metode principale de utilizare a SQL încorporat: static și dinamic.

La static utilizarea limbajului (SQL static) Textul programului conține apeluri la funcțiile limbajului SQL, care sunt incluse în mod rigid în modulul executabil după compilare. Modificările în funcțiile apelate pot fi la nivelul parametrilor individuali de apel folosind variabile ale limbajului de programare.

La dinamic utilizarea limbajului (SQL dinamic) se presupune că apelurile la funcțiile SQL sunt construite dinamic și interpretarea acestor apeluri, de exemplu, accesarea datelor dintr-o bază de date la distanță, în timpul execuției programului. Metoda dinamică este de obicei folosită în cazurile în care aplicația nu cunoaște în prealabil tipul de apel SQL și este construită în dialog cu utilizatorul.

Scopul principal al limbajului SQL (precum și al altor limbaje pentru lucrul cu baze de date) este pregătirea și executarea interogărilor. Ca urmare a eșantionării datelor din unul sau mai multe tabele, se poate obține un set de înregistrări, numite prezentare.

Performanţă este în esență un tabel format ca urmare a executării unei interogări. Putem spune că este un tip de interogare stocată. Puteți construi mai multe vederi folosind aceleași tabele. Vederea în sine este descrisă prin specificarea identificatorului vizualizării și a cererii care trebuie făcută pentru a o obține.



Pentru confortul lucrului cu vizualizări, conceptul de cursor a fost introdus în limbajul SQL. Cursor este un fel de pointer folosit pentru a trece prin seturi de înregistrări atunci când le procesează.

Descrierea și utilizarea unui cursor în SQL este după cum urmează. În partea descriptivă a programului, o variabilă de tip cursor (CURSOR) este asociată cu o instrucțiune SQL (de obicei o instrucțiune SELECT). În partea de execuție a programului, cursorul este deschis (OPEN<имя курсора», перемещение курсора по записям (FETCI-1 <имя курсора>...), urmată de procesarea corespunzătoare și, în final, de închiderea cursorului (ÎNCHIS<имя курсора>).

În SGBD-urile relaționale, pentru a efectua operații asupra relațiilor, se folosesc două grupuri de limbaje, care au ca bază matematică limbaje de interogare teoretice propuse de E. Codd:

algebră relațională;

Calcul relațional.

În algebra relațională Operanzii și rezultatele tuturor acțiunilor sunt relații. Limbile de algebră relațională sunt procedurale deoarece relația rezultată dintr-o interogare pe o bază de date relațională este evaluată prin executarea unei secvențe de operatori relaționali aplicați relațiilor. Operatorii constau din operanzi, care sunt relații și operații relaționale.

Operațiile de algebră relațională Codd pot fi împărțite în două grupuri: teoretică de bază și relațională specială. Prima grupă de operații include operațiile clasice ale teoriei mulțimilor: unire, diferență, intersecție și produs. A doua grupă reprezintă dezvoltarea operațiilor obișnuite de teorie a mulțimilor către probleme reale de manipulare a datelor; include operațiile: proiecție, selecție, împărțire și conectare.

Limbaje de calcul sunt non-procedurale (descriptive sau declarative) și permit exprimarea interogărilor folosind un predicat de ordinul întâi (instrucțiuni de funcție) pe care tuplele sau domeniile relaționale trebuie să-l satisfacă. O interogare de bază de date executată folosind un astfel de limbaj conține doar informații despre rezultatul dorit. Aceste limbi se caracterizează prin prezența unor seturi de reguli pentru scrierea interogărilor. În special, SQL aparține limbilor acestui grup.

Caracteristicile aplicației interogări SQL

O interogare SQL este o interogare creată folosind o instrucțiune SQL. Exemple de interogări SQL sunt interogări de unire, interogări de server, interogări de control și interogări subordonate.

O interogare de îmbinare este o interogare care combină câmpuri (coloane) dintr-unul sau mai multe tabele sau interogări într-un singur câmp sau coloană din setul de rezultate de înregistrări. De exemplu, șase agenți de vânzări oferă managementului un inventar al inventarului lor în fiecare lună. Prin crearea unei interogări de alăturare, puteți combina aceste inventare într-un set de rezultate de înregistrări și apoi puteți dezvolta o interogare de creare a unui tabel bazată pe interogarea de alăturare.

O solicitare către server transmite comenzi SQL prin ODBC către un server, de exemplu, Microsoft SQL Server. Interogările de server vă permit să lucrați direct cu tabelele de pe server, în loc să vă alăturați acestora. Rezultatul unei solicitări către server poate fi încărcarea înregistrărilor sau modificarea datelor.

O interogare de control creează sau modifică obiecte de bază de date, cum ar fi tabelele Access sau SQL Server.

O subinterogare constă dintr-o instrucțiune SQL SELECT în interiorul unei alte interogări select sau change. Aceste instrucțiuni sunt introduse în linia „Câmp” a formularului de solicitare pentru a defini un câmp nou sau în linia „Condiție de selecție” pentru a defini condiția de selecție a câmpului. Subinterogările sunt folosite pentru a face următoarele:

Verificarea intr-o subinterogare pentru existenta unor rezultate folosind cuvintele rezervate EXISTS sau NO EXISTS;

Caută în interogarea principală orice valori care sunt egale, mai mari sau mai mici decât valorile returnate în subinterogare (folosind cuvintele rezervate ANY, IN sau TOATE);

Crearea de subinterogări în cadrul subinterogărilor (subinterogări imbricate).

Limbajul SQL din Access poate fi folosit pentru a dezvolta formulare de ecran, rapoarte, precum și pentru a crea macrocomenzi și programe VBA.

Relația dintre limbajele QBE și SQL

În Access, există o relație strânsă între limbajele QBE și SQL. Tabelele de interogări (formulare) în limbajul QBE, completate de utilizator, sunt convertite în expresii SQL înainte de execuția imediată. Adică, limbajul SQL este un standard intern pentru executarea interogărilor. Acest mecanism are avantajul de a permite sistemului Access să unifice pregătirea interogărilor pentru execuție pe computere locale și la distanță. În acest din urmă caz, mesajul SQL este de fapt transmis către computer - serverul de solicitări.

În Access, o interogare poate fi în unul dintre cele trei moduri (stări): Design, SQL și Table. Modul de proiectare este folosit pentru a dezvolta o nouă interogare de la zero (fără a utiliza vrăjitorii sau alte instrumente) sau pentru a modifica aspectul unei interogări existente. Modul SQL este folosit pentru a introduce sau vizualiza instrucțiuni SQL. Modul tabel este utilizat pentru a lucra cu rezultatele interogării.

SQL în formulare și rapoarte

Principalele surse de înregistrări din afișaje și rapoarte sunt tabelele și interogările. În al doilea caz, cererea poate fi o interogare de bază de date gata făcută sau una creată la elaborarea unui formular sau raport.

SQL în macrocomenzi

Comenzile macro fac parte din macrocomenzi care sunt utilizate pentru a automatiza execuția acțiunilor repetate frecvent în lucrul cu o bază de date. O macrocomandă este una sau mai multe comenzi macro cu argumente.

Macro-urile sunt apelate din fereastra bazei de date sau automat atunci când apar anumite evenimente. Evenimentul la care este apelată macro-ul poate fi, de exemplu, clicul unui buton din zona formularului sau deschiderea unei ferestre de bază de date. Pe lângă efectuarea anumitor acțiuni asupra obiectelor bazei de date, macrocomenzile pot apela alte macrocomenzi, programe Visual Basic și aplicații externe.

Dintre numeroasele comenzi macro, două comenzi macro sunt direct legate de SQL: Run SQL Query (Run SQL) și Open Query (OpenQuery)

Comanda macro Run SQL Query rulează o interogare de modificare sau control de acces folosind instrucțiunea SQL corespunzătoare. Această macrocomandă face posibilă efectuarea de acțiuni într-o macrocomandă fără a salva mai întâi interogările. De asemenea, puteți executa interogări salvate folosind macrocomandă.

Solicitări de schimbare sunt instrucțiuni SQL care implementează următoarele funcții: adăugarea (INSERT INTO), ștergerea (DELETE), crearea unui tabel (SELECT...INTO) și actualizarea (UPDATE)

Cererile de control sunt instrucțiuni SQL care îndeplinesc următoarele funcții: creați un tabel (CREATE TABLE), modificați un tabel (ALTER TABLE), eliminați un tabel (DROP TABLE), creați un index (CREATE INDEX) și eliminați un index (DROP INDEX)

Singurul și necesar argument al comenzii macro Rularea unei interogări SQL este o instrucțiune SQL. Argumentul macro ca text SQL - instrucțiunile sunt introduse manual în fereastra de introducere macro sau copiate din fereastra SQL, ceea ce este adesea mai convenabil.

Comanda macro OpenRequest vă permite să deschideți o interogare de selecție sau încrucișată (în modurile tabel, design și previzualizare), să rulați o interogare pentru a modifica sau introduce date.

Macro-ul specifică trei argumente: numele cererii, modul și modul de date. Primul argument specifică numele cererii de deschis și este obligatoriu. Al doilea argument specifică modul de deschidere a interogării (Tabel, Design și Vizualizare). Al treilea argument descrie modul de introducere a datelor în cerere („Adăugați”, „Schimbați” și „Numai citire”)

SQL în programele VBA

VBA, ca și macrocomenzi, este conceput pentru a automatiza operațiuni repetitive pe obiectele bazei de date Access.

În Access, există următoarele moduri de a rula programe VBA:

Includerea unui program în procedura de procesare a evenimentului;

Apelarea unei funcții într-o expresie;

Apelarea unei proceduri Sub într-o altă procedură sau într-o fereastră de depanare;

Executarea comenzii macro RunCode (RunCode) într-o macrocomandă.

Funcțiile sunt utilizate în expresii care definesc câmpuri calculate în formulare, rapoarte sau interogări. Expresiile sunt folosite pentru a specifica condiții în interogări și filtre, precum și în macrocomenzi, instrucțiuni și metode VBA și instrucțiuni SQL. O procedură Sub poate include subrutine VBA publice care sunt apelate din alte proceduri.

Să ne uităm la rularea unei interogări de bază de date folosind instrucțiuni SQL într-un program Visual Basic pentru aplicații.

Solicitarea selectează înregistrări din baza de date care îndeplinesc anumite condiții (cerere de selecție) sau emite instrucțiuni pentru a efectua acțiuni specificate cu înregistrări care îndeplinesc anumite condiții (cerere de modificare).

Există următoarele moduri de a executa interogări:

Apelarea metodei Execute (pentru a executa interogări SQL pentru modificări);

Crearea și execuția unui obiect special QueryDef;

Utilizarea unei instrucțiuni SQL ca argument pentru metoda OpenRecordset;

Executați metoda OpenRecordset pe un obiect QueryDef existent;

Apelarea metodelor RunSQL și OpenQuery.

Execut metoda folosit dacă trebuie să faceți o modificare în baza de date care nu returnează înregistrări. De exemplu, operațiuni de inserare sau ștergere a înregistrărilor.

obiect QueryDef reprezintă o definiție de interogare salvată în baza de date. Poate fi considerată ca o instrucțiune SQL compilată.

Metoda OpenRecordset folosit pentru a deschide un obiect de tip Recordset pentru a efectua operațiuni ulterioare asupra acestuia.

Metoda RunSQL execută o macrocomandă Rularea unei interogări SQLîn programul VBA

Metoda OpenQuery execută comanda macro OpenQuery într-un program VBA. Cu acesta, puteți deschide o interogare în modul Foaie de date, Design sau Vizualizare. Aceasta setează unul dintre următoarele moduri de lucru cu date: adăugarea, modificarea sau doar citirea.

Alegerea opțiunii de execuție a interogării este determinată de programator, ținând cont de caracteristicile problemei care se rezolvă.

Lucrare de laborator nr 1

SQL: DATA EXTRACT - comandăSELECTAȚI

Scopul lucrării:

  • familiarizați-vă cu instrucțiunile SQL;
  • învață cum să creezi interogări SQL simple în Access folosind comanda SELECT;

· utilizarea operatorilor IN, BETWEEN, LIKE, IS NULL.

Exercițiu№1. Creați o interogare pentru a selecta în modul SQL toate valorile câmpurilor PRENUME și NUME din tabelul STUDENTI.

SELECTAȚI PRENUMELE, NUMELE

DE LA STUDENTI;

Exercițiu№2 . Creați o interogare pentru a selecta în modul SQL toate coloanele din tabelul STUDENTI.

SELECTAȚI *

DE LA STUDENTI;


Sarcina nr. 3. Creați o interogare pentru a selecta în modul SQL numele orașelor în care locuiesc elevii, informații despre care se află în tabelul DATE PERSONALE.

SELECTAȚI ORAȘUL DISTINCT

DIN [DATE PERSONALE];

Sarcina nr. 4. Creați o interogare de selecție în modul SQL care preia numele tuturor elevilor cu numele de familie Ivanov, informații despre care se află în tabelul STUDENTI.

SELECTAȚI NUMELE, PRENUMELE

DE LA STUDENTI

UNDE NUMELE="Ivanov";

Sarcina nr. 5. Creați o interogare de selecție în modul SQL pentru a obține numele și prenumele studenților care studiază în grupa UIT-22 pe o formă de educație bugetară.

SELECTAȚI NUMELE, PRENUMELE

DE LA STUDENTI

WHERE GROUP="UIT-22" AND BUDGET=true;

Sarcina nr. 6. Creați o interogare în modul SQL. pentru o mostră din tabelul de EXAMEN, informații despre elevii care au doar note 4 și 5.

SELECTAȚI *

DE LA [SCHIMBAREEXAMENE]

UNDENOTAIN(4,5);

Sarcina nr. 7. Creați un mod zanpoc și SQL pentru a selecta informații despre studenții care au nota 3 la examen la materia IOSU.

SELECTAȚI *

DE LA [SCHIMBAREEXAMENE]

UNDEARTICOL=" IOSU"ȘiNOTANu în (4,5);

Sarcina nr. 8. Creați o interogare în modul SQL pentru a selecta înregistrări pentru articolele ale căror ore sunt între 100 și 130.

SELECTAȚI *

DINARTICOLE

UNDECEASINTRE 100 SI 130;


Sarcina nr. 9. Creați o interogare în modul SQL pentru a selecta din tabelul STUDENTI informații despre elevii ale căror nume de familie încep, de exemplu, cu litera „C”.

SELECTAȚI *

DINELEVI

UNDENUME DE FAMILIECA"CU*";

Concluzie:În timpul lucrărilor de laborator, ne-am familiarizat cu instrucțiunile SQL, am învățat cum să creăm interogări SQL simple în Access folosind comanda SELECT folosind operatorii IN, BETWEEN, LIKE.

Access DBMS utilizează două tipuri de interogări: QBE – interogare după eșantion și SQL(Structured Query Language) - limbaj structurat de interogare. Un exemplu de solicitare este generat prin completarea unui formular special de solicitare în fereastra „Query Builder”. SQL – interogările sunt create de programatori dintr-o secvență de SQL – instrucțiuni. SQL este generat, de regulă, de programatori pe un formular de interogare, care este deschis de comanda „Query Builder” din fila „Creation” și „SQL Mode” este selectat din meniul View. Limbajul SQL este conceput pentru a lucra cu date, de ex. pentru crearea, modificarea și gestionarea datelor în baze de date relaționale.

Trebuie remarcat faptul că există mai multe moduri de interogare SQL (interogări în mod ANSI-89 SQL și ANSI-92 SQL) care respectă standardele ANSI-89 SQL și ANSI-92 SQL.

Instrucțiunile conțin o descriere a setului de date în SQL. Instrucțiuni SQL constau din clauze (SELECT, FROM, WHERE etc.). promoțiiîn limbajul SQL constau din termeni (operatori sau comenzi, identificatori, constante etc.). Instrucțiunea începe cu o instrucțiune (una dintre comenzile SELECT, CREATE, INSERT, UPDATE, DELETE etc.) și se termină cu punct și virgulă. Instrucțiuni SQL de bază: SELECT, FROM și WHERE.

De exemplu, instrucțiunea SQL:
SELECT Students.StudentCode
DE LA Studenți;
constă din clauza „SELECT Students.StudentCode” și clauza „FROM Students”.

Clauza SELECT conține operator SELECT și identificator„Elevi.Codul elevului”. Aici, numele complet al câmpului „StudentCode” este precedat de numele tabelului „Students” al bazei de date. SELECT - specifică câmpul care conține datele necesare. Clauza FROM este formată din clauza FROM și identificatorul „Students”. FROM - definește un tabel care conține câmpurile specificate în clauza SELECT.

Trebuie remarcat faptul că atunci când creați o interogare în SQL, trebuie să luați în considerare sintaxa acesteia. În ciuda faptului că sintaxa limbajului SQL se bazează pe sintaxa limbii engleze, sintaxa versiunilor limbajului SQL poate diferi pentru diferite SGBD.

Există mai multe tipuri de interogări: selectarea, actualizarea, adăugarea și ștergerea înregistrărilor, interogare încrucișată, crearea și ștergerea tabelelor, alăturarea tabelelor etc. Cea mai comună este o cerere de eșantion. Interogările de selecție sunt folosite pentru a selecta informațiile conținute în tabelele de care utilizatorul are nevoie. Sunt create numai pentru tabelele înrudite.

Pentru a vizualiza interogări de interogare SQL în DBMS Access 2003 sau 2007, trebuie să executați comanda SQL View/Mode în fereastra activă pentru proiectarea unui exemplu de interogare (Fig. 1).


Orez. 1.

Să obținem o instrucțiune SQL (SELECT) pentru a eșantiona date din baza de date Access 2003 în conformitate cu criteriul de performanță al elevilor „Grade=5” (Fig. 2).



Orez. 2.

După cum urmează din instrucțiunea SELECT (Fig. 1), aceasta descrie un set de date în limbaj SQL: SELECT - definește numele câmpurilor precedate de numele tabelelor care conțin datele; FROM - definește tabele și relațiile acestora prin câmpurile cheie ale tabelelor (pentru aceasta se folosește construcția INNER JOIN ... ON), pe baza cărora se selectează datele; WHREME - definește condițiile de selectare a câmpurilor; ORDER BY - determină modul în care se sortează în ordine crescătoare (în mod implicit se realizează ordine crescătoare) valorile câmpului „Nume” din tabelul „Studenți”.

După cum rezultă din instrucțiunile pentru preluarea datelor din baza de date, limbajul SQL descrie ceea ce trebuie obținut din baza de date, în timp ce execuția este încredințată SGBD, deoarece limbajul SQL nu are mijloace proprii de control al execuției programului.

  • Serghei Savenkov

    un fel de recenzie „scurtă”... de parcă s-ar grăbi undeva