Back to posts Edit this post
Copy content

20 Jan 13:14

bd
CREATE TABLE Studenci ( Identyfikator NUMBER(4) GENERATED ALWAYS AS IDENTITY, Imie VARCHAR(30), Nazwisko VARCHAR(30), Kierunek VARCHAR(30), Album NUMBER(6) UNIQUE, Srednia NUMBER(5,2) CHECK (Srednia >= 0 AND Srednia <= 5), Stypendium NUMBER(4) CHECK (Stypendium >= 0 AND Stypendium <= 500), Data DATE CHECK (Data >= TO_DATE('2010-01-01', 'YYYY-MM-DD')) ); ALTER TABLE Studenci ADD CONSTRAINT PK_Studenci PRIMARY KEY (Identyfikator); INSERT INTO Studenci(Imie, Nazwisko, Kierunek, Album, Srednia, Stypendium, Data) VALUES ('Bartek', 'Gabruk', 'Teleinformatyka', 157546, 4.0, 100, TO_DATE('2015-10-10', 'YYYY-MM-DD')); INSERT INTO Studenci(Imie, Nazwisko, Kierunek, Album, Srednia, Stypendium, Data) VALUES ('Jan', 'Nowak', 'Teleinformatyka', 154040, 3.0, 200, TO_DATE('2017-10-10', 'YYYY-MM-DD')); INSERT INTO Studenci(Imie, Nazwisko, Kierunek, Album, Srednia, Stypendium, Data) VALUES ('Antoni', 'Kowalski', 'Zarzadzanie', 178090, 4.2, 250, TO_DATE('2012-08-08', 'YYYY-MM-DD')); INSERT INTO Studenci(Imie, Nazwisko, Kierunek, Album, Srednia, Stypendium, Data) VALUES ('Janusz', 'Poiotrowicz', 'Informatyka', 202020, 3.8, 100, TO_DATE('2012-02-03', 'YYYY-MM-DD')); select * from studenci order by Album ASC; SELECT * FROM Studenci WHERE Data BETWEEN TO_DATE('2015-01-01', 'YYYY-MM-DD') AND TO_DATE('2020-12-31', 'YYYY-MM-DD') ORDER BY Album ASC; UPDATE Studenci SET Stypendium = Stypendium * 1.25; SELECT * FROM ( SELECT * FROM Studenci ORDER BY Srednia DESC) WHERE ROWNUM BETWEEN 2 AND 4 ORDER BY Srednia DESC; SELECT Nazwisko, EXTRACT(YEAR FROM Data) AS Rok, EXTRACT(MONTH FROM Data) AS Miesiac, EXTRACT(DAY FROM Data) AS Dzien FROM Studenci WHERE Kierunek = 'Teleinformatyka'; SELECT Nazwisko, (SUBSTR(Kierunek, 1, 3) || Album) AS KOD FROM Studenci; SELECT Nazwisko, Stypendium, CASE WHEN Stypendium < 3000 THEN 'Mniejsze niż 3000 zł' WHEN Stypendium = 3000 THEN 'Równe 3000 zł' ELSE 'Większe niż 3000 zł' END AS Stypendium FROM Studenci; //zad10 SELECT Nazwisko, Album, FLOOR(MONTHS_BETWEEN(SYSDATE, Data)) AS Miesiace FROM Studenci; select MIN(Stypendium), AVG(Stypendium), MAX(Stypendium) FROM Studenci; select Kierunek, AVG(Stypendium), COUNT(*) AS liczba_studentow FROm Studenci group by Kierunek; SELECT Nazwisko FROM Studenci WHERE Data = (SELECT MIN(Data) FROM Studenci) FETCH FIRST 1 ROW ONLY; SELECT Kierunek FROM Studenci GROUP BY Kierunek HAVING COUNT(*) = ( SELECT MAX(Liczba) FROM ( SELECT COUNT(*) AS Liczba FROM Studenci GROUP BY Kierunek ) ); CREATE TABLE Przedmioty ( Identyfikator NUMBER(4) GENERATED ALWAYS AS IDENTITY PRIMARY KEY, Przedmiot VARCHAR(30) UNIQUE, Kierunek VARCHAR(30) NOT NULL, Egzamin VARCHAR(3), Wyklady NUMBER(6) DEFAULT 15, Laboratoria NUMBER(20) ); ALTER TABLE Studenci ADD CONSTRAINT CK_Kierunek CHECK (Kierunek IN ('Teleinformatyka', 'Informatyka', 'Elektronika')); INSERT INTO Przedmioty(Przedmiot, Kierunek, Egzamin, Wyklady, Laboratoria) VALUES ('bazy danych','Teleinformatyka','tak', 10, 15); INSERT INTO Przedmioty(Przedmiot, Kierunek, Egzamin, Wyklady, Laboratoria) VALUES ('Algorytmy','Informatyka','nie', 8, 8); INSERT INTO Przedmioty(Przedmiot, Kierunek, Egzamin, Wyklady, Laboratoria) VALUES ('Sieci','Informatyka','tak',12,12); INSERT INTO Przedmioty(Przedmiot, Kierunek, Egzamin, Wyklady, Laboratoria) VALUES ('programowanie','Teleinformatyka','nie', 14, 10); //zad 19 SELECT COUNT(*) AS liczba_studcentow FROM Studenci s JOIN Przedmioty p ON s.Kierunek = p.Kierunek WHERE p.Przedmiot = 'bazy danych'; //zad 20 select s.Nazwisko, COUNT(*) FROM Studenci s Join przedmioty p ON s.Kierunek = p.Kierunek;

No files