Создание таблиц и их привязка
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 );
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;
ALTER TABLE auto ADD FOREIGN KEY (markID) REFERENCES mark(markID); ALTER TABLE auto ADD FOREIGN KEY (kaigukastID) REFERENCES kaigukast(kaigukastID);
CREATE TABLE klient( klientID int not null primary key identity(1,1), kliendiNimi varchar(50), telefon varchar(20), aadress varchar(50), soiduKogemus varchar(30) )
CREATE TABLE rendiLeping( lepingID int not null primary key identity(1,1), rendiAlgus date, rendiLopp date, klientID int, regNumber varchar(6), rendiKestvus int, hindKokku decimal(5,2), tootajaID int )
CREATE TABLE tootaja( tootajaID int not null primary key identity(1,1), tootajaNimi varchar(50), ametID int)
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);
CREATE TABLE Amet( ametID int not null PRIMARY KEY identity(1,1), ametNimi varchar(20)) ALTER TABLE tootaja add FOREIGN KEY (ametID) REFERENCES amet(ametID)
Задание SELECT запросы
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.lepingID, 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

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-05-02' and '2022-05-12')

SELECT COUNT(auto.autoID) AS Autod, SUM(rendileping.hindKokku) AS Hind from rendiLeping, auto WHERE rendiAlgus between '2022-05-01' and '2022-10-01'

Задание создание процедур
Use autorentRozhkov; GO CREATE Procedure uusAutoMark @autoMark varchar(30) AS INSERT INTO mark(autoMark) VALUES (@autoMark); SELECT * FROM mark;

use autorentRozhkov; GO CREATE PROCEDURE EsimeseTaht @taht VARCHAR(1) AS BEGIN SELECT * FROM mark WHERE autoMark LIKE @taht + '%'; END;

use autorentRozhkov; GO CREATE PROCEDURE del @deleteID int AS BEGIN DELETE FROM mark WHERE markID=@deleteID; SELECT * FROM mark; END

use autorentRozhkov; GO CREATE PROCEDURE uuenda @updateID int, @uusMark NVARCHAR(20) AS BEGIN UPDATE mark SET autoMark=@uusMark WHERE markID=@updateID; SELECT * FROM mark; END
use autorentRozhkov; GO CREATE PROCEDURE kustutaLeping @kustutaID int AS BEGIN DELETE FROM rendiLeping WHERE lepingID=@kustutaID; SELECT * FROM rendiLeping END
use autorentRozhkov; GO CREATE PROCEDURE lisajauuendadaAmet @lisaAmet varchar(30), @uuendada varchar(30), @id int AS BEGIN INSERT INTO amet(ametNimi) VALUES (@lisaAmet); UPDATE amet SET ametNimi=@uuendada WHERE ametID=@id; SELECT * FROM amet; END
Задание создание пользователя и выдача ему прав





INSERT INTO rendileping (lepingID,rendiAlgus,rendiLopp,klientID,regNumber,rendiKestvus,hindKokku,tootajaID)
VALUES (‘5’, ‘2022-05-19′,’2022-05-20′,’3′,’321zxc’,’5′,’300′,’1′);