Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



План:

1. Язык SQL в СУБД. Назначение, стандарты, достоинства.

2. Структура команды SQL. Типы данных. Выражения.

3. Функциональные возможности языка SQL

4. Диалекты языка SQL в СУБД

-1-

Язык SQL в СУБД. Назначение, стандарты, достоинства

SQL представляет собой непроцедурный (декларативный) язык, используемый для управления данными реляционных СУБД.

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

Первоначально официального стандарта в области БД не существовало, что в определенном смысле сдерживало развитие технологий баз данных. В результате совместных усилий двух организаций: ANSI (American National Standarts) и ISO (International Standarts Organisation) в 1986 году был принят стандарт SQL-86 (SQL-1). После появления первого международного стандарта языка работа в этой области продолжилась, и в 1992 г. был принят второй международный стандарт SQL-92 (SQL-2), в 1999 г. появляется объектно-ориентированный язык SQL:1999 (SQL-3), а в 2003 г. принят стандарт SQL:2003. Каждый стандарт представляет собой многостраничный документ сложной структуры. К примеру, текст стандарта SQL-92 составляет около 600 страниц.

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

Язык SQL является первым и пока единственным стандартным языком работы с базами данных, который получил достаточно широкое распространение. Есть еще один стандартный язык работы с базами данных, NDL (Network Database Language), который построен на использовании сетевой модели CODASYL, но он применяется лишь в немногих разработках.

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

Характеризуя язык SQL в целом, можно выделить следующие его черты:

¾ высокоуровневая структура, напоминающая английский язык;

¾ независимость от конкретных СУБД;

¾ межплатформенная переносимость;

¾ наличие развивающихся стандартов;

¾ возможность выполнения интерактивных запросов извлечения данных и модификации их структуры;

¾ обеспечение программного доступа к базам данных;

¾ возможность различного представления данных;

¾ поддержка архитектуры клиент/сервер;

¾ динамическое определение данных (возможность изменять и расширять структуру БД даже в то время, когда пользователи обращаются к ее содержимому);

¾ расширяемость и поддержка объектно-ориентированных технологий;

¾ возможность доступа к данным в среде Internet.

-2-

Структура команды SQL. Типы данных. Выражения

Каждая команда SQL начинается с действия – ключевого слова или группы слов, описывающих выполняемую операцию. Например, INSERT (добавить), DELETE (удалить), COMMIT (завершить), CREATE TABLE (создать таблицу).

После действия может следовать одно или несколько предложений. Предложение описывает данные, с которыми работает команда, или содержит уточняющую информацию о действии, выполняемом командой. Каждое предложение начинается с ключевого слова, такого как, например, WHERE (где), FROM (откуда), INTO (куда), HAVING (имеющий). Многие предложения содержат имена таблиц и полей БД; некоторые – константы и выражения.

Имена таблиц, полей и пользователей должны содержать от 1 до 18 символов, начинаться с буквы и не содержать пробелов или специальных символов пунктуации. В качестве имен нельзя использовать ключевые слова SQL.

Пример команды SQL:

Типы данных языка SQL-1

Тип данных Описание

CHAR(длина)

CHARACTER(длина) Строка символов постоянной длины

INTEGER

INT Целое число

SMALLINT Малое целое число

NUMERIC(точность, степень)

DECIMAL(точность, степень

DEC(точность, степень) Число с фиксированной запятой

FLOAT (точность) Число с плавающей запятой

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

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

Для указания конкретных значений данных используются константы.

Различают следующие виды констант:

Константы с фиксированной запятой (пишут точку)

21 -375.18 62.3

Константы с плавающей запятой

1.5Е7 -3.14Е9 2.5Е-6 0.783Е24

Строковые константы (должны быть заключены в одинарные кавычки).

'Минск' 'New York' 'Иванов И. И.'

Хотя в SQL-1 стандартные функции не определены, большинство СУБД поддерживает так называемые агрегатные (итоговые) функции. К часто используемым агрегатным функциям можно отнести следующие:

· COUNT – количество значений в столбце,

· SUM – сумма значений в столбце,

· AVG – среднее значение в столбце,

· MAX – максимальное значение в столбце,

· MIN – минимальное значение в столбце.

Примечание. Для функций SUM и AVG рассматриваемый столбец должен содержать числовые значения.

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

· арифметические:

+ (сложение), - (вычитание), * (умножение), / (деление);

· отношения:

= (равно), > (больше), < (меньше), >= (больше или равно),

<= (меньше или равно), <> (не равно);

· логические:

AND (логическое "И"), OR (логическое "ИЛИ"), NOT ("НЕТ");

· специальные:

IN (определяет множество, которому может принадлежать значение);

BETWEEN (задает границы, в которые должно попадать значение);

LIKE (применяется для поиска по шаблону. В шаблоне используются специальные символы: % (процент), заменяющий любую последовательность символов и _ (подчеркивание), заменяющий один любой символ);

IS NULL – используется для поиска NULL-значений.

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

-3-

Функциональные возможности языка SQL

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

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

SQL выполняет множество функций:

· SQL – язык интерактивных запросов. Пользователи вводят команды SQL в интерактивном режиме для выборки данных и отображения их на экране, а также внесения изменений в БД.

· SQL – язык программирования баз данных. Чтобы получить доступ к базе данных, в прикладные программы вставляются команды SQL.

· SQL – язык администрирования баз данных. Администратор БД использует SQL для определения структуры базы данных и управления доступом к данным.

· SQL – язык создания приложений клиент/сервер. В прикладных программах SQL используется как средство организации связи по локальной сети с сервером баз данных, в которой хранятся совместно используемые данные/ и др.

Формирование запросов на языке SQL должно осуществляться в строгом соответствии с форматом (правилом формирования) команды.

При описании структуры и правил использования некоторого языка программирования употребляется определенная система обозначений.

Для описания форматов команд языка SQL используем так называемую форму Бэкуса-Наура (БНФ), в которой приняты следующие обозначения:

< > (угловые скобки) – то, что в них указано, определяет пользователь;

[ ] (квадратные скобки) – выделяют те части команды, которые могут отсутствовать;

{ } (фигурные скобки) – объединяют последовательность элементов в логическую группу;

... (многоточие) – указывает на допустимость повторения элемента или группы элементов один или несколько раз;

½ (вертикальная черта) – означает альтернативный выбор;

() (круглые скобки) – заключают аргументы команды;

(пробелы) – используются для разделения элементов команды.

-4-

Диалекты языка SQL в СУБД

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

Выделяют три уровня соответствия стандарту ANSI/ISO — начальный, промежуточный и полный. В настоящее время не существует ни одного диалекта, полностью соответствующего стандарту. Производители СУБД (например, Oracle, Microsoft, Borland, Informix, Sybase) применяют собственные реализации SQL, отвечающие как минимум начальному уровню соответствия стандарту и содержащие некоторые расширения, специфические для данной СУБД. Не существует двух совершенно идентичных диалектов. Более того, поскольку разработчики баз данных вводят в системы все новые функциональные средства, они постоянно расширяют свои диалекты языка SQL, в результате чего отдельные диалекты все больше и больше отличаются друг от друга. Это имеет свои достоинства и недостатки.

Конкретная реализация языка, может включать в себя более широкие возможности по сравнению со стандартом SQL, например, больше типов данных, большее количество команд, больше дополнительных возможностей у имеющихся команд. Такие возможности делают работу с конкретной СУБД более эффективной. Кроме того, такие нестандартные возможности языка проходят практическую апробацию и со временем могут быть включены в стандарт. Недостаток в том, что различия в синтаксисе реализаций SQL затрудняют перенос приложений из одной системы в другую. Например, если приложение было написано для базы данных MS SQL Server с использованием своего диалекта SQL – языка Transact-SQL, то при переносе системы в базу данных ORACLE, не все конструкции языка будут понятны соответствующему диалекту SQL – языку PL/SQL.

В широко распространенных в настоящее время СУБД используются следующие диалекты языка SQL: PL/SQL – в СУБД Oracle; Transact-SQL – в СУБД Microsoft SQL; Informix-SQL – в СУБД Informix; Jet SQL – Microsoft Access.

Язык Jet SQL почти соответствует стандарту ANSI SQL. Основные различия языков Jet SQL и ANSI SQL состоят в следующем:

· они имеют разные наборы зарезервированных слов и типов данных;

· разные правила применимы к оператору Between, используемому для определения условий выборки записей;

· подстановочные знаки ANSI и Microsoft Jet, которые используются в операторе Like, различны;

· язык Jet SQL обычно предоставляет пользователю большую свободу, например, разрешается группировка и сортировка по значению выражения;

· язык Jet SQL позволяет использовать более сложные выражения.





Дата публикования: 2014-11-04; Прочитано: 2289 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.011 с)...