Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- -- KOLOS JEST 14 STYCZNIA
- Zad 1
- -- te tabele mamy
- Przedmioty(idPrzedmiotu(klucz), Nazwa, IdProw)
- CREATE TABLE Przedmioty(
- IDprzedmiotu number(3) PRIMARY KEY,
- Nazwa varchar(30),
- IDProw number(2)
- );
- Studenci(Index(klucz), Nazwisko, Wydział)
- CREATE TABLE Studenci(
- Index number(6) PRIMARY KEY,
- Nazwisko varchar(30),
- Wydzial varchar(40)
- );
- a) zrób Egzaminy(ID_przed, Index, Ocena, Data) + PK + FK(2)
- CREATE TABLE Egzaminy(
- ID_przed REFERENCES IDPrzedmiotu(Przedmioty),
- Index REFERENCES Index(Studenci),
- Ocena NUMBER(2,1),
- Data DATE
- );
- lub mozna tak:
- CREATE TABLE Egzaminy(
- ID_przed number(3),
- Index number(6),
- Oceny NUMBER(2,1),
- Data DATE,
- CONSTRAINT PK Primary Key (ID_przed, Index, Oceny),
- CONSTRAINT FK1 FOREIGN KEY (ID_przed) REFERENCES Przedmioty(ID_przed),
- CONSTRAINT FK2 FOREIGN KEY (Index) REFERENCES Studenci(Index)
- );
- b) dla kazdego studenta podaj nazwisko, wydzial i srednia ocen z 2012r
- SELECT Nazwisko, Wydzial, (SELECT avg(ocena) FROM Egzaminy WHERE TO_CHAR(Data, 'YYYY') = '2012' AND Studenci.Index = Egzaminy.Index) AS srednia
- FROM Studenci;
- c) Dla kazdego prowadzacego co najmniej 3 przedmioty podaj IDProw i liczbe prowadzonych przedmiotow
- SELECT IDprow, count(*) FROM Przedmioty GROUP BY IDorzed HAVIONG COUNT(IDPrzed) >= 3;
- d) Podaj wydzial z maxymalna liczba studentow
- (SELECT deptno, count(*) ls FROM emp GROUP BY deptno) T;
- SELECT deptno, ls FORM (SELECT deptno, count(*) ls FROM emp GROUP BY deptno) T
- WHERE ls=(SELECT MAX(ls) FROM (SELECT deptno, count(*) ls FROM emp GROUP BY deptno));
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement