
- •Практический раздел содержание
- •Лабораторная работа №1
- •Основные понятия диаграмм классов uml
- •Классы, атрибуты, операции
- •Категории связей. Связь-зависимость
- •Связи-обобщения и механизм наследования классов в uml
- •Связи-ассоциации: роли, кратность, агрегация
- •Получение схемы реляционной базы данных из диаграммы классов uml
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •3Апрос 6-2-1
- •3Апрос 6-2-2
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Создание макроса
- •Сведения о построителе макросов
- •Создание изолированного макроса
- •Создание группы макросов
- •Создание внедренного макроса
- •Изменение макроса
- •Использование условий для контроля за действиями макроса
- •Примеры условных выражений в макросах
- •Лабораторная работа №9
- •Описание
- •Порядок обработки элементов оператора select:
- •Конструкция where
- •Конструкция group by
- •Конструкция having
- •Конструкция order by
- •Seller (Продавцы)
- •Sale (Продажи)
- •Supplier (Поставщики)
- •Goods (Товары)
- •Model (Модели)
- •Custom (Заказ)
- •Простые запросы
- •Агрегатные функции
- •Лабораторная работа №10
- •Многотабличные запросы
- •Примеры многотабличных запросов
- •Подзапросы и многотабличные запросы
- •Лабораторная работа №11
- •Операторы манипулирования данными
- •Лабораторная работа №12
- •Лабораторная работа №13
- •Примеры
- •Синтаксис
- •Примеры
- •Лабораторная работа №14
- •Лабораторная работа №15
- •Лабораторная работа №16
- •Лабораторная работа №17
- •Лабораторная работа №18
- •Лабораторная работа №19
- •Работа с данными
- •Состояния и режимы набора данных
- •Поля и класс tField
- •Типы полей и типы данных
- •Сортировка
- •Навигация
- •Фильтрация
- •Редактирование
- •Добавление и удаление
- •Лабораторная работа №20
- •Лабораторная работа №21
- •Лабораторная работа №22
- •Лабораторная работа №23
- •Компонент dbCtrlGrid
- •Лабораторная работа №24
- •Импорт информации из Delphi в Word
- •1. Как определить установлен ли Excel
- •2. Как определить запущен ли Excel
- •3. Как вывести данные в Excel
- •Лабораторная работа №25
- •Поиск и фильтрация данных в Delphi
- •Общие положения
- •Поиск данных
- •Лабораторная работа №26
- •Лабораторная работа №27
- •Отчеты в Delphi
- •Лабораторная работа №28
- •Лабораторная работа №29
- •Лабораторная работа №30
- •Лабораторная работа №31
- •Лабораторная работа №32
- •Стандартные функции php для работы с MySql
- •Пример простейшей поисковой системы на php
- •Сортировка таблиц
- •Лабораторная работа №33
- •Работа с соединениями
- •Постоянные соединения с базами данных
- •Лабораторная работа №34
- •Создание бд и таблиц
- •Создание бд и таблиц с помощью php
- •Создание бд и таблиц с использованием phpMyAdmin
- •Лабораторная работа №35
- •Лабораторная работа №36
- •Применение информации о структуре таблицы
- •Лабораторная работа №37
- •Лабораторная работа №39
- •Роль сервера приложений: Настройка сервера приложений
- •Предварительная подготовка
- •Настройка сервера приложений
- •Параметры сервера приложений
- •Сводка выбранных параметров
- •Завершение работы мастера настройки сервера
- •Удаление роли сервера приложений
- •Дальнейшие действия: выполнение дополнительных задач
- •Подготовка данных для сервера приложений
- •Создание сервера приложений
- •Лабораторная работа №40
- •Создание локального клиентского приложения (на том же пк, что и сервер)
- •Удаленный клиент с использованием olEnterprise
- •Об удаленном клиенте с использованием dcom
- •Удаленный клиент с использованием ActiveForm
Многотабличные запросы
Многотабличные запросы – это запросы, которые используют данные нескольких таблиц.
Для того, чтобы объединить в результирующей таблице столбцы нескольких таблиц, используют соединение таблиц и ключевые слова JOIN ON. В результате операции соединения двух таблиц создается таблица, состоящая из пар связанных строк, выбранных из каждой таблицы. Каким образом связываются пары строк определяет условие, которое задается после ключевого слова ON.
SELECT [DISTINCT | ALL] {* | список столбцов}
FROM имя_таблицы1 JOIN имя_таблицы2 ON условие
Аналогичное действие можно выполнить и таким образом:
SELECT [DISTINCT | ALL] {* | список столбцов}
FROM имя_таблицы1, имя_таблицы2
WHERE условие
Соединение таблиц, это частный случай декартова произведения таблиц. Декартово произведение двух таблиц – это таблица, состоящая из всех возможных пар строк, входящих в состав обеих таблиц. Для задания декартова произведения используются ключевые слова CROSS JOIN.
SELECT [DISTINCT | ALL] {* | список столбцов}
FROM имя_таблицы1 CROSS JOIN имя_таблицы2
Аналогичное действие можно выполнить и таким образом:
SELECT [DISTINCT | ALL] {* | список столбцов}
FROM имя_таблицы1, имя_таблицы2
Для того чтобы объединить в результирующей таблице строки нескольких таблиц используют объединение таблиц и ключевое слово UNION. Таблицы должны быть совместимы по соединению – т.е. иметь одинаковую структуру (одинаковое количество столбцов, с одинаковыми типами данных).
SELECT [DISTINCT | ALL] {* | список столбцов}
FROM имя_таблицы1
WHERE условие
UNION SELECT [DISTINCT | ALL] {* | список столбцов}
FROM имя_таблицы2
WHERE условие
Примеры многотабличных запросов
Для примеров используется таблица shop (Магазины) и таблица seller (Продавцы)
Определить всех сотрудников, работающих в городе Челябинске:
SELECT fio as «ФИО»
FROM seller sl JOIN shop s ON sl.shopid=s.shopid
WHERE town='Челябинск';
Определить количество продавцов в каждом магазине. В итоговой информации указать название магазина, адрес, торговую площадь, количество продавцов.
SELECT name as «магазин», adres as «адрес», area as «площадь», c as «количество продавцов»
FROM shop s JOIN пользователь: (SELECT shopid, COUNT(*) as c
FROM seller
GROUP BY shopid) n
ON s.shopid=n.shopid;
Задание для самостоятельной работы
Подзапросы и многотабличные запросы
Определить в каком городе максимальная торговая площадь.
Определить в каком городе максимальное количество магазинов.
Определить у какого поставщика максимальный рейтинг.
Определить у какого поставщика минимальный рейтинг.
Определить всю информацию о поставщиках, неисполнивших заказ и просрочивших поставку.
Определить ФИО продавца с максимальными продажами за прошедший месяц.
Выбрать информацию о продавцах и определить для каждого суммарную выручку за товар за прошедший месяц. Отсортировать по убыванию выручки.
Определить суммарную выручку за товар у каждого магазина за прошедший месяц.
Определить по каждому поставщику суммарную выручку за товар за прошедший месяц.
Определить количество проданных сумок каждой модели, поставленных начиная с 1 числа прошедшего месяца. В результирующую таблицу включить номер модели, описание модели, количество проданных, количество закупленных, отсортировать по убыванию количества проданных.
Определить информацию о товаре, которая должна включать в себя код товара, описание модели, название поставщика, адрес поставщика, дату поставки, количество поставленного товара, количество в наличии, цену для покупателя, название магазина, адрес магазина.
Определить магазины, в ассортименте которых нет в наличии моделей, в описании которых встречаются слова «красный» и «замша».
Определить товары, имеющиеся в наличии, в описании которых встречаются слова «пряжка» или «фурнитура». Выбранная информация должна включать в себя код товара, модель, описание модели, № магазина, адрес магазина, сколько осталось в наличии.
Определить для проданных товаров разницу между датой продажи и датой поставки в днях. Отсортировать по возрастанию этой величины. Выбранная информация должна включать код товара, описание модели, разница между датой продажи и датой поставки.
Определить товары, которые не продаются в течении срока большего, чем один месяц (т.е. количество закупленных = количеству оставшихся в наличии и поставка была за 1 месяц от сегодняшней даты). Выбранная информация должна включать в себя код товара, модель, описание модели, название поставщика, адрес поставщика, № магазина, адрес магазина.
Определить товар, который был распродан в течении 3-х дней с момента поставки. В выбранной информации указать код товара, модель, описание модели, код поставщика, код магазина, количество поставленного товара, дата поставки.
Определить наличие товара в магазине «№ 123» (код магазина = 1). Выбранная информация должна включать код товара, модель, описание модели, название поставщика, цена для покупателя, количество в наличии. Отсортировать по названию модели.
Выбрать поставщиков, которые находятся в том же городе, что и магазин № 123 (код магазина = 1). Выбранная информация должна включать название поставщиков, адрес.
СОДЕРЖАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
Изучить теоретические сведения.
Открыть базу данных из предыдущей лабораторной работы.
Выполнить запросы в соответствии с вариантом.
Проверить работу всего проекта.
Продемонстрировать преподавателю работу разработанного образца проекта.
Получить от преподавателя индивидуальное задание и создать проект (по аналогии) для выполнения индивидуального задания.
Подготовиться к защите лабораторной работы, которая включает в себя демонстрацию индивидуального варианта, защиту по контрольным вопросам теоретической части работы.
Вопросы выходного контроля:
Дайте определение понятию вложенный запрос.
Напишите синтаксис вложенного SELECT-запроса.
Назовите, что получается в результате выполнения вложенного запроса
Перечислите агрегирующие функции, которые Вы использовали в работе.
Назовите основные конструкции, которые входят в оператор SELECT.
Укажите ключевое слово, предназначенное для исключения повторяющихся строк из результата запроса.
Назовите отличия конструкций WHERE и HAVING?
С помощью какой конструкции выполняется сортировка результата запроса.