Loon tabelid
Create table logi( id int identity(1,1) PRIMARY KEY, aeg DATETIME, toiming varchar(100), andmed varchar(200), kasutaja varchar(200) ); CREATE TABLE maakond( maakondID int Primary KEY identity(1,1), maakond varchar(100) UNIQUE); INSERT INTO maakond(maakond) VALUES ('Harjumaa'); INSERT INTO maakond(maakond) VALUES ('Pärnumaa'); ----seoste loomine linnad-->maakond ALTER TABLE linnad ADD maakondID int; ALTER TABLE linnad ADD CONSTRAINT fk_maakond FOREIGN KEY (maakondID) References maakond(maakondID) SELECT * FROM maakond; SELECT * FROM linnad;
Loon loomise trigger
CREATE TRIGGER linnaLisamine On linnad FOR INSERT AS INSERT INTO logi(kasutaja, aeg, toiming, andmed) SELECT USER, GETDATE(), 'linn on lisatud', CONCAT(l.linnanimi, ', ', m.maakond) From linnad l Inner join maakond m ON m.maakondID=l.maakondID; ---kontroll INSERT INTO linnad(linnanimi, rahvaarv, maakondID) Values ('Tallinn', 436863, 1); SELECT * FROM linnad; SELECT * FROM logi;
Loon kustutamise trigger
CREATE TRIGGER linnaKustutamine On linnad FOR DELETE AS INSERT INTO logi(kasutaja, aeg, toiming, andmed) SELECT USER, GETDATE(), 'linn on kustutatud', CONCAT(deleted.linnanimi, ', ', m.maakond) From deleted Inner join maakond m ON deleted.maakondID=m.maakondID; ---kontroll DELETE FROM linnad WHERE linnID=1; SELECT * FROM linnad; SELECT * FROM logi;
Praktiline ülesanne (XAMPP)
loon andmebaas ja tabelid:
CREATE DATABASE filmidviblyy CREATE TABLE filmid ( filmID INT PRIMARY KEY AUTO_INCREMENT, filmNimi VARCHAR(255) NOT NULL, filmiAasta INT NOT NULL ); CREATE TABLE logi ( logiID INT PRIMARY KEY AUTO_INCREMENT, kasutaja VARCHAR(255) NOT NULL, kuupaev DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, sisestatudAndmed TEXT );
loon triger lisamiseks:

loon triger kustutamiseks:

Kasutaja loomine:

Ma andsin temale kõik võimalused, ja nüüd võttan kõik tema lubad ara tabelis logi:

Kontroll:
1: Login sisse nagu Bogdan:

2: Lisan ja kustutan andmeid tabelis filmid:




Praktiline ülesanne (SQL)
loon andmebaas ja tabelid:
CREATE DATABASE filmviblyy CREATE TABLE filmid ( filmID INT PRIMARY KEY IDENTITY(1, 1), filmNimi VARCHAR(255) NOT NULL, filmiAasta INT NOT NULL ); CREATE TABLE logi ( logiID INT PRIMARY KEY IDENTITY(1, 1), kasutaja VARCHAR(255) NOT NULL, kuupaev DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, sisestatudAndmed TEXT );
loon triger lisamiseks:
CREATE TRIGGER filmiLisamine ON filmid FOR INSERT AS INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed) SELECT USER, GETDATE(), CONCAT('lisatud andmed', inserted.filmNimi, ', ',inserted.filmiAasta) FROM inserted
loon triger kustutamiseks:
CREATE TRIGGER filmiKustutamine ON filmid FOR DELETE AS INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed) SELECT USER, GETDATE(), CONCAT('kustutatud andmed: ', deleted.filmNimi, ', ',deleted.filmiAasta) FROM deleted
Kasutaja loomine:


GRANT INSERT, DELETE ON filmid TO Bogdan;

Logime sisse nagu meie kasutaja

Kontroll
SELECT * FROM filmid

INSERT INTO filmid(filmNimi, filmiAasta) VALUES ('Interstellar', 2014);

DELETE FROM filmid WHERE filmNimi='Interstellar';

UPDATE filmid SET filmNimi = 'Joker 2' WHERE filmNimi = 'Interstellar'

