CREATE TABLE auto(
autoID int not null Primary key IDENTITY(1,1),
regNumber
char(6) UNIQUE,
markID int,
varv varchar(20),
v_aasta int,
kaigukastID
int,
km decimal(6,2)
);
SELECT * FROM auto

CREATE TABLE mark(
markID int not null Primary key IDENTITY(1,1),
autoMark varchar(30) UNIQUE
);
select * from mark

INSERT INTO mark(autoMark)
VALUES ('Ziguli');
INSERT INTO mark(autoMark)
VALUES ('Lambordzini');
INSERT INTO mark(autoMark)
VALUES ('BMW');
SELECT * FROM mark;

CREATE TABLE kaigukast(
kaigukastID int not null Primary key IDENTITY(1,1),
kaigukast varchar(30) UNIQUE
);
INSERT INTO kaigukast(kaigukast)
VALUES ('Automaat');
INSERT INTO kaigukast(kaigukast)
VALUES ('Manual');
SELECT * FROM kaigukast;

CREATE TABLE klient(
klientID int not null Primary key IDENTITY(1,1),
kliendiNimi varchar(50),
telefon varchar(20),
aadress varchar(50),
soiduKogemus varchar(20),
);
select * from klient

CREATE TABLE amet(
ametiID int not null Primary key IDENTITY(1,1),
ametiNimi varchar(50),
);
SELECT * FROM amet

CREATE TABLE tootaja(
tootajaID int not null Primary key IDENTITY(1,1),
tootajaNimi varchar(50),
ametiID int
);
SELECT * FROM tootaja

CREATE TABLE rendiLeping(
lepingiID int not null Primary key IDENTITY(1,1),
rendiAlgus date,
rendiLopp date,
klientID int,
regNumber char(6),
rendiKestvus int,
hindKokku decimal(5,2),
tootajaID int
);
SELECT * FROM rendiLeping

ALTER TABLE rendiLeping
ADD FOREIGN KEY (klientID) REFERENCES klient(klientID);
ALTER TABLE rendiLeping
ADD FOREIGN KEY (tootajaID) REFERENCES tootaja(tootajaID);
ALTER TABLE rendiLeping
ADD FOREIGN KEY (regNumber) REFERENCES auto(regNumber);
ALTER TABLE tootaja
ADD FOREIGN KEY (ametiID) REFERENCES amet(ametiID);
ALTER TABLE auto
ADD FOREIGN KEY (markID) REFERENCES mark(markID);
ALTER TABLE auto
ADD FOREIGN KEY (kaigukastID) REFERENCES kaigukast(kaigukastID);

insert into auto(regNumber,markID,varv,v_aasta,kaigukastID,km)
values('758DAS',3,'valge','2006',1,'4412')
insert into auto(regNumber,markID,varv,v_aasta,kaigukastID,km)
values('689GJK',1,'roheline','2020',1,'9856')
insert into auto(regNumber,markID,varv,v_aasta,kaigukastID,km)
values('686HKL',2,'sinine','2007',2,'862')
insert into auto(regNumber,markID,varv,v_aasta,kaigukastID,km)
values('497JKL',1,'must','2023',2,'544')
select * from auto

INSERT INTO amet(ametiNimi)
VALUES ('Õpetaja');
INSERT INTO amet(ametiNimi)
VALUES ('Direktor');
INSERT INTO amet(ametiNimi)
VALUES ('Raamatupidaja');
INSERT INTO amet(ametiNimi)
VALUES ('Rahastaja');
select * from amet

insert into klient(kliendiNimi, telefon, aadress,soiduKogemus)
values ('Anna','55489349','Tooma tee 28','Meeldis')
insert into klient(kliendiNimi, telefon, aadress,soiduKogemus)
values ('Darja','553987692','Kentmanni tee 28','Meeldis')
insert into klient(kliendiNimi, telefon, aadress,soiduKogemus)
values ('Alina','553759827','Retke tee 24','Meeldis')
select * from klient

insert into tootaja (tootajaNimi, ametiID)
values ('Marti', 2)
insert into tootaja (tootajaNimi, ametiID)
values ('Maksim', 4)
insert into tootaja (tootajaNimi, ametiID)
values ('Laura', 1)
insert into tootaja (tootajaNimi, ametiID)
values ('Artur', 3)
select * from tootaja

select * from auto
INNER JOIN mark ON mark.markID=auto.markID
INNER JOIN kaigukast ON kaigukast.kaigukastID=auto.kaigukastID

SELECT auto.regNumber, kaigukast.kaigukast
FROM auto, kaigukast
Where kaigukast.kaigukastID=auto.kaigukastID

SELECT auto.regNumber, mark.autoMark
FROM auto
INNER JOIN mark ON mark.markID=auto.markID

SELECT klient.kliendiNimi, rendileping.lepingiID, auto.regNumber
FROM rendileping
INNER JOIN klient ON rendileping.klientID=klient.klientID
INNER JOIN auto ON rendileping.regNumber=auto.regNumber

SELECT kaigukast.kaigukast, Count(auto.autoId) AS kogus
FROM auto, kaigukast
Where auto.kaigukastId=kaigukast.kaigukastId
GROUP by kaigukast.kaigukast

insert into rendiLeping(rendiAlgus,rendiLopp,klientID,regNumber,rendiKestvus,hindKokku,tootajaID)
values ('2023-07-31','2023-08-26',1,'758DAS',26,500,3)
insert into rendiLeping(rendiAlgus,rendiLopp,klientID,regNumber,rendiKestvus,hindKokku,tootajaID)
values ('2023-06-10','2023-06-20',2,'689GJK',10,750,1)
insert into rendiLeping(rendiAlgus,rendiLopp,klientID,regNumber,rendiKestvus,hindKokku,tootajaID)
values ('2023-05-31','2023-06-22',3,'686HKL',22,418,2)
select * from rendiLeping

SELECT auto.regNumber, tootaja.tootajaNimi
from auto, tootaja, rendileping
where tootaja.tootajaId=rendileping.tootajaId and rendileping.regNumber=auto.regNumber

SELECT auto.regNumber, tootaja.tootajaNimi
from auto, tootaja, rendileping
where tootaja.tootajaId=rendileping.tootajaId and rendileping.regNumber=auto.regNumber
and (rendileping.rendiAlgus between '2022-01-10' and '2023-07-12')

Создание пользователя tootaja


use miljukova_autorent;
grant select to tootaja;
grant insert on rendileping to tootaja;

select * from auto

drop table auto

use autorentMiljukova;
go
create procedure LepinguKustutaminee
@kustutaID int
as
begin
select * from rendiLeping;
delete from rendiLeping
where lepingiID=@kustutaID;
select * from rendiLeping;
end
exec LepinguKustutaminee @kustutaID=2;

use autorentMiljukova;
go
create procedure lisaAutod
@uusautoMark varchar(30)
as
begin
insert into mark(autoMark)
values(@uusautoMark);
select * from mark;
end
exec lisaAutod @uusautoMark='Toyota'

use autorentMiljukova;
go
create procedure lisaKliendid
@uusklient varchar(50),
@uustelefon varchar(20),
@uusaadress varchar(50),
@uusSoiduKogemus varchar(30)
as
begin
insert into klient(kliendiNimi, telefon, aadress,soiduKogemus)
values(@uusklient,@uustelefon,@uusaadress,@uusSoiduKogemus);
select * from klient;
end
exec lisaKliendid @uusklient = 'Diana' ,@uustelefon = '578279128' ,@uusaadress = 'Kentmanni tee 28' ,@uusSoiduKogemus = 'Meeldis'

use autorentMiljukova;
go
create procedure SuuremKui
@hind int
as
begin
select * from rendiLeping
where hindKokku > @hind;
end
exec SuuremKui @hind = 500
select * from rendiLeping;
