zapytania SQL

1. Wyświetlić wszystkie informacje z tabeli przedmioty z wyjątkiem pola Opis.

Select Przedmiot_id, Nazwa, Rodzaj,Ects

From Przedmioty;

2. Wyświetlić podstawowe informacje o studenitach (Nazwisko, Imie, student_id) posortowane

malejąco wg nazwiska.

Select Student_id,Imie,Nazwisko

From Studenci

Order By Nazwisko desc;

3. Wyświetlić informacje (Nazwisko, Imie, Id) o wykładowcach z Lublina.

Select Wykladowca_id,Imie,Nazwisko

From Wykladowcy

Where Miasto ='Lublin';

Select Wykladowca_id,Imie,Nazwisko

From Wykladowcy

Where upper (miasto)=upper('lUblin')//po takim wpisaniu wielkość liter w '' nie ma znaczenia

4. Podać informacje, kiedy egzaminowany o id 0000049 zdawał egzaminy z poszczególnych

przedmiotów. Uporządkować informacje według czasu zdawania egzaminów. Zmienić format

wyświetlania daty tak, by wyświetlana była takŜe informacja o nazwie miesiąca, w którym

zdawano egzamin a kolejne elementy daty były oddzielone znakiem /.

SELECT COUNT (*)

FROM Studenci, Zaliczenia, Przedmioty // zlicza wszystkie (tu jest brak relacji miedzy tabelami)

SELECT *

FROM Studenci, Zaliczenia, Przedmioty // pokazuje wszystkie

SELECT Studenci.Student_id, Imie, Nazwisko, Przedmioty.Przedmiot_id, Nazwa, Data_zal

FROM Zaliczenia, Przedmioty, Studenci

WHERE Zaliczenia.Przedmiot_id = Przedmioty.Przedmiot_id

AND Zaliczenia.Student_id = Studenci.Student_id // zaczynamy powiazania

SELECT S.Student_id, Imie, Nazwisko, P1.Przedmiot_id, Nazwa, Data_zal

FROM Zaliczenia Q, Przedmioty P1, Studenci S

WHERE Q.Przedmiot_id = P1.Przedmiot_id

AND Q.Student_id = S.Student_id // wprowadzilismy aliasy (Zaliczenia zamieniamy na Q)

SELECT S.Student_id, Imie, Nazwisko, P1.Przedmiot_id, Nazwa, Data_zal

FROM Zaliczenia Q, Przedmioty P1, Studenci S

WHERE Q.Przedmiot_id = P1.Przedmiot_id

AND Q.Student_id = S.Student_id

AND S.Student_id='0000049'

SELECT S.Student_id, Nazwisko, Imie, P1.Przedmiot_id, Nazwa, Data_zal, TO_CHAR (Data_zal,'DD / Month / YYYY') Data // ta data na koncu daje nam nazwe w tabeli

FROM Zaliczenia Q, Przedmioty P1, Studenci S

WHERE Q.Przedmiot_id = P1.Przedmiot_id

AND Q.Student_id = S.Student_id

AND S.Student_id='0000049'

ORDER BY Data_zal

5. Z jakich przedmiotów przeprowadził egzaminy wykładowca o kodzie 0009 ?

select przedmiot_id

from zaliczenia

where wykładowca_id='0009'

-----------------------------------------

select distinct przedmiot_id (wyswietla ale nie powtarza)

from zaliczenia

where wykladowca_id='0009'

---------------------------------------

select distinct p.przedmiot_id, nazwa (przypisuje numer przedmiotu z nazwa)

from zaliczenia z, przedmioty p

where wykladowca_id='0009'

and z.przedmiot_id=p.przedmiot_id

----------------------------------------

select przedmiot_id, nazwa (odrzuca czesc rekordów z duzej tabeli)

from przedmioty wykonuje sie duzo razy

where przedmiot_id in

(select distinct przedmiot_id

from zaliczenia

where wykładowca_id='0009')

--------------------------------------------

select p.przedmiot_id, nazwa (szybsze działanie, )

from przedmioty p,

(select distinct przedmiot_id

from zaliczenia

where wykładowca_id='0009') x

where p.przedmiot_id=x.przedmiot_id

----------------------------------------

select p.przedmiot_id, nazwa, w.wykładowca_id,nazwisko,imie

from przedmioty p, wykłądowcy w,

(select distinct przedmiot_id, wykładowca_id

from zaliczenia

where wykładowca_id='0007') x

where p.przedmiot_id=x.przedmiot_id

and x.wykladowca_id=w.wykladowca_id

-------------------------------------------

6. Jakie osoby były egzaminowane przez wykładowcę o kodzie 0001 ?

select student_id (wyswietli liste studentów po id)

from zaliczenia

where wykładowca_id='0001'

------------------------------------------

select s.student_id, nazwisko,imie (wyswietli nazwisko i imie i _id)

from zaliczenia z, studenci s

where wykładowca_id='0001'

and z.Student_id=s.Student_id

-------------------------------------------

select distinct s.student_id, s.nazwisko,s.imie ,w.wykladowca_id, w.nazwisko, w.imie

from zaliczenia z, studenci s, wykladowcy w

where w.wykładowca_id='0001'

and z.Student_id=s.Student_id

and w.wykladowca_id=z.wykladowca_id

--------------------------------------

7. Podać informację, w jakie dni tygodnia student o id 0000060 zdawał poszczególne przedmioty.

select s.student_id, nazwisko,imie, p.przedmiot_id,nazwa (wyswietla nazwe)

data_zal

from zaliczenia z, studenci s, przedmioty p

where z.student_id=s.student_id

and s.student_id='0000060'

and p.przedmiot_id=z.przedmiot_id

--------------------------------------------------

select s.student_id, nazwisko,imie, p.przedmiot_id,nazwa, (to_char wyswietla dzien tygodnia)

to_char(data_zal,'day')

from zaliczenia z, studenci s, przedmioty p

where z.student_id=s.student_id

and s.student_id='0000060'

and p.przedmiot_id=z.przedmiot_id

8. Wyświetlić informację, kto, jaki przedmiot i kiedy zdawał w okresie od 20 kwietnia 2009 do 20

maja 2009.

Select S.Student_id,Nazwisko,Imie,P.Nazwa,TO_CHAR(Z.Data_zal,'Day/Month/YYYY')

from Przedmioty P, Zaliczenia Z,Studenci S

where Z.data_zal>'09/04/20' and Z.data_zal<'09/05/20'

and S.Student_id=Z.Student_id and Z.Przedmiot_id=P.Przedmiot_id;

9. Jakie przedmioty zdali juŜ egzaminowani o id 0000061 i 0500323 ?

select x.przedmiot_id, nazwa, u.Student_id, nazwisko||' '|| U.Imie as student, V.wynik

from Studenci U, Zaliczenia v, przedmioty x

where u.Student_id=v.student_id

and x.Przedmiot_id=V.Przedmiot_id

and u.student_id='0000061'

or v.student_id='0500323'

(Wyswietla liste studentów)

10. Wyświetlić tych studentów (Nazwisko, Imie, id), którzy jeszcze nie zdawali przedmiotu o id=7.

select Student_id

from zaliczenia

where Przedmiot_id=7

----------------------

select student_id, Nazwisko, imie

from Studenci

where Student_id not in

(select Student_id

from zaliczenia

where Przedmiot_id=7)

----------------------------------------------

11. Wyświetlić informacje o tych kierunkach (id, nazwa), z których nie przeprowadzono jeszcze

żadnego zaliczenia.

select Kierunek_id, nazwa

from kierunki

where kierunek_id not in

(

select kierunek_id

from zaliczenia)

12. Którzy wykładowcy mają nazwiska zaczynające się na literę B. Podać ich nazwisko, imię oraz

identyfikator ?

select Nazwisko, imie, wykladowca_id

from wykladowcy

where nazwisko like 'B%'

13. Podać jakie przedmioty zdawano kierunku numer 3 w miesiącu lipcu 2010 roku.

select distinct p.nazwa, p.przedmiot_id,k.kierunek_id, To_char(data_zal,'year month')

from zaliczenia z, przedmioty p,kierunki k

where z.przedmiot_id=p.przedmiot_id

and k.kierunek_id=z.kierunek_id

/*and to_char (data_zal,'yyyymm')='201007'

and k.kierunek_id=3*/

--------------------------------------------------------

14. Ile zaliczeń przeprowadził wykładowca o numerze 0036 ?

select w.wykladowca_id, Nazwisko,imie, z.*

from zaliczenia z, wykladowcy w

where z.wykladowca_id='0006'

--------------------------------------------

select w.wykladowca_id, Nazwisko,imie, count(*)

from zaliczenia z, wykladowcy w

where w.wykladowca_id in('0006','0001')

group by w.wykladowca_id, nazwisko, imie

-----------------------------------------------------

15. Podać datę pierwszego i ostatniego zaliczenia przeprowadzonego z kierunku o numerze 1.

select k.kierunek_id, nazwa, min(data_zal) pierwszy,

max(data_zal) ostatni

from kierunki k, zaliczenia z

where k.kierunek_id=z.kierunek_id and k.kierunek_id=1

group by k.kierunek_id, nazwa

16. W ilu zaliczeniach student o id 0500324 uzyskał pozytywny wynik ?

select S.student_id, Nazwisko, imie, count(*)

from studenci s,zaliczenia z

where s.student_id=z.student_id

and Wynik Like 'Z%'

and s.student_id='0500324'

group by s.student_id, nazwisko, imie

---------------------------------------

zad "wymyslone"

select S.student_id, Nazwisko, imie, count(*),

sum(case lower(bo zaliczony z małej litery) (wynik) when 'zaliczony' then 1 else 0 end) Zaliczone,

sum(case lower (wynik) when 'negatywny' then 1 else 0 end) Niezaliczone

from studenci s,zaliczenia z

where s.student_id=z.student_id

group by s.student_id, nazwisko, imie

---------------------------------------------------------------------------------------

17. Ile zaliczeń przeprowadzono z poszczególnych kierunków ?

select k.kierunek_id, nazwa, count(*)

from kierunki k, zaliczenia z

where k.kierunek_id=z.kierunek_id

group by k.kierunek_id, nazwa

----------------------------------------

select count(*) (wyswietla liczbe kierunków)

from kierunki

-------------------------------------------

select k.kierunek_id, nazwa, count(*) (net join)

from kierunki k left join zaliczenia z

on k.kierunek_id=z.kierunek_id

group by k.kierunek_id, nazwa

order by 1

------------------------------------------------

select k.kierunek_id, nazwa, count(*), (count zlicza wartosci nie puste) count(k.kierunek_id),count(z.kierunek_id)

from kierunki k left join zaliczenia z

on k.kierunek_id=z.kierunek_id

group by k.kierunek_id, nazwa

order by 1

----------------------------------------------------------

select k.kierunek_id, nazwa, count(*), z.kierunek_id, count(z.kierunek_id)

from kierunki k, zaliczenia z

where k.kierunek_id=z.kierunek_id(+)

group by k.kierunek_id, nazwa, z.kierunek_id

order by 1

-----------------------------------------------

18. Ile osób podeszło do zaliczenia z poszczególnych przedmiotów ?

select p.przedmiot_id, nazwa, count(*), count(z.student_id)

from przedmioty p, zaliczenia z

where z.przedmiot_id=p.przedmiot_id

group by p.przedmiot_id, nazwa

-------------------------------------------

insert into

przedmioty(przedmiot_id,nazwa) (dodanie wf)

values(8,'WF')

-------------------------------------------------------------------

19. Ile zaliczeń przeprowadzili poszczególni wykładowcy, uwzględnić wszystkich wykładowców?

select w.wykladowca_id, nazwisko ||''||Imie as wykładowca, count(data_zal) as liczba_zal

from wykladowcy w, zaliczenia z

where w.wykładowca_id=z.wykładowca_id(+) <- + wyswietli wszystkich nawet jak nie przeprowadzali zaliczenia

group by w.wykładowca_id, nazwisko, imie

----------------------------------------------------------------

insert into wykladowcy (wykladowca_id, nazwisko, imie)

values ('0098',' einstein','albert')

----------------------------------------------------------------

20. Którzy wykładowcy przeprowadzili więcej niż 10 zaliczeń?

select * from

(select w.wykladowca_id, nazwisko ||''||Imie as wykładowca, count(data_zal) as liczba_zal

from wykladowcy w, zaliczenia z

where w.wykładowca_id=z.wykładowca_id(+)

group by w.wykładowca_id, nazwisko, imie)x

where liczba_zal>10

-----------------------------------------------------------------------------

select w.wykladowca_id, nazwisko ||' '||Imie as wykładowca, count(data_zal) as liczba_zal

from wykladowcy w, zaliczenia z

where w.wykładowca_id=z.wykładowca_id(+)

group by w.wykładowca_id, nazwisko, imie

having count(data_zal) >10

------------------------------------------------------------------

21. Z których kierunków przeprowadzono więcej niŜ 7 zaliczeń ?

select k.kierunek_id, nazwa, count(*)

from zaliczenia z RIGHT JOIN kierunki k

on k.kierunek_id=z.kierunek_id

group by k.kierunek_id, nazwa

22. Jaki przedmiot był zaliczany przez więcej niŜ 5 studentów ?

-------------------------------------------------------------------

select p.przedmiot_id, Nazwa, Count(*), Count(z.student_id)

from przedmioty p, zaliczenia z

where p.przedmiot_id=z.przedmiot_id

Group by p.przedmiot_id, nazwa

------------------------------------------------------------------

select p.przedmiot_id, Nazwa, Count(*), Count(z.student_id), count(distinct z.student_id)

from przedmioty p, zaliczenia z

where p.przedmiot_id=z.przedmiot_id

Group by p.przedmiot_id, nazwa

--------------------------------

select p.przedmiot_id, Nazwa, Count(*), Count(z.student_id), count(distinct z.student_id)

from przedmioty p, zaliczenia z

where p.przedmiot_id=z.przedmiot_id

Group by p.przedmiot_id, nazwa

having count(distinct z.student_id)>5

23. Na ilu kierunkach studiuje kaŜdy ze studentów?

select student_id, count(kierunek_id), count(distinct kierunek_id)

from zaliczenia

group by student_id

--------------------------------

select student_id, count(kierunek_id) as L_zal , count(distinct kierunek_id) as L_kier

from zaliczenia

group by student_id

------------------------------

select s.student_id, nazwisko, imie, x.l_kier

from studenci s,

(select student_id, count(kierunek_id) as L_zal , count(distinct kierunek_id) as L_kier

from zaliczenia

group by student_id)x

where x.student_id=s.student_id

----------------------------------------------

select s.student_id, nazwisko, imie, x.l_kier, nvl(x.l_kier, 100)

from studenci s,

(select student_id, count(kierunek_id) as L_zal , count(distinct kierunek_id) as L_kier

from zaliczenia

group by student_id)x

where x.student_id(+)=s.student_id

-----------------------------------------------------------

select s.student_id, nazwisko, imie, count(distinct kierunek_id)

from studenci S, zaliczenia z

where s.student_id=z.student_id(+)

group by s.student_id, nazwisko, imie

-------------------------------------------------------------------

24. Ile punktów ECTS ma zgromadzone kaŜdy ze studentów?

select s.student_id, nazwisko, imie, sum(p.ects) l_ects

from studenci S, zaliczenia z, Przedmioty p

where s.student_id=z.student_id(+)

and z.przedmiot_id=p.przedmiot_id(+)

and z.wynik(+)='Zaliczony'

group by s.student_id, nazwisko, imie

select s.student_id, nazwisko, imie, sum(NVL(p.ects, 0)) l_ects

from studenci S, zaliczenia z, Przedmioty p

where s.student_id=z.student_id(+)

and z.przedmiot_id=p.przedmiot_id(+)

and z.wynik(+)='Zaliczony'

group by s.student_id, nazwisko, imie

-----------------------------------

25. Ilu studentów ukończyło poszczególne kierunki (zdobyło wymaganą liczbę punktów ECTS)?

select s.student_id, nazwisko, imie, sum(NVL(p.ects, 0)) l_ects, k.kierunek_id, k.nazwa, k.s_ects

from studenci S, zaliczenia z, Przedmioty p, kierunki k

where s.student_id=z.student_id and k.kierunek_id=z.kierunek_id

and z.przedmiot_id=p.przedmiot_id

and z.wynik='Zaliczony'

group by s.student_id, nazwisko, imie,k.kierunek_id, k.nazwa, k.s_ects

------------------------------------------------------------------------------

select s.student_id, nazwisko, imie, sum(NVL(p.ects, 0)) l_ects, k.kierunek_id, k.nazwa, k.s_ects

from studenci S, zaliczenia z, Przedmioty p, kierunki k

where s.student_id=z.student_id and k.kierunek_id=z.kierunek_id

and z.przedmiot_id=p.przedmiot_id

and z.wynik='Zaliczony'

group by s.student_id, nazwisko, imie,k.kierunek_id, k.nazwa, k.s_ects

having sum(nvl(p.ects,0))>0.5*s_ects

------------------------------------------------------------------

26. Jaka jest średnia wyników zaliczeń dla poszczególnych kierunków, za rok 2009?

select avg(NVL(p.ects, 0)) l_ects, k.kierunek_id, k.nazwa, k.s_ects

from studenci S, zaliczenia z, Przedmioty p, kierunki k

where s.student_id=z.student_id and k.kierunek_id=z.kierunek_id

and z.przedmiot_id=p.przedmiot_id

and z.wynik='Zaliczony'

group by k.kierunek_id, k.nazwa, k.s_ects

----------------------------------------------------------------

select avg(NVL(p.ects, 0)) l_ects, k.kierunek_id, k.nazwa, k.s_ects

from zaliczenia z, Przedmioty p, kierunki k

where k.kierunek_id=z.kierunek_id

and z.przedmiot_id=p.przedmiot_id

and z.wynik='Zaliczony'

group by k.kierunek_id, k.nazwa, k.s_ects

----------------------------------------------------------------------

select avg(NVL(p.ects, 0)) l_ects, k.kierunek_id, k.nazwa, k.s_ects

from zaliczenia z, Przedmioty p, kierunki k

where to_char(data_zal,'yyyy')='2009' and k.kierunek_id=z.kierunek_id

and z.przedmiot_id=p.przedmiot_id

and z.wynik='Zaliczony'

group by k.kierunek_id, k.nazwa, k.s_ects

27. Podać datę pierwszego i ostatniego zaliczenia przeprowadzonego na kierunku „Gry i

multimedia”

select nazwa,k.kierunek_id, min(data_zal) pierwszy, max(data_zal) ostatni

from kierunki k, zaliczenia z

where k.kierunek_id=z.kierunek_id

and nazwa like 'G%'

group by nazwa, k.kierunek_id

-----------------------------------------------

select nazwa,k.kierunek_id, min(data_zal) pierwszy, max(data_zal) ostatni

from kierunki k, zaliczenia z

where k.kierunek_id=z.kierunek_id

and nazwa like 'G%ia'

group by nazwa, k.kierunek_id

28. W którym miesiącu i którego roku przeprowadzono najwięcej zaliczeń?

select to_char(data_zal,'yyyy month') okres, count(*) l_zal

from zaliczenia

group by to_char(data_zal,'yyyy month')

-----------------------------------------------------------

select max(count(*))

from zaliczenia

group by to_char(data_zal,'yyyy month')

-------------------------------------------------------------------

select to_char(data_zal,'yyyy mm') okres, count(*) l_zaliczenia

from zaliczenia

group by to_char(data_zal,'yyyy mm')

having count(*)=

(select max(count(*))

from zaliczenia

group by to_char(data_zal,'yyyy month'))

------------------------------------------------------------------

29. Który wykładowca przeprowadził najwięcej zaliczeń z poszczególnych przedmiotów?

select wykladowca_id, nazwisko, imie, p.przedmiot_id, nazwa, count(*)

from wykladowcy w, zaliczenia z, przedmioty p

where w.wykladowca_id=z.wykladowca_id

and z.przedmiot_id=p.przedmiot_id

group by w.wykladowca_id, nazwisko, imie, p.przedmiot_id, nazwa

having count(*)=(select max(count(*)) from zaliczenia x

where x.przedmiot_id=p.przedmiot_id

group by x.wykladowca_id)


Wyszukiwarka

Podobne podstrony:
rozne, SBD zapytania sql PL, I
rozne, SBD zapytania sql PL, I
Zapytania SQL, powtórzenie materiału
Optymalizacja zapytań w SQL
Zapytania SQL PL, pjwstk PJLinka.pl, SBD
Zapytania SQL, Szkoła, MS SQL
zapytania SQL, PJWSTK, 0sem, SBD
Wykorzystanie błędów w zapytaniach sql, DZIAŁ IT, Doc HACK
Zapytania SQL, I
rozne, SBD zapytania sql rozwiazania PL, Zapytania SQL rozwiązane
Bazy Danych Jezyk Zapytan SQL Programowanie Proceduralne 2 id
Optymalizacja zapytań SQL
OKLADKA Optymalizacja zapytan SQL indd optymalizacja zapytan SQL
Cachowanie zapytań SQL
Zapytania w jezyku SQL ref 3
SQL Jak osiagnac mistrzostwo w konstruowaniu zapytan sqljak

więcej podobnych podstron