Создание SQL запросов в MS Access для манипулирования данными

Содержание

Слайд 2

ДЕЯТЕЛЬНОСТЬ CПОРТИВНОГО КЛУБА

ДЕЯТЕЛЬНОСТЬ CПОРТИВНОГО КЛУБА

Слайд 3

Определим атрибуты и их типы значений

Определим атрибуты и их типы значений

Слайд 4

Некоторые атрибуты зависят только от части составного ключа. Устраним частичную зависимость и

Некоторые атрибуты зависят только от части составного ключа. Устраним частичную зависимость и
переведем это отношение во вторую нормальную форму путем декомпозиции основного отношения на следующие отношения:
1) код клиента, фамилия имя, телефон, код тренера;  2) код абонемента, описание, цена, код зала; 3) код зала, наименование; 4) код тренера, фамилия имя тренера, оклад; 5) код клиента, код абонемента, месяц, произведена оплата.

Слайд 5

Отношения 1,2,3,4,5  находятся в третьей нормальной форме, поскольку они находятся во второй

Отношения 1,2,3,4,5 находятся в третьей нормальной форме, поскольку они находятся во второй
нормальной форме, и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.

Слайд 6

Определение ключей и создание связей схемы связей

В 1-ой таблице первичный ключ – код

Определение ключей и создание связей схемы связей В 1-ой таблице первичный ключ
клиента, атрибут код тренера является внешним ключом к таблице 4. Во 2-ой таблице первичный ключ- код абонемента. Атрибут код зала является внешним ключом по отношению к таблице 3. В 3-ей таблице первичный ключ- код зала. В 4-ой таблице первичный ключ – код тренера. В 5-ой таблице составной первичный ключ - код клиента, код абонемента, месяц

Слайд 7

Создадим схему связей между атрибутами таблиц для обеспечения целостности БД

Создадим схему связей между атрибутами таблиц для обеспечения целостности БД

Слайд 8

Таблица КЛИЕНТЫ

Таблица КЛИЕНТЫ

Слайд 9

Таблица АБОНЕМЕНТЫ

Таблица АБОНЕМЕНТЫ

Слайд 10

Таблица ЗАЛЫ

Таблица ЗАЛЫ

Слайд 11

Таблица ТРЕНЕРЫ

Таблица ТРЕНЕРЫ

Слайд 12

1. Создать таблицу Тренеры

CREATE TABLE Тренеры (Код_тренера  INT NOT NULL PRIMARY KEY,

1. Создать таблицу Тренеры CREATE TABLE Тренеры (Код_тренера INT NOT NULL PRIMARY
Фамилия_имя_тренера CHAR (40) NOT NULL, Оклад MONEY NOT NULL);

Слайд 13

2. Добавить атрибут Площадь, тип данных – числовой в таблицу Залы (Изменение структуры

2. Добавить атрибут Площадь, тип данных – числовой в таблицу Залы (Изменение
таблиц)
ALTER TABLE Залы ADD COLUMN Площадь FLOAT;

Слайд 14

3. Добавить данные в таблицу Залы (Запрос на добавление данных в таблицу Залы)

INSERT

3. Добавить данные в таблицу Залы (Запрос на добавление данных в таблицу
INTO Залы ( Код_зала, Наименование ) VALUES (1001, 'Бассейн 25м');

Слайд 15

4. Поднять ежемесячную цену на 10% (Запрос на обновление данных в таблице Абонементы)

UPDATE

4. Поднять ежемесячную цену на 10% (Запрос на обновление данных в таблице
Абонементы SET Абонементы.Цена = "Цена*1,1";

Слайд 16

5. Удалить записи января месяца из таблицы Учет (Запрос на удаление данных)

DELETE Учет.Месяц FROM Учет WHERE

5. Удалить записи января месяца из таблицы Учет (Запрос на удаление данных)
Учет.Месяц="январь";

Слайд 17

Запросы SQL для выборки данных

Запросы SQL для выборки данных

Слайд 18

6. Подсчитать количество человек, занимающихся у каждого тренера

SELECT Тренеры.Код_тренера, Тренеры.Фамилия_имя_тренера, Count(Клиенты.Код_клиента) AS

6. Подсчитать количество человек, занимающихся у каждого тренера SELECT Тренеры.Код_тренера, Тренеры.Фамилия_имя_тренера, Count(Клиенты.Код_клиента)
Количество FROM Тренеры INNER JOIN Клиенты ON Тренеры.Код_тренера = Клиенты.Код_тренера GROUP BY Тренеры.Код_тренера, Тренеры.Фамилия_имя_тренера;

Слайд 19

7. Вычислить премию для тренеров с больше чем одним клиентом в виде

7. Вычислить премию для тренеров с больше чем одним клиентом в виде
40% от оклада

SELECT Тренеры.Код_тренера, Тренеры.Фамилия_имя_тренера, Count(Клиенты.Код_клиента) AS Количество, [Оклад]*0.4 AS Премия FROM Тренеры INNER JOIN Клиенты ON Тренеры.Код_тренера=Клиенты.Код_тренера GROUP BY Тренеры.Код_тренера, Тренеры.Фамилия_имя_тренера, [Оклад]*0.4 HAVING (((Count(Клиенты.Код_клиента))>1));

Слайд 20

8. Выбрать клиентов-должников

SELECT Клиенты.Код_клиента, Учет.Произведена_оплата FROM Клиенты INNER JOIN Учет ON Клиенты.Код_клиента =

8. Выбрать клиентов-должников SELECT Клиенты.Код_клиента, Учет.Произведена_оплата FROM Клиенты INNER JOIN Учет ON
Учет.Код_клиента WHERE (((Учет.Произведена_оплата)=No));