Иллюстрированный самоучитель по SQL для начинающих

Основы SQL

(Очень) Короткая история

Язык SQL, как и теория реляционных баз данных, берет свое начало в одной из исследовательских лабораторий компании IBM. В начале 1970-х годов исследователи из IBM выполняли первые разработки реляционных систем СУБД (или РСУБД), и тогда они создали подъязык данных, предназначенный для работы в этих системах. Пробная версия этого подъязыка была названа SEQUEL (Structured English QUEry Language – структурированный английский язык запросов). Однако, когда пришло время официально выпускать их язык запросов в качестве продукта, разработчики захотели сделать так, чтобы люди понимали, что выпущенный продукт отличается от пробной системы СУБД и превосходит ее. Поэтому они решили дать выпускаемому продукту имя, хотя и отличающееся от SEQUEL, но явно принадлежащее к тому же семейству. Так что они назвали его SQL.

О работе, которая велась в IBM над реляционными базами данных и над языком SQL, в информационной отрасли хорошо знали, причем еще до того, как эта компания представила в 1981 году РСУБД SQL / DS. К этому времени компания Relational Software, Inc. (ныне Oracle Corporation) уже выпустила свою первую РСУБД. Эти первоначальные продукты тут же стали стандартом для нового класса систем, предназначенных для управления базами данных. В состав этих продуктов вошел SQL, который фактически стал стандартом для подъязыков данных. Производители других систем управления базами данных выпустили свои собственные версии SQL. В этих реализациях обычно имелись все основные возможности продуктов IBM, но, впрочем, не только они. Там также имелись расширения, введенные с целью дать преимущество сильным сторонам именно "своей" РСУБД. В результате, хотя почти все поставщики и использовали варианты одного языка SQL, платформенная совместимость была слабой.

Помни:
Реализация – это конкретная СУБД, работающая на конкретной аппаратной платформе
.

Вскоре началось движение за создание общепризнанного стандарта SQL, которого мог бы придерживаться каждый. В 1986 году организация ANSI выпустила официальный стандарт под названием SQL – 86. Этот стандарт был обновлен той же организацией в 1989 году и получил название SQL – 89, а затем, в 1992 году, был назван SQL – 92. Поставщики СУБД, выпуская новые версии своих продуктов, всегда старались приблизить свои реализации к стандарту. Эти усилия и привели к тому, что мечта о настоящей переносимости SQL стала намного ближе к реальности.

Самой последней версией стандарта SQL является SQL:2003 (ISO / IEX 9075 X:2003). В этой книге описан язык SQL, который определяется стандартом SQL:2003. Конечно, любая конкретная реализация SQL в определенной степени отличается от стандарта. Так как полный стандарт SQL:2003 является слишком всеобъемлющим, то от современных реализаций, видимо, не стоит ждать полного ему соответствия. Однако поставщики систем СУБД сейчас работают над тем, чтобы эти системы все же соответствовали основной части стандартного SQL. Полные спецификации стандартов ISO / IEC доступны в Internet по адресу webstore.ansi.org.

Команды SQL

Язык SQL состоит из ограниченного числа команд, специально предназначенных для управления данными. Одни из этих команд служат для определения данных, другие – для их обработки, а остальные – для администрирования данных. О командах определения и обработки данных рассказывается в главах 4-12, а о командах администрирования данных – в главах 13 и 14.

Чтобы соответствовать стандарту SQL: 2003, в состав реализации должны входить все основные возможности. Кроме того, в ее состав могут входить и расширения этого основного набора (которые также описаны спецификацией SQL:2003). Расширения пока оставим, вернемся к основам. Ниже приведена таблица основных команд SQL:2003.

Если вы из тех программистов, кому нравится проверять новые возможности, то возрадуйтесь.

Таблица 2.1. Основные команды SQL:2003.

ALTER DOMAIN CREATE CURSOR FREE LOCATOR
ALTER TABLE DECLARE TABLE GET DIAGNOSTICS
CALL DELETE GRANT
CLOSE DISCONNECT HOLD LOCATOR
COMMIT DROP ASSERTION INSERT
CONNECT DROP CHARACTER SET OPEN
CREATE ASSERTION DROP COLLATION RELEASE SAVEPOINT
CREATE CHARACTER SET DROP DOMAIN RETURN
CREATE COLLATION DROP ORDERING REVOKE
CREATE DOMAIN DROP ROLE ROLLBACK
CREATE FUNCTION DROP SCHEME SAVEPOINT
CREATE METHOD DROP SPECIFIC FUNCTION SELECT
CREATE ORDERING DROP SPECIFIC PROCEDURE SET CONNECTION
CREATE PROCEDURE DROP SPECIFIC ROUTINE SET CONSTRAINTS
CREATE ROLE DROP TABLE SET ROLE
CREATE SCHEMA DROP TRANSFORM SET SESSION AUTHORIZATION
CREATE TABLE DROP TRANSLATION SET SESSION CHARACTERISTICS
CREATE TRANSFORM DROP TRIGGER SET TIME ZONE
CREATE TRANSLATION DROP TYPE SET TRANSACTION
CREATE TRIGGER DROP VIEW START TRANSACTION
CREATE TYPE FETCH UPDATE
CREATE VIEW    
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.