Bazy

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 6

ALTER TABLE autor RENAME TO autorzy - zmiana nazwy tabeli

1. Który student zdawał egzaminy w okresie od 1 stycznia 2018 do 30 marca 2018 z


przedmiotu Bazy Danych. Otrzymany wynik uporządkować według daty zdawania egzaminu
malejąco.

SELECT studenci.Imie, studenci.Nazwisko egzaminy.data_egz


FROM studenci, przedmioty, egzaminy
WHERE studenci.id_student=egzaminy.id_student
AND przedmioty.id_przedmiot=egzaminy.id_przedmiot
AND egzaminy.data_egz BETWEEN "2019-09-01" AND "2019-10-05"
AND przedmioty.nazwa LIKE "Systemy operacyjne"
ORDER BY egzaminy.data_egz DESC

2. Ile egzaminów przeprowadzono z każdego przedmiotu, nazwa przedmiotu i liczbe.

SELECT przedmioty.nazwa, COUNT(egzaminy.id_egzamin) AS "Liczba przedmiotow"


FROM egzaminy
INNER JOIN przedmioty
ON egzaminy.id_przedmiot = przedmioty.id_przedmiot
GROUP BY przedmioty.nazwa

3. Imię i Nazwisko wykładowców oraz liczbę egzaminowanych studentów

SELECT wykladowcy.Imie, wykladowcy.Nazwisko, COUNT(egzaminy.id_student)


AS "Liczba egzaminowanych studentow"
FROM egzaminy
INNER JOIN wykladowcy
ON egzaminy.id_wykladowca=wykladowcy.id_wykladowca
GROUP BY egzaminy.id_wykladowca

4. Wprowadż do tabeli studenci rekord o nowym studencie

INSERT INTO studenci (Data_ur, Imie, Nazwisko, Miejscowosc, Numer, Ulica)


VALUES ("1996-05-12", "Franek", "Przypadek", "Malochwiej Duzy", "12",
"Kwiatowa");

5. Stworzyć relacyjną bazę danych Biblioteka Uczelni min. 5 tabel

INSERT INTO autorzy (imie, nazwisko)


VALUES ("Adam", "Mickiewicz"), ("Juliusz", "Slowacki"), ("Joanne",
"Rowling"),
("Remigiusz","Mroz"), ("Jan","Brzechwa");

INSERT INTO gatunki (nazwa)


VALUES ("Powieść"), ("Dramat"), ("Kryminał"), ("Bajki"), ("Fantastyka");

INSERT INTO ksiazki (tytul, id_autora, id_gatunku, liczba_stron)


VALUES ("Harry Potter i Kamień Filozoficzny"), ("3"), ("3"), ("326"),
("Konrad Wallenrod"), ("1"), ("1"), ("88"),
("Balladyna"), ("2"), ("2"), ("170"),
("Wyrok"), ("4"), ("3"), ("544"),
("Brzechwa dzieciom. Dziela wszystkie. Bajki"), ("5"), ("4"), ("352") ;

INSERT INTO studenci (imie, nazwisko, data_ur, plec, rok_studiow)


VALUES ("Kazimierz", "Wielki", "1998-03-23", "m", "2"),
("Boleslaw", "Chrobry", "1997-04-13", "m", "3"),
("Jadwiga", "Andegawenska", "1997-12-04", "k", "3"),
("Kazimierz", "Odnowiciel", "2000-04-16", "m", "1"),
("Anna", "Jagielonka", "1996-10-18", "k", "4");

INSERT INTO wypozyczenie (id_student, id_ksiazka, data_wypozyczenia,


data_zwrotu)
VALUES ("1", "3", "2019-04-20", NULL ),
("1", "2", "2019-04-20", "2019-06-23"),
("2", "5", "2019-01-02", "2019-04-13"),
("3", "1", "2019-01-14", NULL),
("4", "3", "2019-03-30", "2019-05-27");

Relacje(przyklady)

ALTER TABLE wypozyczenie


ADD FOREIGN KEY (id_student) REFERENCES studenci(id_student);

ALTER TABLE ksiazki


ADD FOREIGN KEY (id_autora) REFERENCES autorzy(id_autora);

Ile ksiazek wypozyczyl kazdy student?

SELECT studenci.imie, studenci.nazwisko, COUNT(wypozyczenie.id_wypozyczenia)


AS "Liczba wypozyczonych ksiazek" FROM studenci INNER JOIN wypozyczenie
ON studenci.id_student=wypozyczenie.id_student
GROUP BY studenci.id_student

INSERT INTO dostawcy (imie, nazwisko, miejscowosc, telefon)


VALUES ("Adam", "Mickiewicz", "Lublin", "111222333"),
("Juliusz", "Slowacki", "Warszawa", "222333111"),
("Joanne", "Rowling", "Krakow", "332342211"),
("Remigiusz","Mroz", "Lublin", "332342232"),
("Jan","Brzechwa", "Warszawa", "534543344");

INSERT INTO dostawy (id_dostawcy, id_towaru)


VALUES ("1"),
("2"),
("3"),
("4"),
("5");

INSERT INTO klienci (imie, nazwisko, miejscowosc, telefon)


VALUES ("Krystian", "Mazur", "Lublin", "872490123"),
("Jakub", "Krzesiak", "Warszawa", "432525123"),
("Karol", "Norek", "Krakow", "886456345"),
("Anna","Przypadek", "Lublin", "984738647"),
("Joanna","Brzechwa", "Warszawa", "234872638");

INSERT INTO towary (nazwa, cena, ilosc)


VALUES ("Obejma kola podporowego klema 48 Winterhoff", "12,89", "8724"),
("Kolo podporowe do przyczepy Winterhoff ST 48-200 VB 150 Kg", "51,49",
"4325"),
("Stelaz z plandeka do przyczepy Home Trailer 200", "360,49", "8864"),
("Kolo 155/70 R13 kompletne do przyczep Unitrailer", "170,99" "984"),
("Zestaw lamp tylnych zespolonych Aspock Multipoint V LED prawa+lewa",
"236,79", "2348"),
("Lampa tylna zespolona Aspock Multipoint V LED lewa", "123,49", "1348"),
("Lampa tylna zespolona Aspock Multipoint V LED prawa", "123,49", "1000"),
("Błotnik do przyczepki pojedynczy AL-KO 13'' PCV ", "32,99", "2338");

INSERT INTO zamowienia (id_klienta, sposob_dostawy, forma_platnosci,


data_platnosci)
VALUES ("1", "34", "kurier DPD", "karta platnicza", "2019-04-20"),
("2", "inpost paczkomat", "karta platnicza", "2019-05-27"),
("3", "inpost paczkomat", "przelew", "2019-04-13"),
("4", "kurier DPD", "pobranie", "2019-06-23"),
("4", "kurier DPD", "pobranie", "2019-06-18"),
("5", "poczta polska", "przelew", "2019-05-15");

Wyswietlić imie i nazwisko studentów, którzy pisali więcej niż jeden egzamin.

SELECT studenci.imie, studenci.nazwisko, COUNT(egzaminy.id_egzamin) AS


'Liczba' FROM studenci
INNER JOIN egzaminy
ON studenci.id_student=egzaminy.id_egzamin
GROUP BY egzaminy.id_student
HAVING COUNT(egzaminy.id_egzamin) > 1

Imię i Nazwisko wykładowców którzy przeprowadzili egzamin z Fizyki(id=2)

SELECT wykladowcy.imie, wykladowcy.nazwisko


FROM egzaminy, wykladowcy, przedmioty
WHERE egzaminy.id_wykladowca=wykladowcy.id_wykladowca
AND przedmioty.id_przedmiot=egzaminy.id_przedmiot
AND przedmioty.id_przedmiot LIKE '2'
GROUP BY egzaminy.id_wykladowca

Utwórz tabele kopie wykladowcy, pesel ma mieć unikatowe

CREATE TABLE wykladowcy_kopia (


id_wykladowca_kopia INT PRIMARY KEY,
imie VARCHAR(50),
nazwisko VARCHAR(50),
miejscowosc VARCHAR(100),
id_przedmiot INT,
FOREIGN KEY(id_przedmiot) REFERENCES przedmioty(id_przedmiot),
pesel INT UNIQUE
);

INSERT INTO wykladowcy_kopia (id_wykladowca_kopia, imie, nazwisko,


miejscowosc, id_przedmiot, pesel)
VALUES ("1", "Mariusz", "Pudzianowski", "Warszawa", "2",
"84120293776"),
("2", "Tomasz", "Maziarczyk", "Lublin", "1", "90010926395"),
("3", "Anna", "Jagielonka", "Krakow", "5", "89101272326"),
("4", "Arkadiusz", "Kolewicz", "Lublin", "3", "79120293734"),
("5", "Urszula", "Zagowska", "Swidnik", "4", "80101057389");

INSERT INTO wykladowcy_kopia SELECT * FROM wykladowcy

Zmodyfikuj dane w tabeli studenci wstawiając wartość NULL w kolumnie miejscowosc

UPDATE studenci
SET miejscowosc = NULL;

Do tabeli przedmioty dodaj kolumne opis

ALTER TABLE przedmioty


ADD opis VARCHAR(255);

Usuń z tabeli wykladowcy wszystkich wykladowcow ktorych nazwiska zaczynają się na


litere M

DELETE FROM wykladowcy


WHERE nazwisko LIKE "M%"

Widok zakres dat w egzaminach

CREATE VIEW Widok AS


SELECT studenci.imie, studenci.nazwisko
FROM studenci
INNER JOIN egzaminy
ON studenci.id_student=egzaminy.id_student
WHERE egzaminy.data_egzaminu BETWEEN "2019-09-01" AND "2019-10-05";

Utworz perspektywe ograniczajaca widok do imion i nazwisk wykladowcow, ktorzy


przeprowadzili
egzaminy z przedmiotu fizyka

SELECT wykladowcy.imie, wykladowcy.nazwisko


FROM ((wykladowcy
INNER JOIN egzaminy ON wykladowcy.CustomerID = egzaminy.CustomerID)
INNER JOIN przedmioty ON wykladwocy.ShipperID = przedmioty.ShipperID);

CREATE VIEW widok2 AS


SELECT wykladowcy.imie, wykladowcy.nazwisko
FROM wykladowcy
INNER JOIN egzaminy
ON wykladowcy.id_wykladowca=egzaminy.id_wykladowca
INNER JOIN przedmioty
ON przedmioty.id_przedmiot=egzaminy.id_przedmiot
WHERE przedmioty.id_przedmiot LIKE '2';

NOWA BAZA

CREATE DATABASE Szpital_2;


ALTER DATABASE Szpital_2 CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE Pacjenci(
id_pacjent INT PRIMARY KEY AUTO_INCREMENT,
imie VARCHAR(50),
nazwisko VARCHAR(50),
miejscowosc VARCHAR(100),
data_urodzenia DATE,
pesel BIGINT UNIQUE,
plec VARCHAR(1)
);

CREATE TABLE Specjalizacje(


id_specjalizacja INT PRIMARY KEY AUTO_INCREMENT,
nazwa VARCHAR(50)
);

CREATE TABLE Lekarze(


id_lekarz INT PRIMARY KEY AUTO_INCREMENT,
imie VARCHAR(50),
nazwisko VARCHAR(50),
miejscowosc VARCHAR(100),
data_urodzenia DATE,
pesel BIGINT UNIQUE,
plec VARCHAR(1),
id_specjalizacja INT,
FOREIGN KEY(id_specjalizacja) REFERENCES
specjalizacje(id_specjalizacja)
);

CREATE TABLE Wizyty(


id_wizyta INT PRIMARY KEY AUTO_INCREMENT,
id_pacjent INT,
FOREIGN KEY(id_pacjent) REFERENCES pacjenci(id_pacjent),
data_wizyty DATE
);

CREATE TABLE Zabiegi(


id_zabieg INT PRIMARY KEY AUTO_INCREMENT,
nazwa VARCHAR(50),
id_pacjent INT,
FOREIGN KEY(id_pacjent) REFERENCES pacjenci(id_pacjent),
id_lekarz INT,
FOREIGN KEY(id_lekarz) REFERENCES lekarze(id_lekarz),
data_zabiegu DATE
);

INSERT INTO pacjenci (imie, nazwisko, miejscowosc, data_urodzenia, pesel, plec)


VALUES ("Krystian", "Mazur", "Lublin", "1989-01-30", "89013064774", "m"),
("Jakub", "Krzesiak", "Warszawa", "1991-11-10", "91111064232", "m"),
("Karol", "Norek", "Krakow", "1990-08-20", "90082060749", "m"),
("Anna","Przypadek", "Lublin", "1992-02-21", "92021693987", "k"),
("Joanna","Brzechwa", "Warszawa", "1987-05-12", "87051287344", "k");

INSERT INTO specjalizacje (nazwa)


VALUES ("Kardiolog"),
("Anestezjolog"),
("Neurolog"),
("Ginekolog"),
("Endokrynologia");

INSERT INTO lekarze (imie, nazwisko, miejscowosc, data_urodzenia, pesel, plec,


id_specjalizacja)
VALUES ("Marcin", "Tuba", "Lublin", "1969-05-13", "69051364774", "m", "1"),
("Jakub", "Gleska", "Warszawa", "1978-05-15", "78051564232", "m", "2"),
("Krzysztof", "Borek", "Krakow", "1975-06-01", "75060160749", "m", "4"),
("Bozena","Monitura", "Lublin", "1965-04-25", "65042593987", "k", "3"),
("Beata","Tuta", "Warszawa", "1980-04-28", "80042887344", "k", "1");

INSERT INTO Wizyty (id_pacjent, data_wizyty)


VALUES("1", "2019-05-15"),
("2", "2019-05-27"),
("3", "2019-04-13"),
("4", "2019-06-23"),
("5", "2019-06-18");

INSERT INTO Zabiegi (id_pacjent, id_lekarz, data_zabiegu)


VALUES("1", "2", "2019-05-15"),
("2", "2", "2019-05-27"),
("4", "3", "2019-04-13"),
("3", "4", "2019-06-23"),
("5", "5", "2019-06-18");

UPDATE zabiegi
SET nazwa = "Badanie USG"
WHERE id_pacjent LIKE "4";

UPDATE zabiegi
SET nazwa = "Tomografia glowy"
WHERE id_pacjent LIKE "3";

UPDATE zabiegi
SET nazwa = "Wprowadzenie w stan spiaczki"
WHERE id_pacjent LIKE "2";

UPDATE zabiegi
SET nazwa = "EKG"
WHERE id_pacjent LIKE "1";

UPDATE zabiegi
SET nazwa = "Badanie chloniakow"
WHERE id_pacjent LIKE "5";

You might also like