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'

