Содержание лекционного занятия:
· Краткая история языка SQL
· Типы команд SQL
· Типы данных SQL/92
Использование реляционных баз данных возможно только при наличии эффективных средств управления ими. Поэтому после публикаций статей Кодда, предлагающих реляционную модель данных, стали активно проводиться исследования по созданию языков управления реляционными данными.
Сейчас наибольшее распространение получил язык SQL, который является единственным языком реляционных баз данных, принятым в качестве стандарта ANSI.
Хотя SQL и называется языком запросов, он включает в себя кроме средств запросов и все необходимые средства по управлению базами данных.
Краткая история языка SQL
Язык реляционных баз данных SQL был разработан в середине 70-х годов в рамках исследовательского проекта экспериментальной реляционной СУБД System R компании IBM. Данный проект включал в себя разработку реляционной системы управления базами данных и языка SEQUEL (Structured English Query Language). Исходное название SEQUEL только частично отражало суть этого языка.
В конце 70-х годов модифицированный вариант языка SEQUEL, получивший название SQL, был выпущен корпорацией Oracle в качестве языка коммерческой системы управления базами данных. В 1983 г. компания IBM выпустила SQL в качестве языка управления СУБД DB2.
Американский национальный институт стандартов (ANSI) принял язык SQL в качестве стандарта в 1986 г. С тех пор этот стандарт пересматривался два раза — в 1989 г. были внесены некоторые незначительные изменения, а в 1992 г. стандарт SQL был довольно существенно расширен и в настоящее время известен под названием ANSI SQL-92 или SQL/92.
Следует понимать, что ANSI SQL — всего лишь стандарт, не являющийся реальным языком. Каждый производитель систем управления базами данных, как правило, предлагает собственную реализацию языка SQL.
Типы команд SQL
Команды языка SQL обычно подразделяются на несколько групп. Основные типы команд следующие:
· DDL (Data Definition Language) — язык определения данных. Команды данной группы используются для создания и изменения структуры объектов базы данных (например, для создания и удаления таблиц);
· DML (Data Manipulation Language) — язык манипулирования данными. Команды DML используются для манипулирования информацией, содержащейся в объектах базы данных;
· DCL (Data Control Language) — язык управления данными. Соответствующие команды предназначены для управления доступом к информации, хранящейся в базе данных;
· DQL (Data Query Language) — язык. Это наиболее часто используемые команды, предназначенные для формирования запросов к базе данных (запрос — это обращение к базе данных для получения соответствующей информации);
· команды администрирования базы данных предназначены для осуществления контроля за выполняемыми действиями и анализа производимых операций;
· команды управления транзакциями.
Типы данных SQL/92
Типы данных, используемые в стандартном SQL, можно подразделить на следующие группы:
· строковые типы;
· числовые типы;
· типы для представления даты и времени.
Строковые типыВ SQL/92 определены два строковых типа:
· символьные строки фиксированной длины;
· символьные строки переменной длины.
Числовые типы
Числовые типы подразделяются на:
· целочисленные типы;
· вещественные типы с фиксированной точкой;
· вещественные типы с плавающей точкой;
· двоичные строки фиксированной и переменной длины.
Типы для представления даты и времени
Очевидно, что данные типы используются для хранения информации, относящейся к датам и времени.
Иногда типы данных, предназначенные для хранения времени и даты, называются темпоральными.
В стандарте SQL определены следующие типы данных для хранения информации о дате и времени:
· DATE — используется для хранения даты;
· TIME — используется для хранения времени;
· TIMESTAMP — хранит дату и время;
· INTERVAL — хранит промежуток времени между двумя датами или между двумя моментами времени.
Следует заметить, что в большинстве реализаций SQL поддерживаются некоторые дополнительные типы данных.
Вопросы для самоконтроля:
1.Язык определения схем данных (Schema Definition Language, SDL)
2.Язык манипулирования данными (Data Manipulation Language, DML)
Рекомендуемая литература: