Программирование >>  Построение запросов sql 

1 ... 11 12 13 [ 14 ] 15 16 17 ... 101


- язык администрирования данных, с помощью команд которого пользователь контролирует выполняемые действия и анализирует операции БД. Он также используется при анализе производительности системы. Не следует путать администрирование данных с администрированием БД, которое представляет собой общее управление БД и подразумевает использование запросов всех уровней.

Отдельно следует отметить процедурный язык 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

Запрос

Описание

Язык определения данных (DDL)

CREATE DOMAIN

Определяет новый домен

DROP DOMAIN

Удаляет домен

ALTER DOMAIN

Изменяет домен

CREATE TABLE

Создает в БД новую базовую таблицу

DROP TABLE

Удаляет базовую таблицу из БД

ALTER TABLE

Изменяет структуру существующей базовой таблицы

CREATE VIEW

Добавляет в БД новое представление

DROP VIEW

Удаляет представление из БД

CREATE INDEX

Создает индекс для столбца

DROP INDEX

Удаляет индекс столбца

ALTER INDEX

Изменяет индекс

Язык манипулирования данными (DML)

INSERT

Добавляет новые строки в таблицы БД

DELETE

Удаляет строки из таблиц БД

UPDATE

Обновляет данные, существующие в таблицах БД

Язык выборки данных (DQL)

SELECT

Считывает данные из таблиц БД

Язык управления доступом (DCL)

GRANT

Предоставляет пользователю права доступа

REVOKE

Отменяет права доступа

Язык управления транзакциями

COMMIT

Завершает текущую транзакцию

ROLLBACK

Отменяет текущую транзакцию

SAVEPOINT

Назначает контрольную точку внутри транзакции

Язык администрирования базы данных

CREATE DATABASE

Физически создает БД

CONNECT

Подключает к существующей базе данных



1 ... 11 12 13 [ 14 ] 15 16 17 ... 101

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика