
1 2 3 4 5 6 7 8 9 10 11 12 | 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 |

1 2 3 4 | CREATE TABLE mark( markID int not null Primary key IDENTITY(1,1), autoMark varchar (30) UNIQUE ); |

1 2 3 4 5 6 7 | INSERT INTO mark(autoMark) VALUES ( 'Ziguli' ); INSERT INTO mark(autoMark) VALUES ( 'Lambordzini' ); INSERT INTO mark(autoMark) VALUES ( 'BMW' ); SELECT * FROM mark; |

1 2 3 4 5 6 7 8 9 | 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; |

1 2 3 4 | ALTER TABLE auto ADD FOREIGN KEY (markID) REFERENCES mark(markID); ALTER TABLE auto ADD FOREIGN KEY (kaigukastID) REFERENCES kaigukast(kaigukastID); |

При помощи запросов Select выведи данные из связанных таблиц.
1 2 | select * from auto, mark, kaigukast where mark.markID=auto.markID and kaigukast.kaigukastID=auto.kaigukastID |

САМОСТОЯТЕЛЬНОЕ СОСТАВЛЕНИЕ SQL ЗАПРОСОВ

1 2 3 4 5 6 7 | Create Table klient( klientiID int not null Primary key IDENTITY(1,1), kliendiNimi varchar (50), telefon varchar (20), aadress varchar (50), soiduKogemus varchar (30), ) |

Minu tabel:
1 2 3 4 5 | Create table amet( ametiID int not null Primary key IDENTITY(1,1), ametinimi varchar (50), ) SELECT * FROM amet; |

1 2 3 4 5 6 | Create table tootaja ( totajaID int not null Primary key IDENTITY(1,1), tootajaNimi varchar (50), ametiId int , FOREIGN KEY (ametiId) REFERENCES amet(ametiId), ) |

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Create Table RendiLeping( lepingID int not null Primary key IDENTITY(1,1), rendiAlgus date , rendiLopp date , klientiID int , regNumber char (6), rendikestvus int , hindKokku decimal (5,2), tootajaId int , FOREIGN KEY (klientiId) REFERENCES klient(klientiId), FOREIGN KEY (tootajaId) REFERENCES tootaja(totajaID), Foreign Key (regNumber) References auto(regNumber), ) SELECT * FROM RendiLeping; |


INSERT.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | INSERT INTO auto (regNumber, markID, varv, v_aasta,kaigukastID,km) VALUES ( 'AAA777' ,1, 'Must' ,2005,1,5000); INSERT INTO auto (regNumber, markID, varv, v_aasta,kaigukastID,km) VALUES ( 'BBB777' ,2, 'Valge' ,2002,2,2500); INSERT INTO auto (regNumber, markID, varv, v_aasta,kaigukastID,km) VALUES ( 'CCC777' ,2, 'Punane' ,1995,2,500); INSERT INTO auto (regNumber, markID, varv, v_aasta,kaigukastID,km) VALUES ( 'DDD777' ,1, 'Rohelene' ,2015,1,1500); INSERT INTO auto (regNumber, markID, varv, v_aasta,kaigukastID,km) VALUES ( 'GGG777' ,3, 'Hele' ,2025,1,1000); SELECT * FROM auto; INSERT INTO RendiLeping(rendiAlgus, rendiLopp, klientiID, regNumber, rendikestvus, hindKokku, tootajaId) VALUES ( '2022-12-20' , '2022-10-02' , 1, 'GGG777' , 10, 120, 1); INSERT INTO RendiLeping(rendiAlgus, rendiLopp, klientiID, regNumber, rendikestvus, hindKokku, tootajaId) VALUES ( '2022-12-21' , '2022-10-02' , 3, 'AAA77' , 10, 120, 2); INSERT INTO RendiLeping(rendiAlgus, rendiLopp, klientiID, regNumber, rendikestvus, hindKokku, tootajaId) VALUES ( '2022-12-22' , '2022-10-02' , 2, 'BBB777' , 10, 120, 3); INSERT INTO RendiLeping(rendiAlgus, rendiLopp, klientiID, regNumber, rendikestvus, hindKokku, tootajaId) VALUES ( '2022-12-23' , '2022-10-02' , 4, 'CCC777' , 10, 120, 4); INSERT INTO RendiLeping(rendiAlgus, rendiLopp, klientiID, regNumber, rendikestvus, hindKokku, tootajaId) VALUES ( '2022-12-24' , '2022-10-02' , 5, 'DDD777' , 10, 120, 5); INSERT INTO klient(kliendiNimi,telefon,aadress,soiduKogemus) Values ( 'Artem' , '5533226655' , 'Kodus' , 'Hea' ); INSERT INTO klient(kliendiNimi,telefon,aadress,soiduKogemus) Values ( 'Daniil' , '554856416' , 'Kodus' , 'Hea' ); INSERT INTO klient(kliendiNimi,telefon,aadress,soiduKogemus) Values ( 'Ekaterina' , '58964353134' , 'Kodus' , 'Hea' ); INSERT INTO klient(kliendiNimi,telefon,aadress,soiduKogemus) Values ( 'Andrey' , '585624314' , 'Kodus' , 'Hea' ); INSERT INTO klient(kliendiNimi,telefon,aadress,soiduKogemus) Values ( 'Semen' , '5222222' , 'Kodus' , 'Hea' ); Insert Into tootaja(tootajaNimi,ametiId) Values ( 'Vlad' ,1); Insert Into tootaja(tootajaNimi,ametiId) Values ( 'Andrey' ,2); Insert Into tootaja(tootajaNimi,ametiId) Values ( 'Marija' ,3); Insert Into tootaja(tootajaNimi,ametiId) Values ( 'Oksana' ,4); Insert Into tootaja(tootajaNimi,ametiId) Values ( 'Vlad' ,5); Insert Into amet(ametinimi) Values ( 'Driver' ) Insert Into amet(ametinimi) Values ( 'Driver' ) Insert Into amet(ametinimi) Values ( 'Driver' ) Insert Into amet(ametinimi) Values ( 'Driver' ) Insert Into amet(ametinimi) Values ( 'Driver' ) |
Задания SELECT запросы.
1 2 3 4 | --Покажи в какой машине - какая коробка передач. SELECT auto.regNumber, kaigukast.kaigukast FROM auto, kaigukast Where kaigukast.kaigukastID=auto.kaigukastID |

1 2 3 4 | --Покажи в какой машине - какая марка машины, используй INNER JOIN SELECT auto.regNumber, mark.autoMark FROM auto INNER JOIN mark ON mark.markID=auto.markID |

1 2 3 4 5 | --Отобрази по каждому клиенту все договора аренды машин и машины, которые были взяты в арендую SELECT klient.kliendiNimi, rendileping.lepingId, auto.regNumber FROM rendileping INNER JOIN klient ON rendileping.klientiId=klient.klientiId INNER JOIN auto ON rendileping.regNumber=auto.regNumber |

1 2 3 4 5 | --Покажи сколько машин с автом коробкой, сколько с мануальной. SELECT kaigukast.kaigukast, Count (auto.autoId) AS kogus FROM auto, kaigukast Where auto.kaigukastId=kaigukast.kaigukastId GROUP by kaigukast.kaigukast |

1 2 3 4 | --Отобрази какие машины - какой работник отдал в аренду. SELECT auto.regNumber, tootaja.tootajaNimi from auto, tootaja, rendileping where tootaja.totajaId=rendileping.tootajaId and rendileping.regNumber=auto.regNumber |

1 2 3 4 5 | --Отобрази какие машины - какой работник отдал в аренду в выбранный промежуток времени. SELECT auto.regNumber, tootaja.tootajaNimi from auto, tootaja, rendileping where tootaja.totajaId=rendileping.tootajaId and rendileping.regNumber=auto.regNumber and (rendileping.rendiAlgus between '2021-01-10' and '2023-03-12' ) |

Найди общее количество машин отданных в аренду в определенный промежуток времени и их суммарную стоимость.
1 2 3 4 5 | --Найди общее количество машин отданных в аренду в определенный промежуток времени и их суммарную стоимость. SELECT COUNT (auto.autoId) AS kogus, SUM (RendiLeping.hindKokku) AS summa FROM auto, RendiLeping WHERE RendiLeping.lepingID = auto.autoId AND RendiLeping.rendiAlgus BETWEEN '2021-01-10' AND '2023-03-12' |

свой запрос - текст, sql, ответ
1 2 3 4 | --Посчитать всех пользователей с отзывом Hea SELECT COUNT (klient.klientiID) AS kogus FROM klient WHERE klient.soiduKogemus = 'Hea' |

Пользователи.


1 2 | -- Предоставление прав доступа к базе данных GRANT SELECT , INSERT ON [RendiLeping] TO [tootaja]; |




Процедуры.
- Составь процедуру для добавления новых марок машин и новых клиентов.
- Составь процедуру для удаления договора по его id.
- Свою процедуру на действие, отличное от ранее созданных.
1.
1 2 3 4 5 6 7 8 9 10 | CREATE PROCEDURE lisamark @markName varchar (50) AS BEGIN INSERT INTO mark (autoMark) VALUES (@markName); SELECT * FROM mark; END ; Exec lisamark @markName= 'Audi' |

1 2 3 4 5 6 7 8 9 10 11 12 13 14 | go create procedure lisakasutaja @firstName varchar (50), @email varchar (100), @phoneNumber varchar (20), @soiduKogemus varchar (20) As Begin INSERT INTO klient (kliendiNimi,telefon,aadress,soiduKogemus) VALUES (@firstName,@phoneNumber , @email, @soiduKogemus); Select * from klient; End Exec lisakasutaja @firstName= 'Grisha' ,@phoneNumber= '55555555' , @email= 'Grisha@gmail.com' , @soiduKogemus= 'Ei ole hea' |

2.
1 2 3 4 5 6 7 8 9 | CREATE PROCEDURE lepingeemaldus2 @mlepingID INT AS BEGIN SELECT * FROM RendiLeping; DELETE FROM RendiLeping WHERE lepingID = @mlepingID; SELECT * FROM RendiLeping; END |

3.
1 2 3 4 5 6 7 | CREATE PROCEDURE ShowAllCars AS BEGIN SELECT regNumber, markID, varv, v_aasta, kaigukastID, km FROM auto; END ; Exec ShowAllCars |
