Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Baze de date


Qdidactic » stiinta & tehnica » informatica » baze de date
Nucleul sql din visual foxpro 6.0.



Nucleul sql din visual foxpro 6.0.


NUCLEUL SQL DIN VISUAL FOXPRO 6.0.


Consultarea datelor din bazele de date

SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]]
  [Alias.] Select_Item
AS Column_Name]
  [, [Alias.] Select_Item [AS Column_Name] ]

FROM [FORCE]
[DatabaseName!]Table [[AS] Local_Alias]
  [[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN
     DatabaseName!]Table [[AS] Local_Alias]
     [ON JoinCondition . ]

[[INTO Destination]
  | [TO FILE FileName [ADDITIVE] | TO PRINTER [PROMPT]
  | TO SCREEN]]

[PREFERENCE PreferenceName]

[NOCONSOLE]

[PLAIN]

[NOWAIT]

[WHERE JoinCondition [AND JoinCondition ]
  [AND | OR FilterCondition [AND | OR FilterCondition ]]]

[GROUP BY GroupColumn [, GroupColumn ]]

[HAVING FilterCondition]

[UNION [ALL] SELECTCommand]

[ORDER BY Order_Item [ASC | DESC] [, Order_Item [ASC | DESC] ]]




Exemple de interogari

Selectia, proiectia , reuniunea


Ce agenti economici mari au sediul in zona BURDUJENI?

SELECT *;

FROM AGENTI1;

WHERE zona='BURDUJENI'

Care sunt facturile emise in data de 29.01.1999, cu valoare mai mare de 2000000 corespunzator apei potabile?

SELECT *;

FROM FACTURI;

WHERE DATA= AND TIP=12 AND VAL >2000000

Care sunt facturile pentru care valoarea consumului de apa potabila este mai mare de 1500000 si mai mica de 4000000?

SELECT *;

FROM FACTURI;

WHERE Tip=12 AND Val>1500000 AND val <4000000

Aceeasi interogare se poate scrie astfel:

SELECT *;

FROM FACTURI;

WHERE Tip=12 AND Val BETWEEN 1500000 AND 4000000

Care sunt agentii al caror nume incepe cu 'S' si sunt societati pe actiuni?

SELECT *;

FROM Agenti1;

WHERE Nume LIKE 'S%SA'

Care sunt agentii al caror nume este format din 9 caractere, incepe cu 'S' si sunt societati pe actiuni?

SELECT *;

FROM Agenti1;

WHERE Nume LIKE 'S______SA'

Care sunt agentii din zonele: CENTRALA si ZAMCA?

SELECT *;
FROM AGENTI1;

WHERE Zona = 'CENTRALA' OR Zona='ZAMCA'

Sau

SELECT * ;
FROM AGENTI1;

WHERE Zona IN ('CENTRALA',' ZAMCA')


Care sunt agentii pentru care nu s-a introdus numele managerului?

SELECT *

FROM AGENTI1;

WHERE manger IS NULL

In ce zone ale orasului isi au sediul agentii comerciali, clienti ai firmei?

SELECT DISTINCT Zona;

FROM Agenti

Care este numele fiecarui agent comercial si adresa sa?

SELECT Nume, Adresa;

FROM Agenti

Daca se doreste o prezentare ordonata a agentilor se urtilizeaza clauza ORDER BY.

SELECT *;

FROM AGENTI;

ORDER BY Nume

Daca se doresrte ordonarea descrescatoare se foloseste urmatoarea formulare:


SELECT *;

FROM Agenti;

ORDER BY Zona ASCENDING, Nume DESCENDING


Pornind de la tabelele Agenti1 si Agenti2 , tabelul reuniune care reprezinta tabelul AGENTI va fi obtinut in SQL prin fraza:

SELECT *;

FROM AGENTI1;

UNION;

SELECT *;

FROM AGENTI2;

Operatorului de jonctiune in SQL

Caror agentii le-au fost listate facturile si care sunt seriile si numerele speciale alocate acestora

SELECT DISTINCT Agenti.cod, Agenti.nume, Agenti. Adresa, NRSP.seria, NRSP.nrs

FROM Agenti, NRSP;

WHERE Agenti.cod=NRSP.cod

sau

SELECT DISTINCT Agenti.cod, nume, Adresa, seria, nrs;

FROM Agenti, NRSP;

WHERE Agenti.cod=NRSP.cod

Echijonctiunea poate fi realizata prin clauza INNER JOIN plasata in clauza FROM, fara clauza WHERE. Astfel, ultima fraza SELECT poate fi scrisa astfel:

SELECT *;

FROM Agenti INNER JOIN NRSP ON;

Agenti.cod=NRSP.cod

In ce zone ale orasului se gasesc agentii economici carora li s-a facturat o suma mai mare de 1.000.000 lei pentru apa potabila?

SELECT DISTINCT Zona;

FROM Agenti, Facturi;

WHERE Tip=12 AND Val>1000000 AND ;

Agenti.cod=Facturi.cod


Functiile predefinite: COUNT, SUM, AVG, MAX, MIN

Formatul general al unei fraze SELECT ce contine functii predefinite este:


SELECT fct_pred1, fct_pred2,..fct_predn;

FROM lista de tabele;

WHERE conditii

In lipsa optiunii GROUP BY, daca in clauza SELECT este prezenta o functie predefinita, tabelul rezultat va contine o singura linie.


Functia COUNT

Cati clienti are firma?

SELECT COUNT (cod) AS nr_clienti;

FROM Agenti

Cate formulare de facturi au fost anulate?

SELECT COUNT (anulat);

FROM NRSP;

WHERE anulat='Da'

Cate facturi s-au emis in data de 29.01.1999

SELECT COUNT (DISTINCT numar);

FROM FACTURI;

WHERE Data=


Functia SUM

Calculeaza suma valorilor unei coloane.

Care este valoarea totala a facturilor emise?

SELECT SUM(Val) AS Total_fe;

FROM Facturi

Care este valoarea apei potabile facturate?

SELECT SUM(Val) AS Total_fe;

FROM Facturi;

WHERE tip=12

Care este valoarea facturii emise pentru AKROM AKAL?

SELECT SUM(val) AS Total_ELCO;

FROM FACTURI, AGENTI;

WHERE FACTURI.cod=AGENTI.cod AND AGENTI.nume='AKROM AKAL'

sau

SELECT SUM(val) AS Total_ELCO;

FROM FACTURI;

WHERE cod IN;

(SELECT cod;

FROM AGENTI;

WHERE nume='AKROM AKAL' )

Functia AVG

Calculeaza media aritmetica a unei coloane intr-un tabel oarecare, prin divizarea sumei valorilor coloanei respective la numarul de valori nenule ale acesteia.

Care este valoarea medie a prestatiilor facturate in factura cu numarul 10589?

SELECT AVG (Pret*Cant) AS Medie_10589;

FROM FACTURI;

WHERE Numar=10589

Observatie: Valoarea medie a tuturor facturilor nu poate fi calculata cu functia AVG. In acest caz este necesara utilizarea optiunii GROUP BY.

Care este valoarea medie a serviciilor de canalizare facturate

SELECT AVG (Pret*Cant) AS Medie_canal;

FROM FACTURI;

WHERE tip=22

Care este valoarea medie facturata pentru serviciile de canal in zonele Burdujeni si Itcani?

SELECT AVG (Pret*Cant) AS Medie_canal;

FROM FACTURI;

WHERE tip=22 AND cod IN;

(SELECT cod;

FROM AGENTI;

WHERE Zona IN ('BURDUJENI','Itcani')

Functiile MAX si MIN

Determina valorile maxime, respectiv minime ale unei coloane in cadrul unui tabel.

Care este codul agentului pentru care s-a facturat cea mai mare cantitate de apa?

SELECT cod ;

FROM Facturi;

WHERE val IN;

(SELECT MAX (Val);

FROM Facturi;

WHER tip=12)

Gruparea tuplurilor. Clauzele GROUP BY si HAVING

SQL permite utilizarea clauzei GROUP BY pentru a forma grupuri de tupluri intr-o relatie pe baza valorilor comune ale unei coloane. Prin asocierea unei clauze HAVING la o clauza GROUP BY este posibila selectarea anumitor grupe de tupluri care indeplinesc un criteriu.

Formatul general al clauzei GROUP BY este:

SELECT col1, col2,..coln;

FROM tabel;

GROUP BY coloana de grupare

Care este totalul valorilor facturate pentru fiecare serviciu prestat?

SELECT Tip, Produs, SUM(val);

FROM FACTURI ;

GROUP BY Tip

In acest caz tabelul rezultat va aveaun numar de linii egal cu numarul tipurilor de prestatii distincte dintabelul Facturi. Pentru toate pozitiile din facturi care se refera la un anumit produs se va calcula suma valorilor deoarece se foloseste functia SUM.

Care este numarul facturilor trimise in fiecare zona a orasului?

SELECT Zona, COUNT(numar);

FROM AGENTI, NRSP;

WHERE AGENTI.cod=NRSP.cod;

GROUP BY AGENTI.Zona

Care este valoarea totala a facturilor emise, pe zile, pentru fiecare zona ?

SELECT Zona, Data, SUM (val);

FROM Facturi, Agenti;

WHERE Facturi.cod=Agenti.cod ;

GROUP BY Zona, Data


Clauza HAVING

Clauza HAVING lucreaza impreuna cu o clauza GROUP BY, fiind practic o clauza WHERE aplicata acesteia. Formatul general este:

SELECT col1, col2,..coln;

FROM tabel;

GROUP BY coloana de regrupare;

HAVING caracteristica de grup

Pentru facturile emise, intereseaza valoarea zilnica, dar numai daca aceasta valoare este mai mare de 5.000.000 lei.

SELECT Data, SUM(val);

FROM Facturi;

GROUP BY Data;

HAVING SUM(val)>5000000

Care sunt agentii pentru care in facturi exista mai mult de doua pozitii pentru un produs furnizat?

SELECT nume;

FROM Agenti;

WHERE cod IN;

(SELECT cod;

FROM FACTURI;

GROUP BY tip, cod;

HAVING COUNT(*)>2)




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright