---
# System prepended metadata

title: Bazy Danych Lab 3

---

# 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;
```