Instrucțiunea select



Yüklə 49,79 Kb.
tarix25.10.2017
ölçüsü49,79 Kb.
#13042

Instrucțiunea SELECT




Apeleaza motorul de baze de date Microsoft să returneze informații din baza de date ca un set de înregistrări.

Sintaxă

SELECT [predicat] { * | tabel.* | [tabel.]câmp1 [AS alias1] [, [tabel.]câmp2 [AS alias2] [, ...]]}


FROM expresietabel [, ...] [IN bazădedateexternă]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[WITH OWNERACCESS OPTION]

Instrucțiunea SELECT are următoarele părți:



Partea

Descriere

predicat

Unul dintre următoarele predicate: ALL, DISTINCT, DISTINCTROW sau TOP. Se utilizează predicatul pentru a restricționa numărul de înregistrări returnate. Dacă nu se specifică nici un predicat, cel implicit este ALL.

*

Specifică toate câmpurile selectate din tabelul sau tabelele specificate.

tabel

Numele tabelului care conține câmpuri din care se selectează înregistrări.

câmp1, câmp2

Numele câmpurilor care conțin datele care se regăsesc. Dacă se includ mai mult de un câmp, acestea vor fi regăsite în ordinea listată.

alias1, alias2

Numele care se utilizează ca antet de coloană în locul numelor originare ale coloanelor în tabel.

expresietabel

Numele tabelului sau tabelelor care conțin datele care se regăsesc.

bazădedateexternă

Numele bazei de date care conține tabelele din expresietabel dacă nu sunt din baza de date curentă.


Comentarii

Pentru a efectua această operațiune, motorul de baze de date Microsoft® Jet caută tabelul sau tabelele specificate, extrage coloanele alese, selectează rândurile care satisfac criteriile și sortează sau grupează rândurile rezultate în ordinea specificată.

Instrucțiunile SELECT nu modifică datele din baza de date.

SELECT este de regulă primul cuvânt dintr-o instrucțiune SQL . Majoritatea instrucțiunilor SQL sunt fie SELECT, fie SELECT...INTO.

Sintaxa minimală pentru o instrucțiune SELECT este:

SELECT câmpuri FROM tabel

Se poate utiliza un asterisc (*) pentru a selecta toate câmpurile dintr-un tabel. Următorul exemplu selectează toate câmpurile din tabelul Angajați:

SELECT * FROM Angajați;

Dacă numele câmpului apare în mai mult de un tabel în clauza FROM, numele de câmp trebuie precedat de numele tabelului și de operatorul . (punct). În următorul exemplu, câmpul Departament apare în tabelul Angajați și în tabelul Controlori. Instrucțiunea SQL selectează departamentele din tabelul Angajați și numele controlorilor din tabelul Controlori:

SELECT Angajați.Departament, Controlori.NumeContrl

FROM Angajați INNER JOIN Controlori

WHERE Angajați.Departament = Controlori.Departament;

Când se creează un obiect Recordset, motorul de baze de date Microsoft Jet utilizează numele câmpului din tabel ca nume al obiectului Field în obiectul Recordset. Dacă se dorește alt nume de câmp sau un nume care nu este implicat de expresia utilizată pentru generarea câmpului, se utilizează cuvântul rezervat AS. Următorul exemplu utilizează titlul DatăNaștere pentru a denumi obiectul Field returnat în obiectul rezultat Recordset:

SELECT NăscutLa

AS DatăNaștere FROM Angajați;

Întotdeauna când se utilizează funcții agregate sau interogări care returnează nume de obiecte Field ambigue sau dublate, trebuie să se utilizeze clauza AS pentru a furniza un nume alternativ pentru obiectul Field. Următorul exemplu utilizează titlul Numerotare pentru a denumi obiectul Field returnat în obiectul rezultat Recordset:

SELECT COUNT(IDAngajat)

AS Numerotare FROM Angajați;

Se pot utiliza celelalte clauze într-o instrucțiune SELECT pentru a restricționa mai mult și a organiza mai bine datele returnate. Pentru informații suplimentare, consultați subiectul de Ajutor pentru clauzele utilizate.

Vezi și

Predicatele ALL DISTINCT, DISTINCTROW, TOP

Clauza ORDER BY (Microsoft Jet SQL)

Instrucțiunea DELETE

Instrucțiunea SELECT...INTO

Clauza FROM

Funcții agregate SQL

Clauza GROUP BY

Operațiunea UNION

Clauza HAVING

Instrucțiunea UPDATE

Clauza IN

Clauza WHERE

Instrucțiunea INSERT INTO

Opțiunea WITH OWNERACCESS OPTION

 




Despre interogările SQL (MDB)




O interogare SQL este o interogare pe care o creați cu ajutorul unei instrucțiuni SQL (şir de caractere/instrucţiune SQL: O expresie care defineşte o comandă SQL, cum ar fi SELECT, UPDATE sau DELETE, conţinând clauze cum ar fi WHERE sau ORDER BY. Şirurile de caractere/instrucţiunile SQL se utilizează de obicei în interogări şi în funcţiile agregate.). Aveți posibilitatea de a utiliza Structured Query Language (SQL) pentru a interoga, actualiza și gestiona baze de date relaționale, cum ar fi Microsoft Access.

Atunci când creați o interogare în Vizualizare proiect (Vizualizare proiect: O fereastră care afişează proiectul următoarelor obiecte bază de date: tabele, interogări, formule, rapoarte, macrocomenzi şi pagini de acces la date. în Vizualizare proiect se pot crea obiecte bază de date noi şi modifica proiectul celor existente.) pentru interogare, Access construiește în fundal instrucțiunile SQL echivalente. de fapt, multe proprietăți ale interogării din foaia de proprietăți în modul Vizualizare proiect au clauze și opțiuni echivalente, vizibile în modul Vizualizare SQL (Vizualizare SQL: O fereastră care afişează instrucţiunea SQL pentru interogarea curentă sau care se utilizează pentru crearea unei interogări specifice SQL (de uniune, directă sau de definiţie date). Când se creează o interogare în Vizualizare proiect, Access construieşte echivalentul său SQL în Vizualizare SQL.). Dacă doriți, aveți posibilitatea să vizualizați sau să editați instrucțiunea SQL în Vizualizare SQL. Însă, după ce efectuați modificări în Vizualizare SQL, este posibil ca interogarea să nu arate așa cum arăta anterior, în Vizualizare proiect.

Unele interogări SQL, denumite interogări specifice SQL (interogare specifică SQL: Interogare care constă dintr-o instrucţiune SQL. Subinterogările şi interogările directe, de uniune şi de definiţie date sunt interogări specifice SQL.), nu pot fi create în grila de proiect (grilă de proiect: Grilă utilizată pentru proiectarea unei interogări sau filtru în vizualizare proiect sau în fereastra Filtrare/sortare complexă. Pentru interogări, această grilă a fost anterior cunoscută ca grilă QBE.). Pentru interogările directe (interogare directă: Interogare SQL utilizată pentru trimiterea de comenzi direct unui server de baze de date ODBC. Prin utilizarea interogărilor directe, se operează direct cu tabelele de pe server, fără a lăsa motorul bază de date Microsoft Jet să prelucreze datele.), de definiție date (interogare de definiţie date: O interogare de tip SQL care conţine instrucţiuni în limbajul de definire a datelor (DDL). Aceste instrucţiuni permit crearea sau modificarea obiectelor din baza de date.) și de uniune (interogare de tip uniune: Interogare care utilizează operatorul UNION pentru a combina rezultatele a două sau mai multe interogări de selecţie.), este necesar să creați instrucțiunile SQL direct în Vizualizare SQL. Pentru subinterogări subinterogare: O instrucţiune SQL SELECT care se află în interiorul altei interogări de selectare sau de acţiune., se introduce codul SQL în rândul Câmp sau Criteriu al grilei de proiect a interogării.



Unde se utilizează instrucțiunile SQL

Aveți posibilitatea de a utiliza instrucțiuni SQL în multe locuri din Access, acolo unde se introduce numele unui tabel, al unei interogări sau al unui câmp.

În unele cazuri, Access completează automat instrucțiunea SQL. De exemplu, atunci când utilizați un expert pentru a crea un formular sau raport care preia date din mai multe tabele, Access creează automat o instrucțiune SQL pe care o utilizează ca setare pentru proprietatea Sursă înregistrări a formularului sau raportului. Atunci când creați o casetă listă sau combo cu un expert, Access creează o instrucțiune SQL și o utilizează ca setare pentru proprietatea Sursă înregistrări a casetei listă sau a casetei combo.

Fără a utiliza expertul, aveți posibilitatea să generați o instrucțiune SQL pentru proprietățile Sursă înregistrări sau Sursă rânduri făcând clic pe butonul Generare alăturat oricărei dintre aceste proprietăți și apoi creând o interogare în Vizualizare proiect pentru interogare.

De asemenea, aveți posibilitatea să utilizați instrucțiuni SQL programate în:


  • Argumentul Instrucțiune SQL al acțiunii de macrocomandă ExecuțieSQL.

  • În cod ca șir de caractere literale sau ca instrucțiune SQL care conține variabile și controale (control: Un obiect grafic al interfeţei cu utilizatorul, cum ar fi o casetă text, o casetă de selectare, o bară de defilare sau un buton de comandă, care permit utilizatorului să controleze programul. Controalele sunt utilizate pentru a afişa date sau opţiuni, a executa o acţiune sau a face interfaţa cu utilizatorul mai uşor de citit.).

  • Proprietatea SQL a unui obiect QueryDef pentru a modifica instrucțiunea SQL subordonată unei interogări.

Utilizarea de expresii în SQL

Aveți posibilitatea să introduceți o expresie într-o instrucțiune SQL SELECT sau în clauzele WHERE, ORDER BY, GROUP BY sau HAVING. De asemenea, aveți posibilitatea să introduceți o expresie SQL în unele argumente (comutator: O valoare care furnizează informaţii unei acţiuni, unui eveniment, unei metode, proprietăţi, funcţii sau proceduri.) și setări de proprietăți (proprietate: Un atribut numit al unui control, al unui câmp, sau al unui obiect setat pentru a se defini una din caracteristicile obiectului (cum ar fi mărime, culoare sau poziţia pe ecran) sau un aspect al comportamentului său (cum ar fi dacă obiectul este ascuns).). De exemplu, aveți posibilitatea să utilizați o expresie SQL ca:



  • Argumentul Condiție Where al acțiunilor DeschidereFormular sau AplicareFiltru.

  • Argumente de domeniu sau de criteriu într-o funcție agregată de domeniu (funcţie agregată de domeniu: O funcţie, cum ar fi DAvg sau DMax, care se utilizează pentru a calcula statistici pentru un set de înregistrări (un domeniu).).

  • Setare pentru proprietățile Sursă înregistrări sau Sursă rânduri din formulare sau rapoarte.

Interogările specifice SQL

Interogările de uniune

O interogare de uniune combină câmpuri din două sau mai multe tabele într-un singur câmp în rezultatele interogării. O interogare de uniune se poate utiliza pentru a combina date din două tabele. De exemplu, combinați numele companiei și orașul pentru toate firmele din Brazilia care sunt listate în tabelele Furnizori și Clienți. Apoi, aveți posibilitatea să creați o interogare de tip creare tabel bazată pe interogarea de uniune pentru a crea un nou tabel.





 Prima instrucțiune SELECT returnează două câmpuri...

 ... cea de-a doua instrucțiune SELECT returnează două câmpuri corespondente, iar apoi ...

 ... combină valorile din câmpurile corespondente ale ambelor tabele într-un singur câmp.

Interogările directe

O interogare directă transmite comenzile direct către bazele de date ODBC (bază de date ODBC: Bază de date pentru care se furnizează un driver ODBC (Open Database Connectivity) utilizat la importul, legarea sau exportul de date.), cum ar fi Microsoft FoxPro, utilizând comenzi acceptate de server. De exemplu, aveți posibilitatea să utilizați o interogare directă pentru a regăsi înregistrări sau pentru a modifica date. Cu ajutorul interogărilor directe, lucrați direct cu tabelele din server în loc de a le lega (legare (pentru tabele): O acţiune care stabileşte o conexiune la datele din altă aplicaţie, astfel încât să fie posibilă vizualizarea şi editarea datelor, atât în aplicaţia iniţială cât şi în Access.). Interogările directe mai sunt utile și pentru executarea de proceduri stocate (procedură stocată: Colecţie precompilată de instrucţiuni SQL şi de instrucţiuni de control depozitate sub un nume şi procesate unitar. Colecţia este păstrată într-o bază de date SQL şi se execută prin intermediul unui apel dintr-o aplicaţie.) într-un server ODBC (Open Database Connectivity (ODBC): O metodă standard de partajare a datelor între bazele de date şi programe. Driverele ODBC utilizează standardul Structured Query Language (SQL) pentru a obţine acces la datele exterioare.).



Interogările de definiție date

O interogare de definiție date creează, șterge sau alterează tabele, sau creează indexuri într-un tabel al bazei de date. De exemplu, următoarea interogare de definiție date utilizează instrucțiunea CREATE TABLE pentru a crea un tabel denumit Prieteni. Instrucțiunea conține numele și tipul de date (tip de date: Caracteristica unui câmp care determină ce tip de date poate conţine. Tipurile de date includ Boolean, Întreg, Lung, Simbol monetar, cu simplă precizie, cu dublă precizie, Şir de caractere şi Variant (implicit).) pentru fiecare câmp din tabel și atribuie câmpului IDPrieten un index (index: Facilitate care accelerează căutarea şi sortarea într-un tabel bazat pe valori cheie şi poate impune unicitatea pentru rândurile dintr-un tabel. Cheia primară a unui tabel este automat indexată. Anumite câmpuri nu pot fi indexate datorită tipului lor de date.) care îl marchează drept cheie primară (cheie primară: Unul sau mai multe câmpuri (coloane) ale căror valori identifică în mod unic fiecare înregistrare din tabel. O cheie primară nu permite valori Null şi trebuie să aibă întotdeauna un index unic. Cheia primară este utilizată pentru a corela un tabel la cheile străine din alte tabele..).

CREATE TABLE Friends
([FriendID] integer,
[LastName] text,
[FirstName] text,
[Birthdate] date,
[Phone] text,
[Notes] memo,
CONSTRAINT [Index1] PRIMARY KEY ([FriendID]));

Subinterogări

O subinterogare constă dintr-o instrucțiune SQL SELECT în interiorul unei alte interogări de selectare sau de acțiune. Aveți posibilitatea să introduceți aceste instrucțiuni în rândul Câmp al grilei de proiect (grilă de proiect: Grilă utilizată pentru proiectarea unei interogări sau filtru în vizualizare proiect sau în fereastra Filtrare/sortare complexă. Pentru interogări, această grilă a fost anterior cunoscută ca grilă QBE.) pentru interogare, pentru a defini un nou câmp, sau în rândul Criteriu pentru a defini criterii pentru un câmp. Aveți posibilitatea de a utiliza subinterogările pentru:



  • Testarea unui rezultat din subinterogare (prin intermediul cuvintelor rezervate EXISTS sau NOT EXISTS).

  • Regăsirea tuturor valorilor din interogarea principală care sunt egale cu, mai mari decât sau mai mici decât valorile returnate de subinterogare (prin intermediul cuvintelor rezervate ANY, IN sau ALL).

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




Yüklə 49,79 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin