Loomine ja kasutamine uus andmebaas “HobusedDb”
CREATE DATABASE HobusedDb;
Loomine tabel “Hobused”
CREATE TABLE Hobused(
ID INT PRIMARY KEY AUTO_INCREMENT,
Nimi VARCHAR(50),
Vanus INT,
Kiirus DECIMAL(5,2));
Loomine tabel “Logi”
CREATE TABLE Logi(
ID INT PRIMARY KEY AUTO_INCREMENT,
Kuupaev DATETIME,
Andmed TEXT,
Kasutaja VARCHAR(40));
Loomine triger “HobuseLisa”
INSERT INTO Logi(Kuupaev, Andmed, Kasutaja)
VALUES (
NOW(),
CONCAT(
'Lisatud hobune: ', NEW.Nimi,
' | Vanus: ', NEW.Vanus,
' | ID: ', NEW.ID,
' | Ja kiirus: ', NEW.Kiirus),
USER()
)

Loomine triger “HobuseUuenda”
INSERT INTO Logi(Kuupaev, Andmed, Kasutaja)
VALUES (
NOW(),
CONCAT(
'Vana hobuse andmed: ', OLD.Nimi,
' | Vanus: ', OLD.Vanus,
' | ID: ', OLD.ID,
' | Ja kiirus: ', OLD.Kiirus,
' || Uued hobuse andmed: ', NEW.Nimi,
' | Vanus: ', NEW.Vanus,
' | ID: ', NEW.ID,
' | Ja kiirus: ', NEW.Kiirus),
USER()
)

Loomine triger “HobuseKustuta”
INSERT INTO Logi(Kuupaev, Andmed, Kasutaja)
VALUES (
NOW(),
CONCAT('Kustutatud hobune: ', OLD.Nimi,
' | Vanus: ', OLD.Vanus,
' | ID: ', OLD.ID,
' | Ja kiirus: ', OLD.Kiirus),
USER()
)

Kontrollimine
Lisamine andmed “Hobused” tabelisse
INSERT INTO Hobused(Nimi, Vanus, Kiirus)
VALUES ('Special Week', 4, 61),
('El Condor Pasa', 3, 64),
('Tokai Teio', 4, 64.3),
('TM Opera O', 4, 60.6),
('Hishi Amazon', 3, 71.6);
Lisamine Direktori Konto

Muuda Direktori õigused

Direktori õigused on ainult SELECT, UPDATE, DELETE Tabelis Hobused
Logi sisse Direktori konto


Direktor näeb ainult Hobused Tabel
Uuendamine andmed “Hobused” tabelis
UPDATE Hobused SET Nimi = 'Silence Suzuka', Vanus = 4, Kiirus = 75
WHERE Nimi = 'El Condor Pasa';
Kustutamine andmed “Hobused” tabelist
DELETE FROM Hobused WHERE ID = 5;
Vaatame Logi Tabel

Kasutatud root
2 seotud oma vahel tabelid
Loomine uus tabel
CREATE TABLE Ratsutaja(
RatsutajaID INT PRIMARY KEY AUTO_INCREMENT,
RatsutajaNimi VARCHAR(100) NOT NULL,
Rahvus VARCHAR(50),
Vanus INT
);
Tabeli “hobused” ja “ratsutaja” ühendamine
ALTER TABLE hobused
ADD RatsutajaID INT,
ADD FOREIGN KEY (RatsutajaID) REFERENCES ratsutaja(RatsutajaID);
Lisamine andmed “Ratsutaja” tabelisse
INSERT INTO ratsutaja(RatsutajaNimi, Rahvus, Vanus)
VALUES ('Yutaka Take', 'Japanese', 30),
('Yukio Okabe', 'Japanese', 43),
('Ryuji Wada', 'Japanese', 22);
Uuendamine Trigerid
INSERT
INSERT INTO Logi (Kuupaev, Andmed, Kasutaja)
SELECT
NOW(),
CONCAT(
'Lisatud hobune: ', NEW.Nimi,
' | Vanus: ', NEW.Vanus,
' | ID: ', NEW.ID,
' | Kiirus: ', NEW.Kiirus,
' | Ratsutaja: ', r.RatsutajaNimi
),
USER()
FROM hobused INNER JOIN ratsutaja r
ON hobused.RatsutajaID = r.RatsutajaID
WHERE hobused.ID = NEW.ID

UPDATE
INSERT INTO Logi (Kuupaev, Andmed, Kasutaja)
SELECT
NOW(),
CONCAT(
'Vana hobuse andmed: ', OLD.Nimi,
' | Vanus: ', OLD.Vanus,
' | Kiirus: ', OLD.Kiirus,
' | Ratsutaja Nimi: ', r1.RatsutajaNimi,
'\n | Uued hobuse andmed: ', NEW.Nimi,
' | Vanus: ', NEW.Vanus,
' | Kiirus: ', NEW.Kiirus,
' | Ratsutaja Nimi: ', r2.RatsutajaNimi
),
USER()
FROM hobused
INNER JOIN ratsutaja r1 ON OLD.RatsutajaID = r1.RatsutajaID
INNER JOIN ratsutaja r2 ON NEW.RatsutajaID = r2.RatsutajaID
WHERE NEW.ID = hobused.ID


DELETE
INSERT INTO Logi (Kuupaev, Andmed, Kasutaja)
SELECT
NOW(),
CONCAT(
'Kustutatud hobune: ', OLD.Nimi,
' | Vanus: ', OLD.Vanus,
' | Kiirus: ', OLD.Kiirus,
' | Ratsutaja Nimi: ', r.RatsutajaNimi
),
USER()
FROM hobused INNER JOIN ratsutaja r
ON hobused.RatsutajaID = r.RatsutajaID
WHERE hobused.ID = OLD.ID

Kontrollimine
Lisamine uus andmed (Kontrollimine INSERT triger)
Lisatud uus ratsutaja – ID: 4, RatsutajaNimi: Yasuo Iwata, Rahvus: Japanese, Vanus: 29
INSERT INTO hobused(Nimi, Vanus, Kiirus, RatsutajaID)
VALUES ('Symboli Rudolf', 3, 65, 4)
Tulemus

Kustutamine andmed (Kontrollimine DELETE triger)
DELETE FROM hobused WHERE ID = 6
ID: 6 on Symboli Rudolf andmed
Tulemus (Mul oli vigad, see on viimane SELECT tulemus)

Uuendamine andmed (Kontrollimine UPDATE triger)
Lisatud uus ratsutaja – ID: 5, RatsutajaNimi: Kenichi Ikezoe, Rahvus: Japanese, Vanus: 28
UPDATE hobused SET Nimi = 'Taiki Shuttle', Vanus = 4, Kiirus = 72, RatsutajaID = 5
WHERE Nimi = 'Silence Suzuka';
Tulemus
