Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТОКБ2к / Тема 3и.doc
Скачиваний:
55
Добавлен:
15.02.2015
Размер:
256 Кб
Скачать

Язык запросов по образцу

Язык QBE позволяет задавать сложные запросы к БД путем заполнения предлагаемой СУБД запросной формы. Такой способ задания запросов обеспечивает высокую наглядность и не требует указания алгоритма выполнения операции - достаточно описать образец ожидаемого результата. В каждой из современных реляционных СУБД имеется свой вариант языка QBE.

С помощью языка QBE можно задавать запросы однотабличные и многотабличные (выбирающие или обрабатывающие данные из нескольких связанных таблиц).

При задании запросов с помощью языка QBE допустимы следующие операции: выборка, вычисление и модификация данных; вставка и удаление записей. Результатом выполнения запроса может быть новая таблица или обновленная исходная таблица.

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

Во многих современных СУБД, например, в Access и Visual FoxPro, многие действия по подготовке запросов с помощью языка QBE выполняются визуально с помощью мыши. В частности, визуальное связывание таблиц при подготовке запроса выполняется не элементами примеров, а просто "протаскиванием" мышью поля одной таблицы к полю другой.

Структурированный язык запросов

Структурированный язык запросов SQL основан на реляционном исчислении с переменными кортежами. Язык имеет несколько стандартов, наиболее распространенными из которых являются SQL-89 и SQL-92.

SQL предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление), а также некоторых сопутствующих операций. SQL является непроцедурным языком и не содержит имеющихся в обычных языках программирования операторов управления, организации подпрограмм, ввода-вывода и т.п. В связи с этим SQL автономно не используется, а обычно погружен в в среду встроенного языка программирования СУБД (например, языка FoxPro СУБД Visual FoxPro) или даже процедурного языка типа С++ или Pascal.

В современных СУБД с интерактивным интерфейсом можно создавать запросы, не применяя SQL. Однако его применение в некоторых случаях позволяет расширить возможности использования СУБД. К примеру, при подготовке запроса в среде Access можно перейти из окна конструктора запросов (задания запроса по образцу) в окно с эквивалентным оператором SQL. Подготовку нового запроса путем редактирования уже имеющегося в ряде случае проще выполнить путем изменения оператора SQL.

К числу основных операторов усеченного подмножества SQL относятся следующие:

CREATE TABLE - создание таблицы;

DROP TABLE - удаление таблицы;

CREATE INDEX - создание индекса;

DROP INDEX - удаление индекса;

ALTER TABLE - изменение структуры таблицы;

SELECT, UPDATE, INSERT, DELETE - выборка, изменение, вставка и удаление записей.

К дополнительным операторам SQL относятся следующие:

CREATE DATABASE, SHOW DATABASE, START DATABASE, STOP DATABASE, DROP DATABASE - создание, просмотр, активизация, закрытие, удаление БД;

CREATE VIEW, DROP VIEW - создание, удаление выборки (представления);

CREATE SYNONYM - создание синонима;

GRANT, REVOKE - назначение, удаление привилегии для работы с выборками и таблицами.

Рассмотрим подробнее важнейший из перечисленных операторов - оператор SELECT. В упрощенном виде оператор имеет следующий формат:

SELECT [ALL|DISTINCT]

<список данных>

FROM <список таблиц>

[WHERE <условие выборки>]

[GROUP BY <имя столбца> [, <имя столбца>]...]

[HAVING <условие поиска>]

[ORDER BY <спецификация сортировки>[,<спецификация сортировки>]...]

Оператор SELECT позволяет выполнять выборку и вычисления над данными одной или нескольких таблиц. Результатом выполнения оператора является ответная таблица, которая может иметь (ALL) или не иметь (DISTINCT) повторяющиеся строки.

В списке данных можно задавать имена столбцов и выражения над ними, к примеру арифметические. Если записи отбираются из нескольких таблиц, то используют составные имена <имя таблицы>.<имя столбца>.

Пример. Имеется таблица Goods (товары) с полями: Code (код), Name (наименование) и Cost (стоимость). Требуется вывести стоимости и коды товаров, стоимость которых не превышает 500 единиц.

Для решения поставленной задачи можно записать оператор SELECT следующим образом:

SELECT Code, Cost

FROM Goods

WHERE Cost <=500

В различных СУБД состав операторов SQL может несколько отличаться от рассмотренного нами.

Соседние файлы в папке ТОКБ2к