
- •Раздел 1. Проектирование баз данных. 2
- •Раздел 2. Разработка приложений для работы с Базами Данных в среде Delphi. 25
- •Раздел 1. Проектирование баз данных.
- •1.1. Основы построения баз данных. Модели данных.
- •1.1.1. Реляционная модель данных.
- •1.1.2. Нормализация базы данных.
- •1.2. Проектирование базы данных методом “сущность-связь”.
- •Раздел 2. Разработка приложений для работы с Базами Данных в среде Delphi.
- •2.1. Технология создания информационной системы.
- •2.1.1.Создание таблиц базы данных в Database Desktop.
- •2.1.2. Целостность базы данных.
- •Программа bde Administrator и модули данных.
- •Компоненты доступа и работы с данными. Тема: Наборы данных. Состояние и режимы наборов данных.
- •Тема: Объекты поля. Операции с полями.
- •Тема. Отображение и выбор значения поля.
- •Тема. Визуальные компоненты отображения записей из набора данных.
- •Закладки.
- •Тема. Ограничения на вводимые значения.
- •Тема. Сортировка набора данных.
- •Тема. Операции с таблицей базы данных.
- •Тема. Фильтрация записей.
- •Тема. Поиск записей.
- •Тема. Модификация набора данных.
- •Тема. Работа с отчетами
- •Отчет для связанных наборов данных
- •Составной отчет
- •Модули данных
- •Конструктор отчетов Rave Report
- •Реляционный способ доступа к данным.
- •Основные сведения о языке sql.
- •Оператор выбора Select.
- •Агрегирование и группирование записей.
- •Объединение таблиц.
- •Вложенные запросы.
- •Модификация записей.
- •Примеры баз данных
Реляционный способ доступа к данным.
Основные сведения о языке sql.
Язык SQL (Structured Query Language – язык структурированных запросов) был создан Microsoft в конце 70-ых годов XX века и получил широкое распространение. Он позволяет формировать сложные запросы к базам данных. Запрос – это вопрос к базе данных, возвращающий запись или множество записей удовлетворяющих вопросу.
В настоящее время язык не достаточно стандартизован. Существует стандарт SQL ANSI и множество диалектов (SyBase SQL Server, Microsoft SQL).
В приложениях Delphi при помощи запросов SQL можно использовать данные:
таблиц PARADOX и dBase,
локального сервера InterBase,
удаленных серверов SQL через драйверы SQL Links.
Язык SQL предназначен для действий с таблицами и данными в таблицах. В этом языке нет операторов управления вычислительным процессом (переходов, ветвлений, циклов). Программу, написанную на языке SQL, называют SQL-запросом.
В локальных БД с помощью SQL-запроса можно:
формировать состав полей набора данных при выполнении приложения;
включать в набор данных поля и записи одной или нескольких таблиц;
отбирать записи по сложным критериям;
сортировать набор данных по любому полю, в том числе и неиндексированному;
выполнять поиск данных по полному или частичному совпадению критерия поиска со значениями поля записи.
Общие правила синтаксиса языка SQL простые:
Язык SQL не чувствителен к регистру.
Один оператор от другого отделяется точкой с запятой.
Комментарий записывается как /*<комментарий>*/.
Имена таблиц и полей заключаются в апострофы или кавычки. Например, ‘Code_Tovar’. Если имя не содержит пробелов или других специальных символов, то апострофы можно не писать.
Язык SQL встроен в систему Delphi. Для работы с операторами SQL используется компонент Query.
Компонент Query: TQuery формирует набор данных с помощью запроса, определенного в его свойстве SQL. Используется при реляционном доступе к данным. Набор данных может включать записи более чем одной таблицы.
Свойства:
DataBaseName: AnsiString- имя БД, выбирается из списка доступных псевдонимов.
Active: Boolean – активность набора данных: если Active=True набор данных находится в открытом состоянии; при Active=False – в закрытом.
Name: TString – имя компонента, например, Qprepod.
SQL: TStrings – содержит текст запроса на языке SQL.
Данные, отобранные в соответствии с запросом, указанным в свойстве SQL, отображаются в процессе разработки приложения сразу после установки свойства DataSet компонента DataSource, например,
DataSource1.DataSet:=Query1;
Отобранные записи называют результирующим набором данных.
Функции языка SQL.
Статистические:
AVG() – среднее значение,
MAX() – максимальное значение,
MIN() – минимальное значение,
SUM() – сумма,
COUNT() – количество значений,
COUNT(*) – количество ненулевых значений.
Функции работы со строками:
UPPER(Str) – преобразование символом строки Str к верхнему регистру,
LOWER(Str) - преобразование символом строки Str к нижнему регистру,
TRIM(Str) – удаление пробелов в начале и конце строки Str,
SUBSTRING(Str From n1 TO n2) – выделение из строки Str подстроки начиная с позиции n1 и заканчивая позицией n2.
CAST(<Expression> AS <Type>)- приведение выражения Expression к типу Type.
Функции декодирования даты и времени:
EXTRACT(<Элемент> FROM <Выражение>) – из выражения, содержащего значение даты и времени, извлекается значение, соответствующее указанному элементу: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND.