Создание таблицы auto
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

Создание таблицы mark
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;

Создание и заполнение таблицы kaigukast
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);

Создание таблицы klient
CREATE TABLE klient ( klientID INT PRIMARY KEY Identity(1,1), kliendiNimi VARCHAR(50), telefon VARCHAR(20), aadress VARCHAR(50), soiduKogemus VARCHAR(30) ); SELECT * FROM klient

Создание своей таблицы amet
CREATE TABLE amet ( ametID INT PRIMARY KEY Identity(1,1), ametiNimi VARCHAR(50) ); SELECT * FROM amet

Создание таблицы tootaja
CREATE TABLE tootaja ( tootajaID INT PRIMARY KEY IDENTITY (1,1), tootajaNimi VARCHAR(50), ametID INT, FOREIGN KEY (ametID) REFERENCES amet(ametID), ); SELECT * FROM tootaja

Создание таблицы rendiLeping
CREATE TABLE rendiLeping ( lepingID INT PRIMARY KEY IDENTITY (1,1), rendiAlgus DATE, rendiLopp DATE, klientID INT, regNumber CHAR(6) UNIQUE, rendiKestvus INT, hindKokku DECIMAL(5,2), tootajaID INT, FOREIGN KEY (klientID) REFERENCES Klient(klientID), FOREIGN KEY (regNumber) REFERENCES auto(regNumber), FOREIGN KEY (tootajaID) REFERENCES tootaja(tootajaID) ); SELECT * FROM rendiLeping

Диаграмма

SQL запросы
отображаем данные из трех таблиц с учетом вторичного ключа или связи между таблицами

в какой машине – какая коробка передач

Покажи в какой машине – какая марка машины, используй INNER JOIN

Отобрази по каждому клиенту все договора аренды машин и машины, которые были взяты в арендую

Покажи сколько машин с автом коробкой, сколько с мануальной.

Отобрази какие машины – какой работник отдал в аренду.

Отобрази какие машины – какой работник отдал в аренду в выбранный промежуток времени.

Найди общее количество машин отданных в аренду в определенный промежуток времени и их суммарную стоимость.

Добавление пользователя

Ограничение прав пользователя

USE [AUTORENT_Tsepelevits]; CREATE USER tootaja FOR LOGIN tootaja; GRANT SELECT, INSERT ON [dbo].[Rendileping] TO tootaja;
Процедуры

Добавление марки
CREATE PROCEDURE addMark @AutoMark VARCHAR(30) AS BEGIN INSERT INTO mark (autoMark) VALUES (@AutoMark) END GO

Добавление клиента
CREATE PROCEDURE addKlient @KliendiNimi VARCHAR(50), @Telefon VARCHAR(20), @Aadress VARCHAR(50), @SoiduKogemus VARCHAR(30) AS BEGIN INSERT INTO klient (kliendiNimi, telefon, aadress, soiduKogemus) VALUES (@KliendiNimi, @Telefon, @Aadress, @SoiduKogemus) END GO

Удаление контракта по ID
CREATE PROCEDURE DeleteContract @ContractID INT AS BEGIN DELETE FROM rendiLeping WHERE lepingID = @ContractID END GO

Обновление Клиента
CREATE PROCEDURE UpdateKlient @KlientID INT, @FirstName VARCHAR(50), @LastName VARCHAR(50), @Telefon VARCHAR(20), @Aadress VARCHAR(50), @SoiduKogemus VARCHAR(30) AS BEGIN UPDATE klient SET kliendiNimi = @FirstName + ' ' + @LastName, telefon = @Telefon, aadress = @Aadress, soiduKogemus = @SoiduKogemus WHERE klientID = @KlientID END GO