Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс




Скачать 395.5 Kb.
Название Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс
страница 6/8
Тип Учебники
rykovodstvo.ru > Руководство эксплуатация > Учебники
1   2   3   4   5   6   7   8

Практическая работа № 20-SQLa.
Язык SQL (многотабличная база данных, MS Access)


В этой работе вы познакомитесь с новой командой ALTER TABLE (изменить таблицу) языка SQL и научитесь составлять запросы к многотабличной реляционной базе данных.

Создание и заполнение таблиц


  1. Используя только SQL-запросы, постройте три таблицы для реляционной базы данных кафе (значок обозначает первичный ключ таблицы):



  1. Теперь нужно построить связи между таблицами:



Для этой цели используется команда ALTER TABLE (англ. изменить таблицу). Построить связь между таблицами – это значит задать ограничение (CONSTRAINT), которое связывает первичный ключ одной таблицы с полем соответствующего типа другой. Если связываемое поле второй таблицы – неключевое, то оно называется внешним ключом (FOREIGN KEY). Например, команда для создания связи 1:N между ключевым полем Номер таблицы Заказы и неключевым полем Номер заказа таблицы Заказано выглядит так:

ALTER TABLE Заказано

ADD CONSTRAINT ORDER_NO

FOREIGN KEY([Номер заказа])

REFERENCES Заказы(Номер)

Такая запись дословно означает:

Изменить таблицу Заказано

добавить связь ORDER_NO

внешний ключ [Номер заказа]

ссылается на поле Номер таблицы Заказы

Здесь ORDER_NO – это просто имя, которое мы выбрали для этой связи (можно было выбрать и другое).

  1. Введите и выполните показанный выше SQL-запрос на добавление связи. Зайдите в меню Сервис – Связи и убедитесь, что связь действительно создана5.

  2. Составьте и выполните SQL-запрос на добавление второй связи. Запишите этот запрос в поле для ответа.

Ответ:

  1. С помощью SQL-запросов заполните базу следующими данными


Выбор данных и сортировка


  1. Построим в режиме SQL запрос СоставЗаказа, который выводит номер заказа и название заказанных блюд. Эти данные находятся в двух таблицах – Заказано и Блюда, поэтому их нужно как-то объединить. Для этого используется связь 1:N между таблицами, которую мы недавно установили. Действительно, для каждой записи в таблице Заказано нужно выбрать название блюда из таблицы Блюда, код которого совпадает с полем Заказано.Код блюда.

Это запрос на выборку данных, поэтому используем оператор SELECT:

SELECT Заказано.[Номер заказа], Блюда.Название

FROM Заказано, Блюда

WHERE Заказано.[Код блюда] = Блюда.Код

Здесь из таблиц Заказано и Блюда выбираются поля Номер заказа и Название; условие в последней строке связывает таблицы.

Поскольку названия полей в таблицах, из которых идет выбор, не совпадают, можно было записать запрос в сокращенной форме, указав после оператора SELECT только названия нужных полей:

SELECT [Номер заказа], Название

FROM Заказано, Блюда

WHERE Заказано.[Код блюда] = Блюда.Код

  1. Теперь добавим в запрос дату заказа. Она находится в таблице Заказы, которая пока в запросе не участвует. Таким образом, нам нужно объединить три таблицы. Условие отбора получается сложным, два условия (связи по коду блюда между таблицами Заказано и Блюда и по номеру заказа между таблицами Заказы и Заказано) объединяются с помощью логической операции AND (И):

SELECT [Номер заказа], Дата, Название

FROM Заказано, Блюда, Заказы

WHERE Заказано.[Код блюда] = Блюда.Код

AND Заказано.[Номер заказа] = Заказы.Номер

Проверьте результат выполнения этого запроса.

  1. Измените запрос так, чтобы он выбирал только блюда из состава заказа № 1. Запишите этот запрос:

Ответ:

  1. Построим еще один запрос Итоги, в котором для каждого заказа выводится его номер, дата и общая сумма (с помощью функции SUM).

SELECT [Номер заказа], Дата, SUM(Цена)

FROM Заказано, Блюда, Заказы

WHERE Заказано.[Код блюда] = Блюда.Код

AND Заказано.[Номер заказа] = Заказы.Номер

GROUP BY [Номер заказа], Дата

В последней строке указано, что по полям Номер заказа и Дата выполняется группировка, то есть сумма цен считается для каждой уникальной пары «Номер заказаДата».

В таблице с результатами запроса заголовок столбца с суммой выглядит не совсем понятно для пользователя, например:

«Expr1002»

Для того, чтобы сделать у этого столбца заголовок «Сумма», нужно добавить в первую строку запроса после SUM("Цена") так называемый псевдоним (подпись) с ключевым словом AS:

SELECT [Номер заказа], Дата, SUM(Цена)  AS Сумма 

...

Проверьте результат выполнения этого запроса. Псевдонимы можно задавать для всех значений, которые выводятся в запросе.

  1. Измените запрос так, чтобы заказы были отсортированы в порядке убывания суммы (используйте ключевые слова ORDER BY).

Ответ:

Вложенные запросы


  1. Построим запрос МинСумма, который выводит минимальную сумму заказа. Для этого будем использовать уже готовый запрос Итоги. Таким образом, источником данных для запроса МинСумма будет не таблица, а другой запрос. Отметим, что предварительно в запросе Итоги нужно отменить сортировку. Запрос получается очень простым

SELECT MIN(Сумма) AS Сумма FROM Итоги

  1. Наконец, можно вывести информацию о заказе с минимальной суммой:

SELECT [Номер заказа], Дата, Итоги.Сумма

FROM Итоги, МинСумма

WHERE Итоги.Сумма = МинСумма.Сумма

Обратите внимание, что этот запрос использует результаты выполнения двух ранее построенных запросов – Итоги и МинСумма. Запрос МинСумма можно было и не составлять, а вместо этого использовать вложенный запрос (запрос в запросе):

SELECT [Номер заказа], Дата, Сумма

FROM Итоги

WHERE Сумма =

(SELECT MIN(Сумма) AS Сумма FROM Итоги)

Заметим, что если в базе данных есть информация о нескольких заказах с такой же (минимальной) суммой, будет показана информация обо всех этих заказах.

  1. Измените запрос так, чтобы получить список всех заказов, сумма которых больше средней.

Ответ:


1   2   3   4   5   6   7   8

Похожие:

Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Список дисков, имеющихся в фонде читального зала средней школы №621...
Открытая Математика Функции и Графики Сетевая версия, 1 cd, инструкция, dvd-box
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Название: Математика. Тесты. 2 класс
Данное пособие содержит тесты различных видов по математике для второго класса к учебнику М. И. Моро и др системы «Школа России»
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Русский язык математика история этика природоведение география
Математика. 5-9 классы (М. Н. Перова — научный редактор программы; Б. Б. Горскин, А. П. Антропов, М. Б. Ульянцева)
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Русский язык математика история этика природоведение география естествознание...
Математика. 5—9 классы (М. Н. Перова — научный редактор программы; Б. Б. Горскин, А. П. Антропов, М. Б. Ульянцева)
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Рабочая программа по математике 4 класс (фгос)
Планирование составлено на основе авторской программы М. И. Моро, М. А. Бантова, Г. В. Бельтюкова. (Математика. Рабочие программы....
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon 1 Потребительские свойства стиральных машин
Классы выставляются в диапазоне от а до G, где класс d примерно соответствует оценке "удовлетворительно", класс c "хорошо", класс...
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Цели и задачи
Участники соревнований: по ориентированию: мж 5-6 класс и младше, мж 7-8 класс, мж 9-11 класс, мж э
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Мастер –класс учителя математики Петуховой лв
Понятно, что математика, как наука, не нужна большинству людей. Ведь в обыденной жизни вряд ли кто-либо будет применять логарифмы,...
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon И основная мысль текста; микротемы, план текста; деление текста на...
Федеральном базисном (образовательном) учебном плане для образовательных учреждений Российской Федерации (вариант 1). Обязательное...
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Учебное пособие для обучающихся в спбгу по направлениям астрономия,...
Учебное пособие для обучающихся в спбгу по направлениям астрономия, информатика, математика, механика, прикладная математика, физика,...
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Содержание рабочей программы пояснительная записка цели и задачи...
«Описательная статистика. Вероятность. Комбинаторика» из раздела «Вероятность и статистика» и ориентирована на учебник «Математика....
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Математика и информатика часть II. Информатика Пособие для студентов
Рейтинг и оценка уровня знаний студентов по дисциплине «Математика и информатика» 5
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Объявляет набор учащихся на июль 2016 года о школе
Каждый ученик может учиться только на одном потоке. На математический поток принимаются учащиеся, окончившие 6, 7, 8, 9 или 10 класс,...
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Поурочные разработки по русскому языку: 5 класс
Поурочные разработки по русскому языку: 5 класс: к учебнику Т. А. Ладыженской и др. «Русский язык. 5 класс» / Е. А. Влодавская. 2-е...
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Рабочая программа по дисциплине «Системное и прикладное программное...
Рабочая пpогpамма составлена на основе на основании на основании решения кафедры «Вычислительная техника» Ульяновского государственного...
Минаева С. С., Рослова Л. О., Рыдзе О. А. и. Математика. 1 класс icon Радио рсн, новости, 10. 10. 2008, Минаева Наталья, 16: 00 10
Ведомости, Наталья Костенко Анастасия Корня ведомости, 13. 10. 2008, №193, Стр. А2 18

Руководство, инструкция по применению






При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск