Autorent

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;