- •1. Краткие теоретические сведения
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •1.1. Знакомство с окном субд Microsoft Access
- •1.2. Создание бд
- •1.3. Создание таблицы бд
- •Определение необходимых в таблице полей Поле – элемент таблицы, содержащий определенную информацию, например, фамилию. Термин «поле» применяется как для столбца, так и для ячейки таблицы.
- •1.4. Установление связей между таблицами
- •- Не определено – субд не в состоянии определить вид связи между таблицами.
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •1.1. Запуск запросов на выполнение
- •1.2. Создание запросов на выборку. Общий вид окна
- •1.3. Условие отбора записей в запросе
- •1.4. Многотабличные запросы. Группировка
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •1.1. Понятие «форма»
- •1.2. Запуск формы на выполнение
- •1.3. Создание формы
- •1.3.1. Создание формы с использованием команды
- •1.3.2. Создание формы при помощи команды Мастер форм
- •1.3.3. Создание формы при помощи команды Конструктор
- •1.4. Настройка свойств формы
- •1.5. Основные виды элементов управления
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •1.1. Понятие «отчет»
- •1.2. Создание отчета с использованием команды Автоотчет
- •1.3. Создание отчета при помощи мастера отчетов
- •1.4. Отчет в режиме Конструктор
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •1.1. Понятие «макрос»
- •1.2. Создание макроса
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •2. Практическая часть
- •InterBase. Создание доменов и таблиц
- •1. Краткие теоретические сведения
- •1.1. Настройка и обслуживание бд с помощью
- •1.2. Создание бд
- •1.3. Настройка bde
- •1.4. Общие сведения о создании объектов бд
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •1.1. Управление доступом к данным
- •1.2. Создание списка пользователей
- •1.3. Задание прав
- •1.4. Ликвидация прав
- •2. Практическая часть
- •1. Краткие теоретические сведения
- •1.1. Понятие «обзор»
- •1.2. Создание обзоров
- •1.3. Типы обзоров
- •1.4. Обновление данных в обзоре с конструкцией
- •1.5. Группы управления правами – роли
- •1.6. Создание и удаление роли
- •1.7. Формирование списка прав, связанных с ролью
- •1.8. Формирование прав пользователей на основе ролей
- •1.9. Связывание пользователей с ролями
- •2. Практическая часть
- •Содержание
- •Системы управления базами данных
- •220005, Г. Минск, пр-т Независимости, 62.
1. Краткие теоретические сведения
Язык запросов SQL позволяет использовать одни запросы внутри других запросов, т. е. вкладывать запросы друг в друга.
Алгоритм работы запроса SQL со связанным подзапросом:
- выбирается строка из таблицы, имя которой указано во внешнем запросе;
- выполняется подзапрос, и полученное значение применяется для анализа этой строки в условии предложения WHERE внешнего запроса;
- по результату оценки этого условия принимается решение о включении или не включении строки в состав выходных данных;
- процедура повторяется для следующей строки таблицы внешнего запроса.
При использовании подзапросов во внутреннем запросе можно ссылаться на таблицу, имя которой указано в предложении FROM внешнего запроса. В этом случае такой связанный подзапрос выполняется по одному разу для каждой строки таблицы основного запроса.
Возможно использование подзапросов, связывающих таблицу со своей собственной копией.
Используемый в SQL оператор EXISTS генерирует значение истина или ложь. Используя подзапросы в качестве аргумента, этот оператор оценивает результат выполнения подзапроса как истинный, если этот подзапрос генерирует выходные данные, т. е. в случае существования (возврата) хотя бы одного найденного значения. В противном случае результат подзапроса ложный. Оператор EXISTS не может принимать значения UNKNOWN.
При использовании связанных подзапросов предложение EXISTS анализирует каждую строку таблицы, на которую имеется ссылка во внешнем запросе. Главный запрос получает строки-кандидаты на проверку условия. Для каждой строки-кандида-та выполняется подзапрос. Как только подзапрос находит строку, где в столбце значение удовлетворяет условию, он возвращает значение ИСТИНА внешнему запросу, который затем анализирует свою строку-кандидата.
Часто EXISTS применяется с оператором NOT. Тогда запрос интерпретируется, как «не существует».
З а м е ч а н и е! В подзапросе, указываемом в операторе EXIXTS, нельзя применять агрегирующие функции.
Оператор UNION используется для объединения выходных данных двух или более SQL-запросов в единое множество строк и столбцов.
Использование оператора UNION возможно только при объединении запросов, соответствующие столбцы которых совместимы по объединению, т. е. совпадающие числовые поля должны иметь полностью совпадающие тип и размер, символьные поля должны иметь точно совпадающее количество символов. Если NULL-значения запрещены для столбца хоть бы одного любого подзапроса объединения, то они должны быть запрещены и для всех соответствующих столбцов в других подзапросах объединения.
В отличие от обычных запросов UNION автоматически исключает из выходных данных дубликаты строк. Если все же необходимо в каждом запросе вывести все строки независимо от того, имеются ли такие же строки в других объединяемых запросах, то следует использовать во множественном запросе конструкцию с оператором UNION ALL.
Предложение ORDER BY применяется для упорядочения выходных данных объединения запросов так же, как и для отдельных запросов.
Если в операторе SELECT после ключевого слова FROM указывается не одна, а две таблицы, то в результате выполнения запроса, в котором отсутствует предложение WHERE, каждая строка одной таблицы будет соединена с каждой строкой второй таблицы. Такая операция называется декартовым произведением или полным соединением таблиц.
Сама по себе эта операция не имеет практического значения. Более того, при ошибочном использовании может привести к неожиданным нештатным ситуациям. Соединение таблиц имеет смысл в случае, если объединяются не все строки исходных таблиц, а только нужные пользователю. Такое ограничение может быть осуществлено с применением предложения WHERE.
Соединение, использующее предикаты, основанные на равенствах, называется эквисоединением.
Для внутреннего (INNER) соединения характерно соединение только тех строк, для которых истинным является предикат, задаваемый в предложении ON выполняемого запроса.
Если необходимо расширить получаемый при соединении результат за счет одной из входящих в запрос таблиц, то используют вид объединения, который называется внешним объединением.
Внешнее соединение может быть двух разновидностей:
- LEFT OUTER JOIN – левое внешнее соединения;
- RIGHT OUTER JOIN – правое внешнее соединение.
При использовании левого соединения расширение выводимой таблицы осуществляется за счет записей входной таблицы, имя которой указано слева от оператора JOIN.
При использовании правого соединения расширение выводимой таблицы осуществляется за счет записей входной таблицы, имя которой указано справа от оператора JOIN.