Создание файла базы данных в СУБД MicrosoftAccess 2003
Создадим файл спроектированной БД в СУБД MicrosoftAccess 2003. Для этого запустим программу MicrosoftAccess 2003, выберем в окне команду Создать файл, затем в окне Создание файла выберем пункт Новая база данных и укажем диск, каталог и имя «Деятельность музея».
Создадим таблицы, для этого выберем объект Таблицы и кнопку Создать. В режиме Конструктор создадим таблицы со следующей структурой:
Изменение структуры таблиц с помощью SQL запроса
С помощью SQL-запроса изменим структуру таблицы Залы. Добавим атрибут Площадь, тип данных – числовой.
ALTER TABLE Залы ADD COLUMN Площадь FLOAT;
Внесение данных в таблицы.
В окне базы данных выберем объект Таблицы, установим курсор на нужную таблицу и нажмем кнопку Открыть. В режиме Таблицы введем записи в таблицы:
Изменение данных с помощью SQL запросов в MS Access
Запрос на добавление данных в таблицу Залы:
INSERT INTO Залы ( [Код зала], Наименование, [Код ответственного], Площадь )
VALUES (6, "Серебряный", 1, 145);
Запрос на удаление данных из таблицы Сотрудники Удалим записи с фамилией сотрудника, содержащей « Мечникова»:
DELETE ФИО
FROM Сотрудники
WHERE ФИО LIKE “Мечникова”;
Запрос на обновление данных. В таблице Издания увеличим стоимость объявлений изданий с кодами 1711 и 1712.
UPDATE Сотрудники SET Оклад = Оклад*1.2
WHERE (Сотрудники.ДолжностьLike "*контроллер");
Запрос на создание таблицы Расписание:
SELECT Экскурсии.[Время проведения], Экскурсии.График, Сотрудники.ФИО INTO Расписание
|
|
FROM Сотрудники INNER JOIN Экскурсии ON Сотрудники.[Код сотрудника] = Экскурсии.[Код ответственного];
Получим:
Расписание | ||
Время проведения | График | ФИО |
10:00:00 | суббота | Лисина Л.Б. |
11:30:00 | ежедневно | Лисина Л.Б. |
15:15:00 | по четным | Коваленко Т.Ю. |
12:00:00 | выходные | Коваленко Т.Ю. |
15:00:00 | по нечетным | Лисина Л.Б. |
11:00:00 | ежедневно | Быков А.М.. |
17:00:00 | с 1-3 каж. мес. | Быков А.М.. |
14:00:00 | среда | Быков А.М.. |
12:45:00 | среда | Лисина Л.Б. |
16:00:00 | вторник | Быков А.М.. |
SQL запросы в Access для выборки данных
Напишем запросы SQL для выборки данных.
SELECT Сотрудники.ФИО, Залы.Наименование, Залы.Площадь
FROM Сотрудники INNER JOIN Залы ON Сотрудники.[Код сотрудника] = Залы.[Код ответственного];
Получим:
Запрос4 | ||
ФИО | Наименование | Площадь |
Мухина Д.Н. | Главный | 185 |
Мухина Д.Н. | Современный | 80 |
Бондаренко А.С. | Серебряный | 145 |
Бондаренко А.С. | Золотой | 68 |
Астахов Е.А. | Бронзовый | 84 |
Лучко К.С. | Рубиновый | 112 |
Выберем экскурсии, стоимость которых больше 100р и отсортируем по возрастанию цены:
SELECT [Код экскурсии], [Время проведения], График, [Срок действия], Стоимость
FROM Экскурсии
WHERE (Стоимость>100)
|
|
ORDER BY Стоимость;
Получим:
Запрос5 | ||||
Код экскурсии | Время проведения | График | Срок действия | Стоимость |
10 | 16:00:00 | вторник | 01.08.2010 | 120,00р. |
4 | 12:00:00 | выходные | 30.06.2010 | 120,00р. |
7 | 17:00:00 | с 1-3 каж. Мес. | 01.08.2010 | 130,00р. |
1 | 10:00:00 | суббота | 31.05.2010 | 150,00р. |
Вычислим средний оклад сотрудников музея по должностям:
SELECT Должность, Avg(Оклад) AS [Средний оклад]
FROM Сотрудники
GROUP BY Должность;
Запрос6 | |
Должность | Средний оклад |
гл. контроллер | 9 120,00р. |
искусствовед | 9 000,00р. |
контроллер | 8 040,00р. |
тех. сотрудник | 4 500,00р. |
экскурсовод | 9 266,67р. |
Вычислим, сколько экскурсий закреплено за каждым экскурсоводом с помощью групповой операции Count:
SELECT Сотрудники.ФИО, Count(Экскурсии.[Код ответственного]) AS [Количество экскурсий]
FROM Сотрудники INNER JOIN Экскурсии ON Сотрудники.[Код сотрудника] = Экскурсии.[Код ответственного]
GROUP BY Сотрудники.ФИО
ORDER BY Count(Экскурсии.[Код ответственного]);
Запрос7 | |
ФИО | Количество экскурсий |
Коваленко Т.Ю. | 2 |
Лисина Л.Б. | 4 |
Быков А.М.. | 4 |
Созданиеоднотабличногоподзапроса:
SELECTСотрудники.ФИО, Экскурсии.График, Экскурсии.Стоимость
FROMСотрудникиINNERJOINЭкскурсииONСотрудники.[Код сотрудника] = Экскурсии.[Код ответственного]
|
|
WHERE (Экскурсии.[Код экскурсии]) In (SELECT [Код экскурсии]
FROMЭкскурсии
WHERE ([Времяпроведения]<#12:0:0#));
Запрос8 | ||
ФИО | График | Стоимость |
Лисина Л.Б. | суббота | 150,00р. |
Лисина Л.Б. | ежедневно | 60,00р. |
Быков А.М.. | ежедневно | 60,00р. |
Создание многотабличного подзапроса:
Выберем тех сотрудников, которые ответственны за залы с площадью большей 100 м2:
SELECT Сотрудники.[Код сотрудника], Сотрудники.ФИО, Сотрудники.Должность
FROM Сотрудники
WHERE (Сотрудники.[Код сотрудника]) In (SELECT Залы.[Код ответственного
FROM Залы
WHERE (Залы.Площадь)>100);
Запрос9 | ||
Код сотрудника | ФИО | Должность |
1 | Мухина Д.Н. | контроллер |
3 | Бондаренко А.С. | гл. контроллер |
7 | Лучко К.С. | контроллер |
Дата добавления: 2018-04-04; просмотров: 336; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!