Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_БД.doc
Скачиваний:
82
Добавлен:
04.05.2019
Размер:
4.03 Mб
Скачать
    1. Реляционный способ доступа к данным.

      1. Основные сведения о языке 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.