Разделы

Авто
Бизнес
Болезни
Дом
Защита
Здоровье
Интернет
Компьютеры
Медицина
Науки
Обучение
Общество
Питание
Политика
Производство
Промышленность
Спорт
Техника
Экономика

Стандарт SQL

SQL - очень динамичный, быстро развивающийся язык. Поэтому за достаточно короткое время были приняты уже два стандарта (SQL/89 и SQL/92) и в настоящее время имеется проект третьего стандарта (SQL/3).

В SQL/89 были стандартизованы следующие типы данных: символьные (CHARACTER), числовые (NUMERIC), целые (INTEGER), укороченные целые (SMALLINT), вещественные (REAL), с удвоенной точностью (DOUBLEPRECISION), с плавающей запятой (FLOAT), десятичные (DECIMAL).
В SQL/92 были добавлены следующие стандартные типы данных: даты (DATE), время (TIME), интервалы (INTERVAL). В стандарте SQL/92 появилась  стандартная версия динамического SQL.

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

В языке SQL часть операторов выражается как в реляционной алгебре, часть - в стиле реляционного исчисления. В командах SQL могут использоваться арифметические операторы сравнения (>, <, >=, <=, =, <>) и логические  операторы  (AND, OR, NOT). Для обозначения всех кортежей в отношении используется символ звездочка (*). В шаблонах используются символ подчеркивание (_) для обозначения любого одиночного символа и символ процент (%) для обозначения любой последовательности символов. Круглые скобки используются для определения порядка выполнения действий, в фигурных скобках указываются константы типа даты, символьные константы указываются в апострофах или двойных кавычках. Ниже рассматриваются основные синтаксические конструкции языка.

Так как SQL начинал создаваться как язык запросов, то и большинство команд предназначено для выборки (SELECT) результатов из таблиц баз данных, то есть отношений. Основная конструкция операции выборки:  SELECT - FROM - WHERE (выбрать-из-где). Для исключения дублирующих результатов при необходимости используется опция DISTINCT (различные): SELECT DISTINCT (что) FROM (откуда) WHERE (условие). Например, для выборки из отношения R1 значений атрибутов A1 и A3 со значением атрибута A1 равного S4 и значением атрибута A2 равного 1000 с исключением дублирующих значений используется команда:  SELECT DISTINCT A1, A3  FROM R1 WHERE A1=”S4” AND A2=1000.

Для удаления кортежей (строк, записей) из отношений используется аналогичная конструкция команды DELETE (удалить): DELETE - FROM - WHERE. Например, для удаления из отношения (таблицы) R1 записей со значением атрибута A2, равного или больше 200, используется команда: DELETE FROM R1 WHERE A2>=200. Для удаления всех записей из отношения используется команда: DELETE <имя отношения>.

Для изменения значений атрибутов используется команда UPDATE (обновить): UPDATE - SET- WHERE. Обновление осуществляется в записях, удовлетворяющих условию, указанному после опции WHERE (или для всех записей, если отсутствует опция WHERE). Имя и значение обновляемого атрибута указывается после опции SET. Например, если в отношении R1 необходимо заменить значение атрибута A1 на S2 для записей со значением атрибута A2, равного 500 или 1000, то используется команда: UPDATE R2 SET A1=’S2” WHERE A2=500 OR A2=1000.

Для вставки строк в отношения используется команда: INSERT INTO (включить в). Можно вставлять одну строку (кортеж) или произвольное количество строк. Значения вставляемых строк определяются списком кортежей или получают в результате выполнения внутреннего запроса (подзапроса). Например, для вставки в отношение R1 записей из отношения R2 со значением атрибута A5, равного ”Алматы”, используется команда: INSERT INTO R1: SELECT * FROM R2 WHERE A5=”Алматы”. Для вставки в отношение R1 строки со значением атрибута A1, равного S5, и значением атрибута A3, равного 2000, используется команда: INSERT INTO R1 (A1, A3) VALUES (“S5”, 2000).

Стандарт SQL предусматривает и другие команды, в том числе  команды для работы с отношениями (таблицами) целиком:
CREATE TABLE - создание новой таблицы базы данных (структура таблицы и параметры полей задаются в команде);
ALTER TABLE - изменение структуры таблицы (изменение структуры таблицы и параметров полей задается в команде);
DROP TABLE- удаление (уничтожение) таблицы.
В командах SQL возможно использование следующих операторов:
MINUS (DIFFERENCE) - вычитание множеств, полученных в результате нескольких запросов;
UNION - объединение множеств, полученных в результате нескольких запросов;
INTERSECT - пересечение множеств, полученных в результате нескольких запросов;
IS IN - указание принадлежности множеству;
IS NOT IN - указание непринадлежности множеству;
EXISTS - квантор существования, используется как альтернатива оператора IS IN;
CONTAINS - указание содержания каких-либо значений;
DOES NOT CONTAINS - указание несодержания каких-либо значений;
BETWEEN - задание диапазона для чисел, букв и т.д.;
 = - указание эквивалентности множеств;
┐ - указание неэквивалентности множеств;
LIKE - указание использования шаблона, содержащего символы  _  и  %;
GROUP BY - задание разделения на группы (группировка данных), группы указываются через запятую);
HAVING - задание условия отбора в группы (используется только с  оператором GROUP BY);
ORDER BY ASCENDING - задание упорядочения по какому-либо столбцу (атрибуту) по возрастанию (по умолчанию) или убыванию (DESCENDING) ASCII-кодов.

При формировании запросов в языке SQL могут  использоваться собственные функции работы с полями языка SQL (агрегатные функции), которые представлены ниже. Функции работы с полями не могут быть вложенными, работают по вертикали, их нельзя использовать для формирования условий.

COUNT (<выражение>) - подсчет числа строк.
MIN (<выражение>) - определяет наименьшее значение искомого элемента в колонке.
MAX (<выражение>) - определяет наибольшее значение искомого элемента в колонке.
SUM (<выражение>) - определяет суммарный итог по колонке числовых данных.
AVG (<выражение>) - среднее значение по колонке числовых данных.

Команда SELECT и вообще команды SQL мало зависят от текущего состояния среды исполнения, они сами открывают нужные им БД.
Стандартный язык SQL, особенно SQL/3, включает в себя большое количество команд, ниже рассматриваются наиболее часто употребляющиеся команды. Следует отметить, что реализация стандартного языка баз данных SQL несколько отличается в различных СУБД. В дальнейшем все примеры команд SQL приводятся с ориентацией на реализацию в среде СУБД Visual FoxPro, за исключением команд управления доступом, которые реализованы только в SQL-серверах.

Источник: Учебное издание - Айтхожаева Евгения Жамалхановна.

Дата публикации:2012-10-30

Просмотров:1381

Вернуться в оглавление:

Комментария пока нет...


Имя* (по-русски):
Почта* (e-mail):Не публикуется
Ответить (до 1000 символов):







...

 

2012-2017 lekcion.ru. За поставленную ссылку спасибо.