- •Практическая работа
- •Создание запроса
- •Что такое запрос?
- •Команда select
- •Выбирайте всегда самый простой способ
- •Просмотр только определенного столбца таблицы
- •Переупорядочение столбца
- •Удаление избыточных данных
- •Квалифицированный выбор при использовании предложений
- •Реляционные операторы
- •Булевы операторы
- •Оператор in
- •Оператор between
- •Оператор like
- •Null оператор
- •Использование not со специальными операторами
- •Практическая часть.
- •Контрольные вопросы
- •Практическая работа
- •Теоретическая часть Что такое агрегатные функции?
- •Как использовать агрегатные функции?
- •Специальные атрибуты count
- •Использование count со строками, а не значениями
- •Включение дубликатов
- •Агрегаты построенные на скалярном выражении
- •Предложение group by
- •Предложение having
- •Не делайте вложенных агрегатов
- •Формирование выводов запросов Скалярное выражение с помощью выбранных полей
- •Помещение текста в вашем выводе запроса
- •Упорядочение вывода полей
- •Упорядочение с помощью многочисленных столбцов
- •Упорядочение агрегатных групп
- •Упорядочение с помощью оператора null
- •Запрашивание многочисленных таблиц также как одной Объединение таблиц
- •Имена таблиц и столбцов
- •Создание объединения
- •Объединение таблиц через справочную целостность
- •Объединения таблиц по равенству значений в столбцах и другие виды объединений
- •Объединение более двух таблиц
- •Практическая часть
- •Контрольные вопросы:
- •Практическая работа
- •Теоретическая часть Объединение таблицы с собой Как делать объединение таблицы с собой?
- •Псевдонимы
- •Устранение избыточности
- •Проверка ошибок
- •Больше псевдонимов
- •Еще больше комплексных объединений
- •Вставка одного запроса внутрь другого Как работает подзапрос?
- •Значения, которые могут выдавать подзапросы
- •Distinct с подзапросами
- •Предикаты с подзапросами являются необратимыми
- •Использование агрегатных функций в подзапросах
- •Использование подзапросов которые выдают много строк с помощью оператора in
- •Подзапросы выбирают одиночные столбцы
- •Использование выражений в подзапросах
- •Подзапросы в предложении having
- •Практическая часть
- •Контрольные вопросы:
- •Практическая работа
- •Теоретическая и практическая часть Использование оператора exists
- •Как работает exists?
- •Выбор столбцов с помощью exists
- •Комбинация из exists и объединения
- •Использование not exists
- •Exists и агрегаты
- •Более удачный пример подзапроса
- •Использование операторов any, all, и some
- •Специальные операторы any или some
- •Использование операторов in или exists вместо оператора any
- •Как any может стать неоднозначным
- •Специальный оператор all
- •Равенства и неравенства
- •Правильное понимание any и all
- •Как any, all, и exist поступают с отсутствующими и неизвестными данными
- •Когда подзапрос возвращается пустым
- •Any и all вместо exists с пустым указателем (null)
- •Использование count вместо exists
- •Использование предложения union Объединение многочисленных запросов в один
- •Когда вы можете делать объединение между запросами ?
- •Union и устранение дубликатов
- •Использование строк и выражений с union
- •Использование union с order by
- •Внешнее объединение
- •Практическая часть
- •Контрольные вопросы:
- •Литература
Практическая часть
Напишите запрос который бы использовал оператор EXISTS для извлечения всех продавцов которые имеют заказчиков с оценкой 300.
Как бы вы решили предыдущую проблему используя обьединение ?
Напишите запрос использующий оператор EXISTS который выберет всех продавцов с заказчиками размещенными в их городах которые ими не обслуживаются.
Напишите запрос который извлекал бы из таблицы Заказчиков каждого заказчика назначенного к продавцу который в данный момент имеет по крайней мере еще одного заказчика (кроме заказчика которого вы выберете) с порядками в таблице Порядков ( подсказка: это может быть похоже на структуру в примере с нашим трех-уровневым подзапросом ).
Напишите запрос который бы выбирал всех заказчиков чьи оценки равны или больше чем любая (ANY) оценка заказчика Serres.
Что будет выведено вышеупомянутой командой?
Напишите запрос использующий ANY или ALL, который бы находил всех продавцов которые не имеют никаких заказчиков размещенных в их городе.
Напишите запрос который бы выбирал все порядки с суммой больше чем любая (в обычном смысле) для заказчиков в Лондоне.
Напишите предыдущий запрос с использованием - MAX.
Создайте объединение из двух запросов которое показало бы имена, города, и оценки всех заказчиков. Те из них которые имеют поле rating=200 и более, должны кроме того иметь слова - " Высокий Рейтинг ", а остальные должны иметь слова " Низкий Рейтинг ".
Напишите команду которая бы вывела имена и номера каждого продавц и каждого заказчика которые имеют больше чем один текущий порядок. Результат представьте в алфавитном порядке.
Сформируйте объединение из трех запросов. Первый выбирает поля snum всех продавцов в San Jose; второй, поля cnum всех заказчиков в San Jose; и третий поля onum всех порядков на 3 Октября. Сохраните дубликаты между последними двумя запросами, но устраните любую избыточность вывода между каждым из их и самым первым. (Примечание: в данных типовых таблицах, не содержится никакой избыточности. Это только пример. )
Контрольные вопросы:
Что такое внешнее объединение?
Использование строк и выражений с UNION?
Когда вы можете делать объединение между запросами?
Объясните как работает ANY?
Литература
MySQL руководство администратора; М.: Вильямс, 2009. - 621 c.
Аткинсон, Леон MySQL. Библиотека профессионала; М.: Вильямс, 2010. - 624 c.
Веймаер, Р.; Сотел, Р. Освой самостоятельно Microsoft SQL Server 2000 за 21 день (+ CD-ROM); М.: Вильямс, 2013. -549 c.
Гандерлой, Майк; Харкинз, Сьюзан Сейлз Автоматизация Microsoft Access с помощью VBA; М.: Вильямс, 2013. - 416 c.
Голицына, О.Л. и др. Базы данных; Форум; Инфра-М, 2013. - 399 c.
Гринченко, Н.Н. и др. Проектирование баз данных. СУБД Microsoft Access; Горячая Линия Телеком, 2012. - 613 c.
Дейт, К.Дж. Введение в системы баз данных; К.: Диалектика; Издание 6-е, 2012. - 360 c.
Каратыгин, Сергей Access 2000 на примерах. Руководство пользователя с примерами; М.: Лаборатория Базовых Знаний, 2012. - 376 c.
Мак-Федрис, Пол Формы, отчеты и запросы в Microsoft Access 2003; М.: Вильямс, 2010. - 416 c.
Наумов, А.Н.; Вендров, А.М.; Иванов, В.К. и др. Системы управления базами данных и знаний; М.: Финансы и статистика, 2010. - 352 c.
Редько, В.Н.; Бассараб, И.А. Базы данных и информационные системы; Знание, 2011. - 602 c.
Тимошок, Т.В. Microsoft Office Access 2007: самоучитель; Вильямс, 2008. - 464 c.
Тоу, Дэн Настройка SQL; СПб: Питер, 2009. - 539 c.
Туманов, В.Е. Основы проектирования реляционных баз данных; Бином, 2012. - 420 c.
Фуллер, Лори Ульрих; Кауфельд, Джон; Кук, Кен Microsoft Office Access 2007 для "чайников"; М.: Вильямс, 2012. - 384 c.
Хаббард, Дж. Автоматизированное проектирование баз данных; М.: Мир, 2011. - 453 c.
