
- •Проектирование бд. Правила проектирования.
- •Реализация sql-запросов при работе с базой данных в среде delphi.
- •Нормализация. 1нф, 2нф, 3нф.
- •Сравнение технологий bde и ado.
- •Индексирование бд. Правила индексирования.
- •Работа с sql-запросами в ms Access.
- •7. Использование фразы having.
- •9. Выборка вычисляемых значений. Исключение дубликатов.
- •10. Запросы с использованием нескольких таблиц.
- •12.Связанные таблицы. Ключи. Виды ключей.
- •13.Типы данных в sql.
- •14. Сетевая модель данных.
- •15. Обзор визуальных компонентов среды delphi, необходимых для работы с базами данных.
- •17. Создание структуры бд средствами субд ms Access.
- •18. Фраза where. Операторы сравнения. Выборка c использованием фразы where Использование операторов сравнения
- •19. Агрегатные функции в sql.
- •20. Реляционная модель данных.
- •21. Предложение delete. Удаление единственной записи. Удаление множества записей.
- •22. Работа с формами и отчётами в ms Access.
- •23. Предложение insert. Вставка единственной записи. Вставка множества записей.
- •24. Иерархическая модель данных.
- •25. Обзор не визуальных компонентов Делфи, необходимых для работы с бд
- •26. Модель данных.
- •Фразы between, in, like.
- •Организация поиска в базе данных на примере ms Access.
15. Обзор визуальных компонентов среды delphi, необходимых для работы с базами данных.
На вкладке DataControls расположены компоненты для отображения и редактирования данных в таблицах. Эти компоненты используются вне зависимости от используемой технологии доступа к данным.
DBGrid |
Содержащий данные компонент, предназна-ченный для отображения и редактирования данных в табличном виде, похожем на лист электронной таблицы. |
DBNavigator |
Содержащий данные компонент, имеющий кнопки для перемещения по записям набора данных, вставки, редактирования и просмотра, а также сохранения новых или измененных данных в физической таблице. |
DBText |
Содержащий данные компонент, метка, ко-торая отображает значение какого-либо поля текущей записи набора данных. |
DBEdit |
Содержащий данные компонент, предназна-ченный для отображения или редактирования значения какого-либо поля текущей записи набора данных. |
DBMemo |
Содержащий данные компонент, предназна-ченный для отображения или редактирования BLOB-текста текущей записи набора данных. |
DBImage |
Содержащий данные компонент, предназна-ченный для отображения, копирования или вставки растровой картинки в текущую запись набора данных. |
DBListBox |
Содержащий данные компонент, применяе-мый для отображения и прокрутки списка значений из столбца таблицы. |
DBComboBox |
Содержащий данные компонент, применяе-мый для отображения или редактирования прокручиваемого списка значений из столбца таблицы. |
DBCheckBox |
Содержащий данные компонент, применяе-мый для отображения или редактирования поля логического типа текущей записи на-бора данных. |
DBCheckBox |
Содержащий данные компонент, применяе-мый для отображения или редактирования поля логического типа текущей записи на-бора данных. |
DBRadioGroup |
Содержащий данные компонент, представ-ляющий собой группу зависимых переклю-чателей, предназначенных для установки или отображения значений столбца. |
DBLookupListBox |
Его значения формируются по полю друго-го набора данных. |
DBLookupComboBox |
Его значения формируются по полю друго-го набора данных. |
16. Предложение SELECT. Область применения. Формат записи. Все запросы на получение практически любого количества данных из одной или нескольких таблиц выполняются с помощью единственного предложения SELECT. В общем случае результатом реализации предложения SELECT является другая таблица. К этой новой (рабочей) таблице может быть снова применена операция SELECT и т.д., т.е. такие операции могут быть вложены друг в друга. Представляет исторический интерес тот факт, что именно возможность включения одного предложения SELECT внутрь другого послужила мотивировкой использования прилагательного "структуризированный" в названии языка SQL. Предложение SELECT может использоваться как:
самостоятельная команда на получение и вывод строк таблицы, сформированной из столбцов и строк одной или нескольких таблиц (представлений);
элемент WHERE- или HAVING-условия (сокращенный вариант предложения, называемый "вложенный запрос");
фраза выбора в командах CREAT VIEW, DECLARE CURSOR или INSERT;
средство присвоения глобальным переменным значений из строк сформированной таблицы (INTO-фраза).
В данной и следующей главах будут рассмотрены только две первые функции предложения SELECT, а здесь √ его синтаксис, ограниченный конструкциями, используемыми при реализации этих функций. Здесь (так же как и в других главах книги) в синтаксических конструкциях используются следующие обозначения:
звездочка (*) для обозначения "все" - употребляется в обычном для программирования смысле, т.е. "все случаи, удовлетворяющие определению";
квадратные скобки ([]) √ означают, что конструкции, заключенные в эти скобки, являются необязательными (т.е. могут быть опущены);
фигурные скобки ({}) √ означают, что конструкции, заключенные в эти скобки, должны рассматриваться как целые синтаксические единицы, т.е. они позволяют уточнить порядок разбора синтаксических конструкций, заменяя обычные скобки, используемые в синтаксисе SQL;
многоточие (...) √ указывает на то, что непосредственно предшествующая ему синтаксическая единица факультативно может повторяться один или более раз;
прямая черта (|) √ означает наличие выбора из двух или более возможностей. Например обозначение ASC|DESC указывает, можно выбрать один из терминов ASC или DESC; когда же один из элементов выбора заключен в квадратные скобки, то это означает, что он выбирается по умолчанию (так, [ASC]|DESC означает, что отсутствие всей этой конструкции будет восприниматься как выбор ASC);
точка с запятой (;) √ завершающий элемент предложений SQL;
запятая (,) √ используется для разделения элементов списков;
пробелы ( ) √ могут вводиться для повышения наглядности между любыми синтаксическими конструкциями предложений SQL;
прописные жирные латинские буквы и символы √ используются для написания конструкций языка SQL и должны (если это специально не оговорено) записываться в точности так, как показано;
строчные буквы √ используются для написания конструкций, которые должны заменяться конкретными значениями, выбранными пользователем, причем для определенности отдельные слова этих конструкций связываются между собой символом подчеркивания (_);
термины таблица, столбец, ... √ заменяют (с целью сокращения текста синтаксических конструкций) термины имя_таблицы, имя_столбца, ..., соответственно;
термин таблица √ используется для обобщения таких видов таблиц, как базовая_таблица, представление или псевдоним; здесь псевдоним служит для временного (на момент выполнения запроса) переименования и (или) создания рабочей копии базовой_таблицы (представления). Предложение SELECT (выбрать) имеет следующий формат:
подзапрос [UNION [ALL] подзапрос] ...
[ORDER BY {[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]
[,{[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]] ...;
SELECT
(выбрать) данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями
FROM
(из) перечисленных таблиц, в которых расположены эти столбцы
WHERE
(где) строки из указанных таблиц должны удовлетворять указанному перечню условий отбора строк
GROUP BY
(группируя по) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе SELECT SQL-функции SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение)
HAVING
(имея) в результате лишь те группы, которые удовлетворяют указанному перечню условий отбора групп и имеет формат:
Фраза WHERE включает набор условий для отбора строк:
WHERE [NOT] WHERE_условие [[AND|OR][NOT] WHERE_условие]...
где WHERE_условие √ одна из следующих конструкций:
Кроме традиционных операторов сравнения (= | <> | < | <= | > | >=) в WHERE фразе используются условия BETWEEN (между), LIKE (похоже на), IN (принадлежит), IS NULL (не определено) и EXISTS (существует), которые могут предваряться оператором NOT (не). Критерий отбора строк формируется из одного или нескольких условий, соединенных логическими операторами:
AND
- когда должны удовлетворяться оба разделяемых с помощью AND условия;
OR
- когда должно удовлетворяться одно из разделяемых с помощью OR условий;
AND NOT
- когда должно удовлетворяться первое условие и не должно второе;
OR NOT
- когда или должно удовлетворяться первое условие или не должно удовлетворяться второе,
причем существует приоритет AND над OR (сначала выполняются все операции AND и только после этого операции OR). Для получения желаемого результата WHERE условия должны быть введены в правильном порядке, который можно организовать введением скобок.
Выборка полей: предложение SELECT Инструкция SELECT обычно начинается с предложения SELECT. В предложении SELECT указываются имена полей, которые содержат данные, используемые в запросе. Вместо полей или вместе с ними также можно использовать выражения. В качестве поля можно даже использовать ещё одну инструкцию SELECT — это называется вложенным запросом. Предположим, нужно узнать телефонные номера клиентов. Пусть поле, которое содержит телефонные номера клиентов, называется «текстКлиентТелефон», тогда предложение SELECT будет выглядеть следующим образом:
SELECT [txtCustomerPhone] Имя можно заключить в прямоугольные скобки. Если имя не содержит пробелов или специальных знаков (например, знаков препинания), прямоугольные скобки можно не использовать. Если имя содержит пробелы или специальные знаки, прямоугольные скобки необходимы.
Выборка всех полей Чтобы включить в запрос все поля из источника данных, можно указать их все по отдельности в предложении SELECT или использовать подстановочный знак — звездочку (*). Если используется звездочка, при выполнении запроса Access определяет, какие поля содержит источник данных, и включает все эти поля в запрос. Это позволяет обеспечить актуальность запроса в случае добавления в источник данных новых полей. В инструкции SQL звездочку можно использовать и с несколькими источниками данных. В этом случае вместе со звездочкой необходимо указать имя источника данных, чтобы приложение Access могло определить, из какого источника читать поля. Предположим, например, что нужно выбрать все поля из таблицы «Заказы» и только адрес электронной почты из таблицы «Контакты». Предложение SELECT может выглядеть следующим образом: SELECT Заказы.*, Контакты.[Адрес электронной почты]