1. Päringud
1.1 Koosta päring, mis kuvab kõik tooted koos nende kategooriate nimedega.

1.2 Leia kõige kallim toode igast kategooriast.

1.3 Kuvada kõik kategooriad ja nende toodete arv.

1.4 Leia toodete keskmine hind kategooria kaupa.

1.5 Kuvada ainult need kategooriad, kus pole ühtegi toodet.

1.6 Leia kõik tooted, mille hind on suurem kui tabeli keskmine hind.

2. Vaated (VIEW)
2.1 Vaade, mis kuvab toote nime ja hinda

2.2 Vaade, mis näitab kõiki tooteid koos kategooria nimega

2.3. Loo vaade, mis kuvab ainult aktiivseid (nt saadaval olevaid) tooteid.

2.4 Loo vaade, mis koondab info: kategooria nimi, toodete arv, minimaalne ja maksimaalne hind.

2.5 Loo vaade, mis arvutab toode käibemaksu (24%) ja iga toode hind käibemaksuga.

3. Protseduurid (STORED PROCEDURES)
3.1 Loo protseduur, mis lisab uue toote (sisendparameetrid: tootenimi, hind, kategooriaID).

3.2 Loo protseduur, mis uuendab toote hinda vastavalt tooteID-le.

3.3 Loo protseduur, mis kustutab toote ID järgi.

3.4 Loo protseduur, mis tagastab kõik tooted valitud kategooriaID järgi.

3.5 Loo protseduur, mis tõstab kõigi toodete hindu kindlas kategoorias kindla protsendi võrra.

3.6 Loo protseduur, mis kuvab kõige kallima toote kogu andmebaasis

4. KASUTAJAD ja ÕIGUSED
4.1, – 4.3 Loome kasutajad
CREATE LOGIN tootehaldur WITH PASSWORD = 'ParoolSUPER123!';
CREATE LOGIN kataloogihaldur WITH PASSWORD = 'ParoolSUPER223!';
CREATE LOGIN vaataja WITH PASSWORD = 'ParoolSUPER323!';
CREATE USER tootehaldur FOR LOGIN tootehaldur;
CREATE USER kataloogihaldur FOR LOGIN kataloogihaldur;
CREATE USER vaataja FOR LOGIN vaataja;
GRANT INSERT, UPDATE, DELETE ON toode TO tootehaldur;
GRANT INSERT, UPDATE, SELECT ON toodekategooria TO kataloogihaldur;
GRANT SELECT ON toode TO vaataja;
GRANT SELECT ON toodekategooria TO vaataja;
4.4 Kontrollime õigused päiringutega
4.4.1 toodehaldur
SELECT

INSERT

DELETE

UPDATE

4.4.2 Kataloogihaldur
SELECT:

INSERT:

DELETE:

UPDATE:

4.4.3 vaataja
SELECT:

INSERT:

DELETE:

5. Kontroll:

6: OMA ÜLESANNE
TRANSAKTSIOONID
CREATE TABLE TransaktioonTEST (
id INT IDENTITY(1,1) PRIMARY KEY,
nimi VARCHAR(50),
kogus INT
);
--alustame transaktsiooni
BEGIN TRANSACTION;
INSERT INTO TransaktioonTEST (nimi, kogus) VALUES ('Õun', 10);
INSERT INTO TransaktioonTEST (nimi, kogus) VALUES ('Banaan', 20);
-- Vaatame mis on praegu transaktioonis
SELECT * FROM TransaktioonTEST;
--kui kõik on hästi teeme commit ja andmed salvestatakse
COMMIT;
--kui on mingi viga me tagastame andmed
ROLLBACK;
kood:https://github.com/melon3000/Andmebaasid/blob/main/2kurs/Kordamis%C3%BClesanne2.sql
