# Bazy Danych Lab 3
## Zadanie 1
```sql=
CREATE TABLE postac ( id_postaci int auto_increment primary key,
nazwa varchar(40),
rodzaj enum('wiking', 'ptak', 'kobieta'),
data_ur date,
wiek int unsigned);
INSERT INTO postac VALUES (null, 'Bjorn', 'wiking', '2000-01-01', 22);
INSERT INTO postac VALUES (null, 'Drozd', 'ptak', '1995-01-01', 27);
INSERT INTO postac VALUES (null, 'Tesciowa', 'kobieta', '1994-01-01', 28);
UPDATE postac SET wiek = 88 WHERE id_postaci = 3;
```
## Zadanie 2
```sql=
CREATE TABLE walizka ( id_walizki int auto_increment primary key,
pojemnosc int unsigned,
kolor enum('rozowy', 'czerwony', 'teczowy', 'zolty'),
id_wlasciciela int,
foreign key (id_wlasciciela) references postac(id_postaci) ON DELETE CASCADE);
INSERT INTO walizka VALUES (null, 100, 'teczowy', '1');
INSERT INTO walizka VALUES (null, 20, 'rozowy', '3');
ALTER TABLE walizka ALTER kolor SET DEFAULT 'rozowy';
```
## Zadanie 3
```sql=
CREATE TABLE izba ( adres_budynku VARCHAR(250),
nazwa_izby VARCHAR(100),
metraz INT UNSIGNED,
id_wlasciciela INT,
FOREIGN KEY(id_wlasciciela) REFERENCES postac(id_postaci) ON DELETE SET NULL,
PRIMARY KEY(adres_budynku, nazwa_izby));
ALTER TABLE izba ADD COLUMN kolor enum('czarny', 'zolty', 'niebieski') DEFAULT 'czarny' AFTER metraz;
INSERT INTO izba VALUES ('Mila 15a', 'Spizarnia', '350', 'niebieski', 1);
```
## Zadanie 4
```sql=
CREATE TABLE przetwory ( id_przetworu INT AUTO_INCREMENT PRIMARY KEY,
rok_produkcji INT(4) DEFAULT 1654,
id_wykonawcy INT, zawartosc VARCHAR(250),
dodatek VARCHAR(50) DEFAULT 'chilli',
id_konsumenta INT,
FOREIGN KEY (id_wykonawcy) REFERENCES postac(id_postaci) ON DELETE CASCADE,
FOREIGN KEY (id_konsumenta) REFERENCES postac(id_postaci) ON DELETE CASCADE);
INSERT INTO przetwory VALUES (null, '1555', 1, 'bigos', default, 3);
```
## Zadanie 5
```sql=
INSERT INTO postac VALUES (null, 'Frigg', 'wiking', '1000-01-01', 1022),
(null, 'Torkel', 'wiking', '1001-01-01', 1023),
(null, 'Orval', 'wiking', '1002-01-01', 1024),
(null, 'Randel', 'wiking', '1000-01-01', 1022),
(null, 'Haldor', 'wiking', '1003-01-01', 1025),
(null, 'Gudbrand', 'wiking', '1004-01-01', 1026);
CREATE TABLE statek (nazwa_statku VARCHAR(100) PRIMARY KEY,
rodzaj_statku ENUM('lodz', 'slup', 'brygantyna', 'galeon'),
data_wodowania DATE, max_ladownosc INT UNSIGNED);
INSERT INTO statek VALUES ('Zelazny Ptaszek', 'brygantyna', '1005-01-01', 250), ('Malpia Brygada', 'slup', '1006-05-06', 50);
ALTER TABLE postac ADD COLUMN funkcja VARCHAR(50);
ALTER TABLE postac ALTER COLUMN funkcja SET DEFAULT 'majtek';
UPDATE postac SET funkcja = 'majtek';
UPDATE postac SET funkcja = 'kapitan' WHERE id_postaci = 1;
ALTER TABLE postac ADD COLUMN nazwa_statku VARCHAR(100);
ALTER TABLE postac ADD FOREIGN KEY (nazwa_statku) REFERENCES statek(nazwa_statku);
UPDATE postac SET nazwa_statku = 'Malpia Brygada' WHERE id_postaci BETWEEN 4 AND 9;
UPDATE postac SET nazwa_statku = 'Zelazny Ptaszek' WHERE id_postaci = 1 OR id_postaci = 2;
DELETE FROM izba WHERE nazwa_izby = 'Spizarnia';
DROP TABLE izba;
```