- Looge tabel Elektroonikapood, lisage sinna väljad – id, hind, toote tootja, mudel, elektroonika tüüp (telefon, arvuti jne).
- User, Kuupäev, andmed ja tegevus
- UPDATE, DELETE
- 1) Uue toote lisamine id järgi
2) Kustutamine id järgi
3) Artikli hinna otsimine, mis on madalam kui sisestatud number (nt otsi hind alla 20).
CREATE TABLE Elektroonikapood(
id int primary key identity(1,1),
hind int,
toote_tootja varchar(80),
mudel varchar(80),
elektronika_tüüp varchar(80))
CREATE TABLE logi( id int primary key identity(1,1),
kuupaev datetime,
kasutaja varchar(100),
andmed TEXT,
tegevus varchar(100));
insert into elektroonikapood(hind,toote_tootja,mudel,elektronika_tüüp)
values(1000,'apple','iphone 13','telephone');
Triger mis jälgib andmete uuendamine tabelis
CREATE TRIGGER elektroonikapoodUuendamine
ON elektroonikapood
FOR UPDATE
AS
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
SELECT GETDATE(), USER,
CONCAT('VANAD - ',
deleted.toote_tootja, ', ', deleted.elektronika_tüüp, deleted.mudel,
'UUED -',inserted.toote_tootja, ', ', inserted.elektronika_tüüp,inserted.mudel),
'elektroonikapood on uuendatud'
FROM deleted INNER JOIN inserted
ON deleted.id=inserted.id
--kontroll
SELECT * from elektroonikapood;
UPDATE elektroonikapood SET elektronika_tüüp = 'luca'
where id = 3;
SELECT * from elektroonikapood;
select * from logi;
Triger mis jälgib kustutamine tabelis
CREATE TRIGGER elektroonikapoodKustutamine
ON elektroonikapood
FOR DELETE
AS
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
SELECT GETDATE(), USER,
CONCAT(deleted.toote_tootja, ', ', deleted.mudel, ', ', deleted.elektronika_tüüp),
'elektroonikapood on kustatud'
FROM deleted
delete from elektroonikapood
where id = 2;

Proceduurid
andmete lisamise protseduur
CREATE PROCEDURE AddElektroonikaPood
@hind INT,
@toote_tootja VARCHAR(80),
@mudel VARCHAR(80),
@elektronika_tüüp VARCHAR(80)
AS
BEGIN
INSERT INTO Elektroonikapood (hind, toote_tootja, mudel, elektronika_tüüp)
VALUES (@hind, @toote_tootja, @mudel, @elektronika_tüüp);
END;
EXEC AddElektroonikaPood
@hind = 1000,
@toote_tootja = ‘Samsung’,
@mudel = ‘Galaxy S21’,
@elektronika_tüüp = ‘smartphone’;
protseduur, mis kustutab andmeid
CREATE PROCEDURE DeleteElektroonikaPood
@id INT
AS
BEGIN
DELETE FROM Elektroonikapood
WHERE id = @id;
END;
EXEC DeleteElektroonikaPood
@id = 1;
protseduur, mis otsib id järgi
CREATE PROCEDURE OotsiElektroonikaPood
@id INT
AS
BEGIN
SELECT *
FROM Elektroonikapood
WHERE id = @id;
END;
EXEC OotsiElektroonikaPood
@id = 3;
XAMPP
Создание таблиц
CREATE TABLE Elektroonikapood(
id int primary key AUTO_INCREMENT,
hind int,
toote_tootja varchar(80),
mudel varchar(80),
elektronika_tüüp varchar(80))
CREATE TABLE logi(
id int primary key AUTO_INCREMENT,
kuupaev datetime,
kasutaja varchar(100),
andmed TEXT,
tegevus varchar(100));
insert into elektroonikapood(hind,toote_tootja,mudel,elektronika_tüüp)
values(1000,'apple','iphone 13','telephone');
Triger mis jälgib andmete uuendamine tabelis


Triger mis jälgib kustutamine tabelis


andmete lisamise protseduur
DELIMITER //
CREATE PROCEDURE AddElektroonikaPoodItem(
IN p_hind INT,
IN p_toote_tootja VARCHAR(80),
IN p_mudel VARCHAR(80),
IN p_elektronika_tüüp VARCHAR(80)
)
BEGIN
INSERT INTO Elektroonikapood (hind, toote_tootja, mudel, elektronika_tüüp)
VALUES (p_hind, p_toote_tootja, p_mudel, p_elektronika_tüüp);
END //
DELIMITER ;

проверка

protseduur, mis kustutab andmeid
DELIMITER //
CREATE PROCEDURE DeleteElektroonikaPoodItemByID(
IN p_id INT
)
BEGIN
DELETE FROM Elektroonikapood WHERE id = p_id;
END //
DELIMITER ;

protseduur, mis otsib hind järgi
CREATE PROCEDURE ootsiElektroonikaPood(
IN p_max_price INT )
BEGIN SELECT * FROM Elektroonikapood
WHERE hind < p_max_price;
END;
Проверка

NEWNEWNEWNEW
CREATE TABLE Elektroonikapood(
id int primary key identity(1,1),
hind int,
toode varchar(80),
mudel varchar(80),
elektronika_tuup varchar(80))
CREATE TABLE logi( id int primary key identity(1,1),
kuupaev datetime,
kasutaja varchar(100),
andmed TEXT,
tegevus varchar(100));
CREATE TABLE Ladu (
toodeID INT PRIMARY KEY IDENTITY(1,1),
kogus INT,
elektronika_tuupID INT,
FOREIGN KEY (elektronika_tuupID) REFERENCES Elektroonikapood(id)
);
CREATE TRIGGER elektroonikaPoodUuendamine
ON Elektroonikapood
FOR UPDATE
AS
BEGIN
INSERT INTO logi (kuupaev, andmed, kasutaja, tegevus)
SELECT GETDATE(),
CONCAT('VANAD ANDMED: ', deleted.hind, ', ', deleted.toode, ', ', deleted.mudel, ', ', deleted.elektronika_tuup,
' UUED ANDMED: ', inserted.hind, ', ', inserted.toode, ', ', inserted.mudel, ', ', inserted.elektronika_tuup),
USER,
'Uuendati elektroonikapoodi'
FROM deleted
INNER JOIN inserted ON deleted.id = inserted.id;
END;
проверка
insert into Elektroonikapood(hind,toode,mudel,elektronika_tuup)
VALUES(1000,'iphone','12','smartphone');
select * from Elektroonikapood
select * from logi
insert into Ladu(kogus,elektronika_tuupID)
values(11,2)
UPDATE Elektroonikapood
SET hind = 1100,
toode = 'samsung',
mudel = 's22',
elektronika_tuup = 2
WHERE id = 1;

добавление
CREATE TRIGGER elektroonikapoodLisamine
ON Elektroonikapood
FOR INSERT
AS
BEGIN
INSERT INTO logi (kuupaev, andmed, kasutaja, tegevus)
SELECT GETDATE(),
CONCAT('Lisati uus kirje: hind - ', i.hind, ', toode - ', i.toode, ', elektronika_tuup - ', i.elektronika_tuup),
USER,
'Lisati uus kirje'
FROM inserted i;
END;
insert into Elektroonikapood(hind,toode,mudel,elektronika_tuup)
VALUES(1300,’iphone’,’13’,’smartphone’);

XAMPP



INSERT INTO logi (kuupaev, andmed, kasutaja, tegevus)
SELECT NOW(),
CONCAT('UUED ANDMED- ', e.hind, ', ', e.mudel, ', ', e.elektronika_tuup, ', ', l.elektronika_tuupID),
USER(),
'elektroonikapood on uuendatud'
FROM elektroonikapood e
INNER JOIN ladu l ON e.id = l.elektronika_tuupID
WHERE e.id = NEW.id
