|
Программирование >> Построение запросов sql
- язык администрирования данных, с помощью команд которого пользователь контролирует выполняемые действия и анализирует операции БД. Он также используется при анализе производительности системы. Не следует путать администрирование данных с администрированием БД, которое представляет собой общее управление БД и подразумевает использование запросов всех уровней. Отдельно следует отметить процедурный язык Firebird (PSQL), который используется при написании хранимых процедур и триггеров. В настоящем учебном пособии при описании конструкций, доступных для использования только в процедурном языке, будет использоваться термин оператор. Основные категории запросов языка SQL предназначены для выполнения различных функций, включая построение объектов БД и манипулирование ими, начальную загрузку данных в таблицы, обновление и удаление существующей информации, выполнение запросов к БД, управление доступом к ней и ее общее администрирование. Независимые структуры БД - таблицы, индексы и представления -создаются DDL-запросами. Объекты БД, созданные DDL-запросами, называются метаданными (metadata). На физическом уровне метаданные представляют собой системную БД. Такая БД содержит данные о данных , т.е. определение других объектов системы. Метаданные хранятся в виде системных таблиц, которые автоматически создаются и изменяются Firebird. Таким образом, процесс определения данных - это процесс создания, изменения и удаления метаданных. Запросы DML, DQL, DCL оперируют с существующими данными, хранящимися в структурах БД, определенных запросами DDL. Запросы SQL сообщают СУБД о необходимости выполнить определенное действие. Запросы SQL позволяют: - создать таблицу; - читать данные; - получать итоговые данные; - добавлять данные; - удалять данные; - обновлять (изменять) данные; - защищать данные. SQL-запрос состоит из ключевых слов и слов, определяемых пользователем. На рис. 2.5 приведен примерный формат SQL-запроса. Ключевые слова являются постоянной частью языка SQL и имеют фиксированное значение. Их следует записывать в точности так, как это установлено, нельзя разбивать на части для переноса с одной строки на другую. Слова, определяемые пользователем, задаются им самим (в соответствии с синтаксическими правилами) и представляют собой идентификаторы или имена различных объектов БД. Слова в запросе размещаются также в соответствии с установленными синтаксическими правилами. ГЛАГОЛ ИМЯ ТАБЛИЦЫ КЛЮЧЕВЫЕ il------- > ПРЕДЛОЖЕНИЯ СЛОВА WHERE PaySum < 10.000; ИМЯ СТОЛБЦА КОНСТАНТА Рис. 2.5. Формат SQL-запроса Каждый запрос начинается с глагола, т. е. ключевого слова, описывающего выполняемое действие, и заканчивается точкой с запятой. Типичными глаголами являются SELECT (выбрать), CREATE (создать), INSERT (добавить), DELETE (удалить) и COMMIT (завершить). После глагола следует одно или несколько предложений. Они описывают данные, с которыми работает запрос, или содержат уточняющую информацию о действии, выполняемом запросом. Каждое предложение начинается с ключевого слова, например WHERE (где), FROM (откуда), INTO (куда) и HAVING (имеющий). Одни предложения в запросе могут изменяться, а другие - нет. При этом конкретная структура и содержимое предложения также могут изменяться. Многие предложения содержат имена таблиц или столбцов; некоторые из них могут содержать дополнительные ключевые слова, константы и выражения. При дальнейшем описании глаголы, с которых начинаются запросы, и ключевые слова (слова, которые в SQL зарезервированы для специального использования и являются частью его синтаксиса) будут записываться заглавными буквами, чтобы отличать их от имен столбцов и таблиц. Но в общем случае синтаксис SQL-запросов не чувствителен к расположению текста по строкам и к регистру символов. Более подробно запросы языка SQL рассмотрим далее. В табл. 2.3 перечислены основные запросы SQL [17]. При выполнении каждый запрос SQL проходит несколько фаз обработки [17]: - синтаксический разбор, который включает проверку синтаксиса запроса, проверку имен таблиц и столбцов в БД, а также подготовку исходных данных для оптимизатора; - проверка привилегий пользователя, проверка действительности имен системных каталогов, таблиц и названий полей; - генерация плана доступа к ресурсам (план доступа - это двоичное представление выполнимого кода по отношению к данным, сохраняемым в БД); - оптимизация плана доступа, которая включает подстановку действительных имен таблиц и колонок БД в представление, идентификацию возможных вариантов выполнения запроса, определение стоимости выполнения каждого варианта, выбор наилучшего варианта на основе внутренней статистики; - выполнение запроса. В настоящее время оптимизатор является составной частью любой промышленной реализации SQL. Работа оптимизатора основана на сборе статистики о выполняемых запросах и выполнении эквивалентных алгебраических преобразований с отношениями БД. Такая статистика сохраняется в системном каталоге БД. Системный каталог является словарем данных для каждой БД и содержит информацию о таблицах, представлениях, индексах, колонках, пользователях и их привилегиях доступа. Каждая БД имеет свой системный каталог, который представляет совокупность предопределенных таблиц БД. Таблица 2.3. Основные запросы SQL
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |