Главная страница
Навигация по странице:

  • Тип номера (

  • Каково среднее количество мест в номерах гостиницы

  • Продавцы

  • Заказы

  • Клиент (Код клиента, Фамилия, Имя, Отчество, Город) Проживает (


    Скачать 99.42 Kb.
    НазваниеКлиент (Код клиента, Фамилия, Имя, Отчество, Город) Проживает (
    Дата03.11.2022
    Размер99.42 Kb.
    Формат файлаdocx
    Имя файлаKR BD Rodionov V.V..docx
    ТипКонтрольная работа
    #769059

    Контрольная работа


    Создадим базу данных:

    Клиент (Код_клиента, Фамилия, Имя, Отчество, Город);

    Проживает (Код_клиента ,Номер, Дата_прибытия, Дата_убытия);

    Номер (Номер, Число мест, Этаж);

    Тип номера (Число мест, Цена);

    SQL код:

    create table client (

    idClient int identity(1,1) primary key,

    firstname varchar(50) null,

    name varchar(50) null,

    middleName varchar(50) null,

    city varchar(50) null

    )

    create table reside(

    idClient int null,

    room int null,

    dateStart date null,

    dateFinish date null

    )

    create table room(

    room int primary key,

    countPlace int null,

    levelRoom int null,

    )

    create table typeRoom(

    countPlace int primary key,

    price int null

    )

    Схема базы данных приведена на рисунке 1.



    Рисунок 1 – схема базы данных

    База данных была заполнена тестовыми данными.

    Необходимо создать запросы к базе данных.

    Выдать список номеров пятого этажа.

    SQL код:

    select room

    from room

    where levelRoom = 5

    результат запроса на рисунке 2.



    Рисунок 2 – результат запроса

    Список номеров, в которых останавливался Суворов из Владимира.

    SQL код:

    select room

    from reside inner join client on reside.idClient = client.idClient

    where firstName = 'Суворов' and city = 'Владимир'

    Результат запроса на рисунке 3.



    Рисунок 3 – результат запроса


    Каково среднее количество мест в номерах гостиницы?

    SQL код:

    select avg(countPlace)

    from room

    Результат запроса на рисунке 4.



    Рисунок 4 – результат запроса

    Количество клиентов из каждого города, приезжающих в гостиницу.

    SQL код:

    select city, count(idClient)

    from client

    group by city

    Результат запроса на рисунке 5.



    Рисунок 5 – результат запроса

    Напишите запрос с подзапросом, который перечислит номера, цена проживания в которых не превышает 500 рублей.

    SQL код:

    select *

    from typeRoom

    where price < = ANY

    (select price

    from typeRoom

    where price < 500)

    Результат запроса на рисунке 6.



    Рисунок 6 – результат запроса

    Увеличьте цену проживания в гостинице на 15%.

    SQL код:

    update typeRoom

    set price = price/100*15

    Результат запроса на рисунке 6.



    Рисунок 7 – результат запроса

    Добавьте клиента Курочкина Афанасия Егоровича, прибывшего из Калуги, в таблицу КЛИЕНТ.

    SQL код:

    insert into client

    values

    ('Курочкин', 'Афанасий', 'Егорович', 'Калуга')

    Результат запроса на рисунке 8.



    Рисунок 8 – результат запроса

    Создадим базу данных:

    Продавцы (Код_продавца, ФИО_продавца, город _продавца, комиссионные_продавца, руководитель, план продаж);

    Заказчики (Код_заказчика, ФИО_заказчика, город_заказчика, рейтинг заказчика, сумма_кредита);

    Заказы (номер_заказа, сумма_заказа, дата_заказа, код_продавца, код_заказчика, код_товара, количество_в_заказе)

    Товар (Код_товара, Наименование_товара, цена, количество)

    SQL код:

    create table client(

    idClient int identity(1,1) primary key ,

    nameclient varchar(50) null,

    city varchar(50) null,

    rating int null,

    sumCredit int null)

    create table seller(

    idSeller int identity(1,1) primary key,

    nameSeller varchar(50) null,

    city varchar(50) null,

    commission int null,

    chif varchar(50) null,

    planSale int null)

    create table product(

    idProduct int identity(1,1) primary key,

    nameProduct varchar(50) null,

    price int null,

    countProduct int null)

    create table orders(

    idOrder int identity(1,1) primary key,

    sumOrder int null,

    dateOrder date null,

    idSeller int null,

    idClient int null,

    idProduct int null,

    countProduct int null)

    Схема базы данных представлена на рисунке 9.



    Рисунок 9 – схема базы данных

    Напишите представление, которое выводит список городов, в которых есть заказчики продавца Петрова.

    SQL код:

    create view cityPetrov

    as

    select client.city

    from orders inner join client on client.idClient = orders.idClient inner join seller on seller.idSeller = orders.idSeller

    where nameSeller like 'Петров%'

    Выборка из представления приведена на рисунке 10.



    Рисунок 10 – выборка из представления
    Напишите хранимую процедуру с параметрами, показывающую фамилии и сумму продаж продавцов, работающих под руководством указанного начальника.

    SQL код:

    create procedure chif(@nameChif varchar(50))

    as

    select nameSeller, sum(sumOrder)

    from orders inner join seller on seller.idSeller = orders.idSeller

    where chif = @nameChif

    group by nameSeller

    Вызов процедуры представлен на рисунке 11.



    Рисунок 11 – вызов процедуры

    Напишите триггер, который запрещает покупку, если она оформляется после 25 числа каждого месяца.

    SQL код:

    create trigger notOrder

    on Orders

    for insert, update

    as

    declare @day int
    set @day = (select datepart(dd, dateOrder) from inserted)
    if @day > 25

    begin

    rollback

    raiserror('нельзя осуществлять покупки после 25 числа',16,1,777)

    end
    Работа триггера представлена на рисунке 12.



    Рисунок 12 – работа триггера


    написать администратору сайта