Вы находитесь на странице: 1из 29

2.

Interogarea bazei de date

3.1 Crearea interogrilor ce exprim operaiile algebrei relaionale

Uniune
--sa se gaseasca producatorii celor mai scumpe usb cabluri sau casti.

SELECT Producator, headp.Model, Culoare, Pret FROM products, headp

WHERE headp.Model = products.Model AND Pret = (SELECT MAX(Pret) FROM headp)

UNION

SELECT Producator, usbc.Model, Culoare, Pret FROM products, usbc

WHERE usbc.Model = products.Model AND Pret = (SELECT MAX(Pret) FROM usbc)

Execuia acestei interogri este prezentat n figura 3.1.1.

Figura 3.1.1 - Rezultatul interogrii 1


Intersecie
--sa se gaseasca producatorii care produc usb cablu si mobile cu cel mai mic volum
ram.

SELECT Producator FROM products, usbc

WHERE usbc.Model = products.Model

INTERSECT

SELECT Producator FROM products, phone

WHERE phone.Model = products.Model AND

phone.Ram = (SELECT MIN(phone.Ram) FROM phone)


Execuia acestei interogri este prezentat n figura 3.1.2.

Figura 3.1.2 - Rezultatul interogrii 2

Diferena
--sa se gaseasca producatorii de casti ce nu produc mobile cu cel mai mic ram

SELECT Producator FROM products, headp

WHERE headp.Model = products.Model

EXCEPT

SELECT Producator FROM products, phone

WHERE phone.Model = products.Model AND

phone.Ram = (SELECT MIN(phone.Ram) FROM phone)


Execuia acestei interogri este prezentat n figura 3.1.3.

Figura 3.1.3 - Rezultatul interogrii 3

Produs cartezian
--produsul cartezial la mobilele cu ram > 2 si cablurile usb de tip 3+

SELECT * FROM (SELECT *

FROM phone WHERE Ram > 2.0) AS prim

CROSS JOIN (SELECT * FROM usbc WHERE Tip > 2.0) AS doi

Execuia acestei interogri este prezentat n figura 3.1.4.


Figura 3.1.4 - Rezultatul interogrii 4
Complement activ
--selectati produsele modile ale caror ID nu se intilneste in tabelul casti

select * from phone where ID not in (select ID from headp)

Execuia acestei interogri este prezentat n figura 3.1.5.

Figura 3.1.5 - Rezultatul interogrii 5

Jonciune teta
-- teta jonctiunea tabelelor phone si headp unde pretul mobilelor > pretul maxim
al castilor

SELECT *

FROM phone

INNER JOIN headp ON phone.Pret > (SELECT MAX(headp.Pret) FROM headp)

Execuia acestei interogri este prezentat n figura 3.1.6.


Figura 3.1.6 - Rezultaul interogrii 6

Jonciune natural
-- selectati modelul si producatorul ce produc telefoane mobile

SELECT products.Model, Producator


FROM products

JOIN phone ON products.Model = phone.Model

Execuia acestei interogri este prezentat n figura 3.1.7.

Figura 3.1.7 - Rezultatul interogrii 7

Jonciune extern
-- left outer join

SELECT Producator, products.Model, [Data fabricarii]

FROM products

LEFT OUTER JOIN phone ON products.Model = phone.Model

Execuia acestei interogri este prezentat n figura 3.1.8.


Figura 3.1.8 - Rezultatul interogrii 8
--right outer join

SELECT Producator, products.Model, [Data fabricarii]

FROM products

RIGHT OUTER JOIN phone ON products.Model = phone.Model

Execuia acestei interogri este prezentat n figura 3.1.9.

Figura 3.1.9 - Rezultatul interogrii 9

--full outer join

SELECT Producator, products.Model, [Data fabricarii]

FROM products

FULL OUTER JOIN phone ON products.Model = phone.Model

Execuia acestei interogri este prezentat n figura 3.1.10.


Figura 3.1.10 - Rezultatul interogrii 10
Semijonciune
--sa se selecteze producatorul, modelul si pretul castilor ce costa mai mult decit
5000 lei

SELECT products.Producator, products.Model, Pret

FROM products, headp

WHERE

products.Model = headp.Model

AND

headp.Pret > 5000

Execuia acestei interogri este prezentat n figura 3.1.11.

Figura 3.1.11 - Rezultatul interogrii 11

Divizare
--sa se selecteze producatorii ce produc usb cabluri ale caror preturi sunt mai
mici ca a mobilelor

SELECT DISTINCT x.Producator

FROM products AS x

WHERE EXISTS (

SELECT *

FROM phone AS y

WHERE EXISTS (

SELECT *

FROM usbc AS z
WHERE (z.Model=x.Model) AND (z.Pret <
y.Pret)))

Execuia acestei interogri este prezentat n figura 3.1.12.

Figura 3.1.12 - Rezultatul interogrii 12


3.2 Crearea interogrilor cu funcii de agregare

--afisati cantitatea, modelul, producatorul, suma totala pe modele si medie a


castilor

SELECT COUNT(*) AS number, headp.Model, Producator, SUM(Pret) AS sum_per_model,


AVG(Pret) AS avg_per_model

FROM

headp, products

WHERE

headp.Pret > (SELECT MIN(Pret) FROM phone)

AND

headp.Pret > (SELECT MAX(Pret) FROM usbc)

AND

headp.Model = products.Model

GROUP BY headp.Model, products.Producator

Execuia acestei interogri este prezentat n figura 3.2.1.

Figura 3.2.1 - Rezultatul interogrii 2.1

-- sa se afiseze producatorii ce produc mai mult de 2 produse

SELECT products.Producator, sec.num FROM products,

(SELECT COUNT(*) AS num, Producator FROM products GROUP BY Producator) AS sec

WHERE sec.num > 2 AND products.Producator = sec.Producator

GROUP BY products.Producator, sec.num


Execuia acestei interogri este prezentat n figura 3.2.2
.

Figura 3.2.2 - Rezultatul interogrii 2.2


--selectati modelul si suma totala a cablurilor usb pe model in parte

SELECT Model, SUM(Pret) AS Suma_totala FROM usbc

GROUP BY Model

Execuia acestei interogri este prezentat n figura 3.2.3.

Figura 3.2.3 - Rezultatul interogrii 2.3

3.3 Crearea interogrilor cu grupare


--interogare unirelatie, selectati modelul si suma totala a castilor care sunt
in cantitate >=2

SELECT Model, SUM(Pret) pret_total FROM headp

WHERE Pret > 100

GROUP BY Model

HAVING COUNT(*) > 1

Execuia acestei interogri este prezentat n figura 3.3.1


.
Figura 3.3.1 - Rezultatul interogrii 3.1

--interogare multirelatie, selectati producatorul, modelul si pretul castilor


cu pretul > 270

SELECT Producator, headp.Model, headp.Pret FROM headp, products

WHERE headp.Pret > 270

GROUP BY headp.Model, products.Model, headp.Pret, Producator

HAVING headp.Model = products.Model

Execuia acestei interogri este prezentat n figura 3.3.2


Figura 3.3.2 - Rezultatul interogrii 3.2

3.4 Subinterogri

--sa se gaseasca producatorii care produc cel putin 2 modele de mobile.

SELECT Producator, temp.Model, temp.numar_modele

FROM products,

(SELECT Model, COUNT (*) AS numar_modele FROM phone

WHERE

phone.Model IN (SELECT products.Model FROM products)

GROUP BY phone.Model) AS temp

WHERE temp.numar_modele >= 2 AND temp.Model = products.Model

Execuia acestei interogri este prezentat n figura 3.4.1


Figura 3.4.1 - Rezultatul interogrii 4.1

--selectati modelul si pretul cablurilor usb al caror pret

--este mai mare decit oarecare pret al castilor

SELECT Model, Pret

FROM usbc

WHERE Pret > ANY (SELECT Pret FROM headp)

Execuia acestei interogri este prezentat n figura 3.4.2


Figura 3.4.2 - Rezultatul interogrii 4.2

--selectati toate cablurile usb care au pretul mai mare ca la toate castile HTC

SELECT usbc.Model, Pret

FROM usbc

WHERE Pret > ALL (SELECT Pret FROM headp WHERE headp.Model IN (SELECT Model FROM
products WHERE Producator = 'HTC'))

Execuia acestei interogri este prezentat n figura 3.4.3

Figura 3.4.3 - Rezultatul interogrii 4.3

-- afisati modelele produsele si producatorii ce produc mobile mai scumpe decit


5000 lei

SELECT products.Producator, products.Model

FROM products

WHERE EXISTS (SELECT Model FROM phone WHERE Model = products.Model AND Pret >
5000);

Execuia acestei interogri este prezentat n figura 3.4.4


Figura 3.4.4 - Rezultatul interogrii 4.4
3.5 Subinterogri n alte locuri dect clauza WHERE

--pentru fiecare valoare a Camerei care depaseste 7.9 sa se calculeze

--pretul mediu al mobilelor cu aceiasi valoare a camerei.

SELECT AVG(m.Pret) AS Pret_med, m.Camera FROM

(SELECT Pret, Camera FROM phone

WHERE Camera >= 8.0) AS m

GROUP BY m.Camera

Execuia acestei interogri este prezentat n figura 3.5.1

Figura 3.5.1 - Rezultatul interogrii 5.1

--sa se gaseasca o valoare medie comuna a camerei pentru producatorii care produc
si usb cablu

SELECT AVG(tmp1.Camera) AS Cam_med FROM

(SELECT Camera, Producator FROM phone

INNER JOIN products

ON phone.Model = products.Model

GROUP BY phone.Camera, products.Producator) AS tmp1

INNER JOIN

(SELECT Producator FROM usbc

INNER JOIN products

ON usbc.Model = products.Model

GROUP BY products.Producator) AS tmp2

ON tmp1.Producator = tmp2.Producator

Execuia acestei interogri este prezentat n figura 3.5.2


Figura 3.5.2 - Rezultatul interogrii 5.2

--Afisarea producatorilor ce produc usb cabluri sau casti cu pretul nu mai mic
de 400 lei

SELECT temp.Producator FROM

(SELECT Producator, products.Tip, Pret FROM products, usbc


WHERE usbc.Model = products.Model AND Pret > 400

UNION ALL

SELECT Producator, products.Tip, Pret FROM products, headp

WHERE headp.Model = products.Model AND Pret > 400) AS temp

GROUP BY temp.Producator

Execuia acestei interogri este prezentat n figura 3.5.3

Figura 3.5.3 - Rezultatul interogarii 5.3

3.6 Crearea interogrilor de actualizare a relaiilor


--interogare 1 de stergere, sa se stearga castile care au pretul cel mai mare
din stoc

DELETE FROM headp

WHERE Pret IN (SELECT MAX(Pret) FROM headp)

Execuia acestei interogri este prezentat n figura 3.6.1


Figura 3.6.1 - Rezultatul interogrii 6.1

--interogare 2 de stergere, sa se stearga cablurile usb care costa mai putin ca


toate castile

DELETE FROM usbc

WHERE Pret < ALL (SELECT Pret FROM headp)

Execuia acestei interogri este prezentat n figura 3.6.2


Figura 3.6.2 - Rezultatul interogrii 6.2

--interogare 1 de actualizare, sa se actualizeze ramul si pretul la mobilele care


au pretul mai mic ca oricare pret al castilor si Modelul egal cu 1509

UPDATE phone

SET Ram = 2, Pret = 7200.00

WHERE Pret < ANY (SELECT Pret FROM headp) AND Model = 1509

Execuia acestei interogri este prezentat n figura 3.6.3

Figura 3.6.3 - Rezultatul interogrii 6.3

--interogarea 2 de actualizare, sa se actualizeze camera = 8.0 la mobilele ce


au modelul 1509

UPDATE phone

SET Camera = 8.0 WHERE Model = 1509

Execuia acestei interogri este prezentat n figura 3.6.4


Figura 3.6.4 - Rezultatul interogrii 6.4

3.7 Crearea procedurilor stocate

--proc1. Afisarea producatorilor ce produc usb cabluri sau casti cu pretul nu


mai mic de 300 lei

USE mobiles

GO

IF OBJECT_ID ('proc1' ,'P') IS NOT NULL DROP PROCEDURE proc1;

GO

CREATE PROCEDURE proc1

@Pret FLOAT = 300.0

AS

SELECT temp.Producator FROM

(SELECT Producator, products.Tip, Pret FROM products, usbc

WHERE usbc.Model = products.Model AND Pret > @Pret

UNION ALL

SELECT Producator, products.Tip, Pret FROM products, headp

WHERE headp.Model = products.Model AND Pret > @Pret) AS temp


GROUP BY temp.Producator

GO

EXECUTE proc1;

Execuia acestei proceduri este prezentat n figura 3.7.1

Figura 3.67.1 - Rezultatul procedurii 7.1

--proc2.Sa se afiseze Producatorul, Modelul si Pretul castilor ce depasesc o


anumita suma

USE mobiles

GO

IF OBJECT_ID ('proc2' ,'P') IS NOT NULL DROP PROCEDURE proc2;

GO

CREATE PROCEDURE proc2

@Pret FLOAT = 200.0

AS
SELECT products.Producator, products.Model, Pret

FROM products, headp

WHERE

products.Model = headp.Model

AND

headp.Pret > @Pret

GO

EXECUTE proc2 300;

Execuia acestei proceduri este prezentat n figura 3.7.2


Figura 3.67.2 - Rezultatul procedurii 7.2

Вам также может понравиться

  • Design Patterns
    Design Patterns
    Документ10 страниц
    Design Patterns
    DumitruGuba
    Оценок пока нет
  • Lab1 TS
    Lab1 TS
    Документ7 страниц
    Lab1 TS
    DumitruGuba
    Оценок пока нет
  • Lab9 Amsi
    Lab9 Amsi
    Документ10 страниц
    Lab9 Amsi
    DumitruGuba
    Оценок пока нет
  • Algoritmul de Criptografie DSA
    Algoritmul de Criptografie DSA
    Документ2 страницы
    Algoritmul de Criptografie DSA
    DumitruGuba
    Оценок пока нет
  • 5.2 Sabloane de Proiectare
    5.2 Sabloane de Proiectare
    Документ15 страниц
    5.2 Sabloane de Proiectare
    roxi1234ro
    Оценок пока нет
  • Lucrare de Laborator Nr4
    Lucrare de Laborator Nr4
    Документ3 страницы
    Lucrare de Laborator Nr4
    DumitruGuba
    Оценок пока нет
  • Lab3 Amsi
    Lab3 Amsi
    Документ6 страниц
    Lab3 Amsi
    DumitruGuba
    Оценок пока нет
  • Fișă de Post
    Fișă de Post
    Документ4 страницы
    Fișă de Post
    DumitruGuba
    Оценок пока нет
  • Indrumar
    Indrumar
    Документ26 страниц
    Indrumar
    Ion Damaschin
    Оценок пока нет
  • Lab2 Amsi
    Lab2 Amsi
    Документ6 страниц
    Lab2 Amsi
    DumitruGuba
    Оценок пока нет
  • Securitatea Si Sanatatea in Munca Ciclu Preleg DS
    Securitatea Si Sanatatea in Munca Ciclu Preleg DS
    Документ181 страница
    Securitatea Si Sanatatea in Munca Ciclu Preleg DS
    Maxim Gherea
    67% (3)
  • Teoria Jocurilor
    Teoria Jocurilor
    Документ2 страницы
    Teoria Jocurilor
    DumitruGuba
    Оценок пока нет
  • PAIIP Lab1
    PAIIP Lab1
    Документ9 страниц
    PAIIP Lab1
    DumitruGuba
    Оценок пока нет
  • Capitol 2 Baze de Date
    Capitol 2 Baze de Date
    Документ19 страниц
    Capitol 2 Baze de Date
    Luca Dorina
    Оценок пока нет
  • Capitol 1
    Capitol 1
    Документ9 страниц
    Capitol 1
    bbadarau3879
    Оценок пока нет
  • Mi-Testare 2
    Mi-Testare 2
    Документ11 страниц
    Mi-Testare 2
    DumitruGuba
    Оценок пока нет
  • Baze de Date Relationale
    Baze de Date Relationale
    Документ136 страниц
    Baze de Date Relationale
    Vlad Sirbu
    Оценок пока нет
  • Management 2006
    Management 2006
    Документ8 страниц
    Management 2006
    claunat
    100% (1)
  • 5.8 UML Diagrame de Stari
    5.8 UML Diagrame de Stari
    Документ9 страниц
    5.8 UML Diagrame de Stari
    DumitruGuba
    Оценок пока нет
  • Memorize
    Memorize
    Документ7 страниц
    Memorize
    DumitruGuba
    Оценок пока нет
  • All in One
    All in One
    Документ117 страниц
    All in One
    DumitruGuba
    Оценок пока нет
  • Temp Testing
    Temp Testing
    Документ12 страниц
    Temp Testing
    DumitruGuba
    Оценок пока нет
  • UML-Diagrame de Stare
    UML-Diagrame de Stare
    Документ17 страниц
    UML-Diagrame de Stare
    Valik1708
    Оценок пока нет
  • Fișă de Post
    Fișă de Post
    Документ4 страницы
    Fișă de Post
    DumitruGuba
    Оценок пока нет
  • var/www/apps/conversion/tmp/scratch - 6/338333058.doc p.1
    var/www/apps/conversion/tmp/scratch - 6/338333058.doc p.1
    Документ18 страниц
    var/www/apps/conversion/tmp/scratch - 6/338333058.doc p.1
    DumitruGuba
    Оценок пока нет
  • 27.11.16 10:03 /var/www/apps/conversion/tmp/scratch - 7/338332949.doc P
    27.11.16 10:03 /var/www/apps/conversion/tmp/scratch - 7/338332949.doc P
    Документ35 страниц
    27.11.16 10:03 /var/www/apps/conversion/tmp/scratch - 7/338332949.doc P
    DumitruGuba
    Оценок пока нет
  • SOMIPP Bilete
    SOMIPP Bilete
    Документ25 страниц
    SOMIPP Bilete
    DumitruGuba
    Оценок пока нет
  • 3.2 Modelarea Sistemelor Informatice
    3.2 Modelarea Sistemelor Informatice
    Документ28 страниц
    3.2 Modelarea Sistemelor Informatice
    Daniel Bota
    Оценок пока нет
  • Biletul 11
    Biletul 11
    Документ1 страница
    Biletul 11
    DumitruGuba
    Оценок пока нет