


Ваш цеплющий sql помогите емае
Разработать информационную систему содержащую базу данных и клиентское приложение «Учет подписки на периодические печатные издания»
Создать БД. Список таблиц: издания, получатели, доставка
Список полей: фио подписчика, улица, номер дома, номер квартиры, индекс издания по каталогу, вид издания (газета или журнал), название издания, цена 1 экземпляра, дата начала подписки, срок подписки (количество месяцев).
Создать запросы:
Выбирает из таблиц информацию о подписчиках, проживающих на улице «Садовая», которые оформили подписку на издание с индексом «12123» (можно использовать другие название улицы и индекс).
Выбирает из таблицы ИЗДАНИЯ информацию обо всех изданиях, для которых цена 1 экземпляра есть значение из некоторого диапазона. Нижняя и верхняя границы диапазона задаются при выполнении запроса.
Создает таблицу ПОЛУЧАТЕЛИ_ИЗВЕСТИЯ, содержащую информацию о получателях издания с наименованием «Известия».
Увеличивает значение в поле Цена 1 экземпляра таблицы КОПИЯ_ ИЗДАНИЯ на 10 процентов для изданий, имеющих вид издания «газета».
Создать форму для вывода данных из таблицы доставка\
Создать форму для добавления нового из
Разработать информационную систему содержащую базу данных и клиентское приложение «Учет сделок с недвижимостью»
Создать БД. Список таблиц: квартиры, риэлторы, сделки
Список полей: название улицы, номер дома, номер квартиры, площадь квартиры, количество комнат, дата сделки, цена квартиры, фио риэлтора, процент вознаграждения
Создать запросы:
Выбирает из таблицы КВАРТИРЫ информацию о 3-комнатных квартирах, расположенных на улице «Садовая».
Выбирает из таблицы КВАРТИРЫ информацию о квартирах с некоторым количеством комнат. Конкретное количество комнат вводится при выполнении запроса.
Выполняет группировку по полю Количество комнат. Для каждой группы вычисляет среднее значение по полю Площадь квартиры.
Создает таблицу КВАРТИРЫ_3_КОМН, содержащую информацию о 3-комнатных квартирах.
Создать форму для вывода данных из таблицы сделки
Создать форму для добавления новой квартиры
Разработать информационную систему содержащую базу данных и клиентское приложение «Учет договоров страхования»
Создать БД. Список таблиц: клиенты, страховые агенты, договоры
Список полей: фио клиента, процент скидки, вид страхования (страхование имущества, автомобиля, жизни и т.д.), тариф (зависит от вида страхования), сумма страхования, дата заключения договора, фамилия агента, имя агента, отчество агента,
процент вознаграждения
Создать запросы:
Выбирает из таблицы КЛИЕНТЫ информацию о клиентах с фамилией «Иванов».
Выбирает из таблицы АГЕНТЫ информацию о страховых агентах с некоторой фамилией. Фамилия вводится при выполнении запроса.
Выполняет группировку по полю Код агента в таблице ДОГОВОРЫ. Для каждой группы вычисляет среднее значение суммы страхования.
Создает копию таблицы АГЕНТЫ с именем КОПИЯ_АГЕНТЫ.
Создать форму для вывода данных из таблицы договоры
Создать форму для добавления нового клиента
Разработать информационную систему содержащую базу данных и клиентское приложение «Штатное расписание»
Создать БД. Список таблиц: подразделения, штатные единицы, распределение
штатных единиц
Список полей: название подразделения, тип подразделения (цех, отдел, бригада и т.д.), процент надбавки 1 (за вредные условия труда, зависит от подразделения, принимает значения от 0 до 100%), название должности, должностной оклад, процент надбавки 2 (за ненормированный рабочий день, устанавливается для конкретной штатной единицы от 0 до 100%), отпуск (количество дней отпуска в году, устанавливается для конкретной штатной единицы).
Создать запросы:
Выбирает из таблицы ПОДРАЗДЕЛЕНИЯ информацию о подразделениях, имеющих тип «отдел», для которых Процент надбавки 1 равен 50 %.
Выбирает из таблицы ПОДРАЗДЕЛЕНИЯ информацию о подразделениях, имеющих тип «цех», для которых Процент надбавки 1 имеет значение из некоторого заданного диапазона. Нижняя и верхняя границы диапазона задаются при выполнении запроса.
Выполняет группировку по полю Название штатной единицы в таблице ШТАТНЫЕ_ЕДИНИЦЫ. Для каждой группы вычисляет среднее значение оклада.
Создает копию таблицы ШТАТНЫЕ_ЕДИНИЦЫ с именем КОПИЯ_ ШТАТНЫЕ_ЕДИНИЦЫ.
Создать форму для вывода данных из таблицы распределение штатных единиц
Создать форму для добавления нового подразделения
Разработать информационную систему содержащую базу данных и клиентское приложение «Учет результатов сдачи вступительных экзаменов»
Создать БД. Список таблиц: абитуриенты, экзаменаторы, экзамены
Список полей: фио абитуриента, адрес, год рождения абитуриента, серия-номер паспорта абитуриента, фио экзаменатора, размер оплаты (за прием экзамена у одного абитуриента, может различаться для разных преподавателей), дата сдачи экзамена, название экзамена (история, математика и т.д.), оценка.
Создать запрос:
Выбирает из таблицы ЭКЗАМЕНАТОРЫ информацию об экзаменаторах, для которых установлен размер оплаты за прием одного экзамена от 30 до 50 руб.
Выбирает из таблиц АБИТУРИЕНТЫ, ЭКЗАМЕНАТОРЫ и ЭКЗАМЕНЫ информацию обо всех экзаменах (ФИО абитуриента, ФИО экзаменатора, Название экзамена, Дата сдачи экзамена, Оценка) в некоторый заданный интервал времени. Нижняя и верхняя границы интервала задаются при выполнении запроса.
Создает таблицу АБИТУРИЕНТЫ_1988, содержащую информацию об абитуриентах 1988 года рождения
Увеличивает значение в поле Размер оплаты таблицы КОПИЯ_ЭКЗАМЕНАТОРЫ на 10 процентов для экзаменаторов, размер оплаты у которых меньше 50 руб.
Создать форму для вывода данных из таблицы экзамены
Создать форму для добавления нового абитуриента
Часть 2
-- БИЛЕТ 14: Учет нарушений ПДД
USE master;
GO
IF DB_ID('ticket14') IS NOT NULL DROP DATABASE ticket14;
CREATE DATABASE ticket14;
USE ticket14;
GO
CREATE TABLE автомобили (
id_авто INT PRIMARY KEY IDENTITY,
модель NVARCHAR(50) NOT NULL,
год INT NOT NULL,
номер NVARCHAR(15) NOT NULL,
стоимость DECIMAL(12,2) NOT NULL,
владелец NVARCHAR(100) NOT NULL,
паспорт NVARCHAR(20) NOT NULL
);
CREATE TABLE нарушения (
id_нарушения INT PRIMARY KEY IDENTITY,
вид NVARCHAR(100) NOT NULL,
штраф DECIMAL(8,2) NOT NULL
);
CREATE TABLE факты (
id_факта INT PRIMARY KEY IDENTITY,
id_авто INT NOT NULL FOREIGN KEY REFERENCES автомобили(id_авто),
id_нарушения INT NOT NULL FOREIGN KEY REFERENCES нарушения(id_нарушения),
дата DATE NOT NULL,
водитель NVARCHAR(100) NOT NULL
);
-- a. Автомобили по паспорту владельца
SELECT * FROM автомобили
WHERE паспорт LIKE '3%';
-- b. Нарушения за период
SELECT
ф.дата,
ф.водитель,
а.номер,
н.вид
FROM факты ф
JOIN автомобили а ON ф.id_авто = а.id_авто
JOIN нарушения н ON ф.id_нарушения = н.id_нарушения
WHERE ф.дата BETWEEN '2023-01-01' AND '2023-01-31';
-- c. Минимальная и максимальная стоимость по годам
SELECT год,
MIN(стоимость) AS мин_стоимость,
MAX(стоимость) AS макс_стоимость
FROM автомобили
GROUP BY год;
-- d. Удаление ВАЗ2112 в копии
SELECT * INTO копия_автомобили FROM автомобили;
DELETE FROM копия_автомобили
WHERE модель = 'ВАЗ2112';
-- БИЛЕТ 15: Туристическое агентство
USE master;
GO
IF DB_ID('ticket15') IS NOT NULL DROP DATABASE ticket15;
CREATE DATABASE ticket15;
USE ticket15;
GO
CREATE TABLE клиенты (
id_клиента INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
паспорт NVARCHAR(100) NOT NULL
);
CREATE TABLE маршруты (
id_маршрута INT PRIMARY KEY IDENTITY,
страна NVARCHAR(50) NOT NULL,
цель NVARCHAR(50) NOT NULL,
день DECIMAL(10,2) NOT NULL,
транспорт DECIMAL(10,2) NOT NULL,
виза DECIMAL(8,2) NOT NULL
);
CREATE TABLE поездки (
id_поездки INT PRIMARY KEY IDENTITY,
id_клиента INT NOT NULL FOREIGN KEY REFERENCES клиенты(id_клиента),
id_маршрута INT NOT NULL FOREIGN KEY REFERENCES маршруты(id_маршрута),
дата_начала DATE NOT NULL,
дни INT NOT NULL
);
-- a. Отдых до 1000 руб/день
SELECT * FROM маршруты
WHERE цель = 'отдых' AND день <= 1000;
-- b. Маршруты по цели
SELECT * FROM маршруты
WHERE цель = 'лечение';
-- c. Стоимость без НДС
SELECT
м.страна,
м.цель,
п.дата_начала,
п.дни,
(м.день * п.дни + м.транспорт + м.виза) AS стоимость
FROM поездки п
JOIN маршруты м ON п.id_маршрута = м.id_маршрута;
-- d. Удаление дорогих маршрутов в копии
SELECT * INTO копия_маршруты FROM маршруты;
DELETE FROM копия_маршруты
WHERE день > 2000;
Часть 1
-- БИЛЕТ 10: Учет результатов экзаменов
USE master;
GO
IF DB_ID('ticket10') IS NOT NULL DROP DATABASE ticket10;
CREATE DATABASE ticket10;
USE ticket10;
GO
CREATE TABLE абитуриенты (
id_абитуриента INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
адрес NVARCHAR(100) NOT NULL,
год_рождения INT NOT NULL,
паспорт NVARCHAR(20) NOT NULL
);
CREATE TABLE экзаменаторы (
id_экзаменатора INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
оплата DECIMAL(8,2) NOT NULL
);
CREATE TABLE экзамены (
id_экзамена INT PRIMARY KEY IDENTITY,
id_абитуриента INT NOT NULL FOREIGN KEY REFERENCES абитуриенты(id_абитуриента),
id_экзаменатора INT NOT NULL FOREIGN KEY REFERENCES экзаменаторы(id_экзаменатора),
экзамен NVARCHAR(50) NOT NULL,
дата DATE NOT NULL,
оценка INT NOT NULL
);
-- a. Экзаменаторы с оплатой 30-50 руб
SELECT * FROM экзаменаторы
WHERE оплата BETWEEN 30 AND 50;
-- b. Экзамены за период
SELECT
а.фио AS абитуриент,
э.фио AS экзаменатор,
экз.экзамен,
экз.дата,
экз.оценка
FROM экзамены экз
JOIN абитуриенты а ON экз.id_абитуриента = а.id_абитуриента
JOIN экзаменаторы э ON экз.id_экзаменатора = э.id_экзаменатора
WHERE экз.дата BETWEEN '2023-06-01' AND '2023-06-30';
-- c. Абитуриенты 1988 года
SELECT * INTO абитуриенты_1988
FROM абитуриенты WHERE год_рождения = 1988;
-- d. Увеличение оплаты для копии
SELECT * INTO копия_экзаменаторы FROM экзаменаторы;
UPDATE копия_экзаменаторы
SET оплата = оплата * 1.1
WHERE оплата < 50;
-- БИЛЕТ 11: Платный прием в поликлинике
USE master;
GO
IF DB_ID('ticket11') IS NOT NULL DROP DATABASE ticket11;
CREATE DATABASE ticket11;
USE ticket11;
GO
CREATE TABLE врачи (
id_врача INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
специальность NVARCHAR(50) NOT NULL,
стоимость DECIMAL(8,2) NOT NULL,
процент DECIMAL(5,2) NOT NULL
);
CREATE TABLE пациенты (
id_пациента INT PRIMARY KEY IDENTITY,
фамилия NVARCHAR(50) NOT NULL,
имя NVARCHAR(50) NOT NULL,
отчество NVARCHAR(50),
рождение DATE NOT NULL,
адрес NVARCHAR(100)
);
CREATE TABLE прием (
id_приема INT PRIMARY KEY IDENTITY,
id_врача INT NOT NULL FOREIGN KEY REFERENCES врачи(id_врача),
id_пациента INT NOT NULL FOREIGN KEY REFERENCES пациенты(id_пациента),
дата_приема DATE NOT NULL
);
-- a. Пациенты до 1980 года
SELECT * FROM пациенты
WHERE рождение < '1980-01-01';
-- b. Приемы за период
SELECT
в.фио AS врач,
в.специальность,
п.дата_приема,
па.фамилия,
па.имя,
па.отчество
FROM прием п
JOIN врачи в ON п.id_врача = в.id_врача
JOIN пациенты па ON п.id_пациента = па.id_пациента
WHERE п.дата_приема BETWEEN '2023-05-01' AND '2023-05-31';
-- c. Максимальный процент по специальностям
SELECT специальность, MAX(процент) AS макс_процент
FROM врачи
GROUP BY специальность;
-- d. Копия врачей
SELECT * INTO копия_врачи FROM врачи;
-- БИЛЕТ 12: Прокат автомобилей
USE master;
GO
IF DB_ID('ticket12') IS NOT NULL DROP DATABASE ticket12;
CREATE DATABASE ticket12;
USE ticket12;
GO
CREATE TABLE клиенты (
id_клиента INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
серия NVARCHAR(10) NOT NULL,
номер NVARCHAR(10) NOT NULL
);
CREATE TABLE автомобили (
id_авто INT PRIMARY KEY IDENTITY,
модель NVARCHAR(50) NOT NULL,
цвет NVARCHAR(30) NOT NULL,
год INT NOT NULL,
номер NVARCHAR(15) NOT NULL,
стоимость DECIMAL(10,2) NOT NULL,
прокат_день DECIMAL(8,2) NOT NULL
);
CREATE TABLE прокат (
id_проката INT PRIMARY KEY IDENTITY,
id_клиента INT NOT NULL FOREIGN KEY REFERENCES клиенты(id_клиента),
id_авто INT NOT NULL FOREIGN KEY REFERENCES автомобили(id_авто),
дата_начала DATE NOT NULL,
дни INT NOT NULL
);
-- a. Автомобили до 1990 года
SELECT * FROM автомобили
WHERE год < 1990;
-- b. Прокат за период
SELECT
к.фио AS клиент,
а.модель,
а.номер,
п.дата_начала
FROM прокат п
JOIN клиенты к ON п.id_клиента = к.id_клиента
JOIN автомобили а ON п.id_авто = а.id_авто
WHERE п.дата_начала BETWEEN '2023-07-01' AND '2023-07-31';
-- c. Минимальная и максимальная стоимость по годам
SELECT год,
MIN(прокат_день) AS мин_цена,
MAX(прокат_день) AS макс_цена
FROM автомобили
GROUP BY год;
-- d. Копия автомобилей
SELECT * INTO копия_автомобили FROM автомобили;
-- БИЛЕТ 13: Учет оптовых продаж
USE master;
GO
IF DB_ID('ticket13') IS NOT NULL DROP DATABASE ticket13;
CREATE DATABASE ticket13;
USE ticket13;
GO
CREATE TABLE товары (
id_товара INT PRIMARY KEY IDENTITY,
наименование NVARCHAR(100) NOT NULL,
единица NVARCHAR(20) NOT NULL,
закупка DECIMAL(10,2) NOT NULL,
продажа DECIMAL(10,2) NOT NULL
);
CREATE TABLE продавцы (
id_продавца INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
процент DECIMAL(5,2) NOT NULL
);
CREATE TABLE продажи (
id_продажи INT PRIMARY KEY IDENTITY,
id_товара INT NOT NULL FOREIGN KEY REFERENCES товары(id_товара),
id_продавца INT NOT NULL FOREIGN KEY REFERENCES продавцы(id_продавца),
дата DATE NOT NULL,
количество INT NOT NULL
);
-- a. Товары в ценовом диапазоне
SELECT * FROM товары
WHERE закупка BETWEEN 100 AND 500;
-- b. Комиссионное вознаграждение
SELECT
п.дата,
пр.фио,
т.наименование,
т.продажа,
п.количество,
пр.процент,
(т.продажа п.количество пр.процент) AS вознаграждение
FROM продажи п
JOIN товары т ON п.id_товара = т.id_товара
JOIN продавцы пр ON п.id_продавца = пр.id_продавца;
-- c. Минимальное и максимальное количество по товарам
SELECT id_товара,
MIN(количество) AS мин_кол,
MAX(количество) AS макс_кол
FROM продажи
GROUP BY id_товара;
-- d. Удаление дорогих товаров в копии
SELECT * INTO копия_товары FROM товары;
DELETE FROM копия_товары
WHERE закупка > 1000;
-- БИЛЕТ 6: Учет подписки на периодические печатные издания
USE master;
GO
IF DB_ID('ticket6') IS NOT NULL DROP DATABASE ticket6;
CREATE DATABASE ticket6;
USE ticket6;
GO
CREATE TABLE издания (
id_издания INT PRIMARY KEY IDENTITY,
индекс NVARCHAR(20) NOT NULL,
вид NVARCHAR(20) NOT NULL,
название NVARCHAR(100) NOT NULL,
цена DECIMAL(10,2) NOT NULL
);
CREATE TABLE получатели (
id_получателя INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
улица NVARCHAR(50) NOT NULL,
дом NVARCHAR(10) NOT NULL,
квартира NVARCHAR(10)
);
CREATE TABLE доставка (
id_доставки INT PRIMARY KEY IDENTITY,
id_издания INT NOT NULL FOREIGN KEY REFERENCES издания(id_издания),
id_получателя INT NOT NULL FOREIGN KEY REFERENCES получатели(id_получателя),
дата_начала DATE NOT NULL,
срок INT NOT NULL
);
-- a. Подписчики на Садовой с индексом 12123
SELECT получатели.*
FROM получатели
JOIN доставка ON получатели.id_получателя = доставка.id_получателя
JOIN издания ON доставка.id_издания = издания.id_издания
WHERE получатели.улица = 'Садовая' AND издания.индекс = '12123';
-- b. Издания в ценовом диапазоне
SELECT * FROM издания
WHERE цена BETWEEN 50 AND 200;
-- c. Получатели "Известий"
SELECT получатели.* INTO получатели_известия
FROM получатели
JOIN доставка ON получатели.id_получателя = доставка.id_получателя
JOIN издания ON доставка.id_издания = издания.id_издания
WHERE издания.название = 'Известия';
-- d. Увеличение цены на газеты в копии
SELECT * INTO копия_издания FROM издания;
UPDATE копия_издания
SET цена = цена * 1.1
WHERE вид = 'газета';
-- БИЛЕТ 7: Учет сделок с недвижимостью
USE master;
GO
IF DB_ID('ticket7') IS NOT NULL DROP DATABASE ticket7;
CREATE DATABASE ticket7;
USE ticket7;
GO
CREATE TABLE квартиры (
id_квартиры INT PRIMARY KEY IDENTITY,
улица NVARCHAR(50) NOT NULL,
дом NVARCHAR(10) NOT NULL,
квартира NVARCHAR(10) NOT NULL,
площадь DECIMAL(8,2) NOT NULL,
комнаты INT NOT NULL
);
CREATE TABLE риэлторы (
id_риэлтора INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
процент DECIMAL(5,2) NOT NULL
);
CREATE TABLE сделки (
id_сделки INT PRIMARY KEY IDENTITY,
id_квартиры INT NOT NULL FOREIGN KEY REFERENCES квартиры(id_квартиры),
id_риэлтора INT NOT NULL FOREIGN KEY REFERENCES риэлторы(id_риэлтора),
дата DATE NOT NULL,
цена DECIMAL(12,2) NOT NULL
);
-- a. 3-комнатные на Садовой
SELECT * FROM квартиры
WHERE комнаты = 3 AND улица = 'Садовая';
-- b. Квартиры с заданным числом комнат
SELECT * FROM квартиры
WHERE комнаты = 2;
-- c. Средняя площадь по комнатам
SELECT комнаты, AVG(площадь) AS средняя_площадь
FROM квартиры
GROUP BY комнаты;
-- d. Таблица 3-комнатных квартир
SELECT * INTO квартиры_3_комн
FROM квартиры WHERE комнаты = 3;
-- БИЛЕТ 8: Учет договоров страхования
USE master;
GO
IF DB_ID('ticket8') IS NOT NULL DROP DATABASE ticket8;
CREATE DATABASE ticket8;
USE ticket8;
GO
CREATE TABLE клиенты (
id_клиента INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
скидка DECIMAL(5,2) NOT NULL
);
CREATE TABLE агенты (
id_агента INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
процент DECIMAL(5,2) NOT NULL
);
CREATE TABLE договоры (
id_договора INT PRIMARY KEY IDENTITY,
id_клиента INT NOT NULL FOREIGN KEY REFERENCES клиенты(id_клиента),
id_агента INT NOT NULL FOREIGN KEY REFERENCES агенты(id_агента),
вид NVARCHAR(50) NOT NULL,
тариф DECIMAL(5,2) NOT NULL,
сумма DECIMAL(12,2) NOT NULL,
дата DATE NOT NULL
);
-- a. Клиенты Иванов
SELECT * FROM клиенты
WHERE фио LIKE 'Иванов%';
-- b. Агенты по фамилии
SELECT * FROM агенты
WHERE фио LIKE 'Петров%';
-- c. Средняя сумма по агентам
SELECT id_агента, AVG(сумма) AS средняя_сумма
FROM договоры
GROUP BY id_агента;
-- d. Копия таблицы агентов
SELECT * INTO копия_агенты FROM агенты;
-- БИЛЕТ 9: Штатное расписание
USE master;
GO
IF DB_ID('ticket9') IS NOT NULL DROP DATABASE ticket9;
CREATE DATABASE ticket9;
USE ticket9;
GO
CREATE TABLE подразделения (
id_подразделения INT PRIMARY KEY IDENTITY,
название NVARCHAR(50) NOT NULL,
тип NVARCHAR(50) NOT NULL,
надбавка1 DECIMAL(5,2) NOT NULL
);
CREATE TABLE штатные_единицы (
id_единицы INT PRIMARY KEY IDENTITY,
должность NVARCHAR(50) NOT NULL,
оклад DECIMAL(10,2) NOT NULL,
надбавка2 DECIMAL(5,2) NOT NULL,
отпуск INT NOT NULL
);
CREATE TABLE распределение (
id_распределения INT PRIMARY KEY IDENTITY,
id_подразделения INT NOT NULL FOREIGN KEY REFERENCES подразделения(id_подразделения),
id_единицы INT NOT NULL FOREIGN KEY REFERENCES штатные_единицы(id_единицы)
);
-- a. Отделы с надбавкой 50%
SELECT * FROM подразделения
WHERE тип = 'отдел' AND надбавка1 = 50;
-- b. Цехи в диапазоне надбавок
SELECT * FROM подразделения
WHERE тип = 'цех' AND надбавка1 BETWEEN 30 AND 70;
-- c. Средний оклад по должностям
SELECT должность, AVG(оклад) AS средний_оклад
FROM штатные_единицы
GROUP BY должность;
-- d. Копия штатных единиц
SELECT * INTO копия_штатные_единицы FROM штатные_единицы;
-- БИЛЕТ 10: Учет результатов экзаменов
USE master;
GO
IF DB_ID('ticket10') IS NOT NULL DROP DATABASE ticket10;
CREATE DATABASE ticket10;
USE ticket10;
GO
CREATE TABLE абитуриенты (
id_абитуриента INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
адрес NVARCHAR(100) NOT NULL,
год_рождения INT NOT NULL,
паспорт NVARCHAR(20) NOT NULL
);
CREATE TABLE экзаменаторы (
id_экзаменатора INT PRIMARY KEY IDENTITY,
фио NVARCHAR(100) NOT NULL,
оплата DECIMAL(8,2) NOT NULL
);
CREATE TABLE экзамены (
id_экзамена INT PRIMARY KEY IDENTITY,
id_абитуриента INT NOT NULL FOREIGN KEY REFERENCES абитуриенты(id_абитуриента),
id_экзаменатора INT NOT NULL FOREIGN KEY REFERENCES экзаменаторы(id_экзаменатора),
экзамен NVARCHAR(50) NOT NULL,
дата DATE NOT NULL,
оценка INT NOT NULL
);
-- a. Экзаменаторы с оплатой 30-50 руб
SELECT * FROM экзаменаторы
WHERE оплата BETWEEN 30 AND 50;
-- b. Экзамены за период
SELECT
а.фио AS абитуриент,
э.фио AS экзаменатор,
экз.экзамен,
экз.дата,
экз.оценка
FROM экзамены экз
JOIN абитуриенты а ON экз.id_абитуриента = а.id_абитуриента
JOIN экзаменаторы э ON экз.id_экзаменатора = э.id_экзаменатора
WHERE экз.дата BETWEEN '2023-06-01' AND '2023-06-30';
-- c. Абитуриенты 1988 года
SELECT * INTO абитуриенты_1988
FROM абитуриенты WHERE год_рождения = 1988;
-- d. Увеличение оплаты для копии
SELECT * INTO копия_экзаменаторы FROM экзаменаторы;
UPDATE копия_экзаменаторы
SET оплата = оплата * 1.1
WHERE оплата < 50;
Свяжитесь со мной я вам решу сейчас
Телеграмм dmitriipahomovv