Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
44
Добавлен:
10.02.2015
Размер:
31.35 Кб
Скачать

Процедурные расширения

Поскольку SQL не является языком программирования (то есть не предоставляет средств для автоматизации операций с данными), вводимые разными производителями расширения касались в первую очередь процедурных расширений. Это хранимые процедуры (stored procedures) и процедурные языки-«надстройки». Практически в каждой СУБД применяется свой процедурный язык. Стандарт для процедурных расширений представлен спецификацией SQL/PSM. Перечень процедурных расширений для самых популярных СУБД приведён в следующей таблице:

СУБД

Краткое название

Расшифровка

InterBase/Firebird

PSQL

Procedural SQL

IBM DB2

SQL PL (англ.)

SQL Procedural Language (расширяет SQL/PSM); также в DB2 хранимые процедуры могут писаться на обычных языках программирования: Си, Java и т. д.

MS SQL Server/ Sybase ASE

Transact-SQL

Transact-SQL

MySQL

SQL/PSM

SQL/Persistent Stored Module (соответствует стандарту SQL:2003)

Oracle

PL/SQL

Procedural Language/SQL (основан на языке Ada)

PostgreSQL

PL/pgSQL

Procedural Language/PostgreSQL Structured Query Language (очень похож на Oracle PL/SQL)

Используемая терминология в sql

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

Введение в язык sql

Любой язык работы с базами данных должен предоставлять пользователю следующие возможности:

  • создавать базы данных и таблицы с полным описанием их структуры;

  • выполнять основные операции манипулирования данными, такие как вставка, модификация и удаление данных из таблиц;

  • выполнять простые и сложные запросы.

Кроме того, язык работы с базами данных должен решать все указанные выше задачи при минимальных усилиях со стороны пользователя, а структура и синтаксис его команд должны быть достаточно просты и доступны для изучения. И, наконец, он должен быть универсальным, т.е. отвечать некоторому признанному стандарту, что позволит использовать один и тот же синтаксис и структуру команд при переходе от одной СУБД к другой. Язык SQL удовлетворяет практически всем этим требованиям.

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

  • язык DDL (Data Definition Language), предназначенный для определения структур базы данных и управления доступом к данным;

  • язык DML (Data Manipulation Language), предназначенный для выборки и обновления данных.

До появления стандарта SQL3 язык SQL включал только команды определения и манипулирования данными; в нем отсутствовали какие-либо команды управления ходом вычислений. Другими словами, в этом языке не было команд IF ... THEN ... ELSE, GO TO, DO ... WHILE и любых других, предназначенных для управления ходом вычислительного процесса. Подобные задачи должны были решаться программным путем (с помощью языков программирования или управления заданиями) либо интерактивно (в результате действий, выполняемых самим пользователем). По причине подобной незавершенности (с точки зрения организации вычислительного процесса) язык SQL мог использоваться двумя способами. Первый предусматривал интерактивную работу, заключающуюся во вводе пользователем с терминала отдельных операторов SQL. Второй состоял во внедрении операторов SQL в программы на процедурных языках.

Язык SQL относительно прост в изучении.

  • Это непроцедурный язык, поэтому в нем необходимо указывать, какая информация должна быть получена, а не как ее можно получить. Иначе говоря, язык SQL не требует указания методов доступа к данным,

  • Как и большинство современных языков, SQL поддерживает свободный формат записи операторов. Это означает, что при вводе отдельные элементы операторов не связаны с фиксированными позициями на экране.

  • Структура команд задается набором ключевых слов, представляющих собой обычные слова английского языка, такие как CREATE TABLE (Создать таблицу), INSERT (Вставить), SELECT (Выбрать).

Соседние файлы в папке Bazy_dannykh_1_kurs_2_semestr_2011-2012