- •Структура sql
- •Операторы манипулирования данными Data Manipulation Lanquaqe (dml)
- •Программный sql
- •Типы данных
- •Integer или int — целые числа, соответствует целым числам, хранимым в четырех байтах.
- •Встроенные функции
- •Оператор выбора select
- •Логические операции с неопределенными значениями
- •Применение агрегатных функций и вложенных запросов в операторе выбора
- •Вложенные запросы
- •Внешние объединения
Программный sql
Оператор |
Смысл |
Действие |
DECLARE |
Определяет курсор для запроса |
Задает некоторое имя и определяет связанный с ним запрос к БД, который соответствует виртуальному набору данных |
OPEN |
Открыть курсор |
Формирует виртуальный набор данных, соответствующий описанию указанного курсора и текущему состоянию БД |
FETCH |
Считать строку из множества строк, определенных курсором |
Считывает очередную строку, заданную параметром команды из виртуального набора данных, соответствующего открытому курсору |
CLOSE |
Закрыть курсор |
Прекращает доступ к виртуальному набору данных, соответствующему указанному курсору |
PREPARE |
Подготовить оператор SQL к динамическому выполнению |
Сгенерировать план выполнения запроса, соответствующего заданному оператору SQL |
EXECUTE |
Выполнить оператор SQL, ранее подготовленный к динамическому выполнению |
Выполняет ранее подготовленный план запроса |
Типы данных
В языке SQL/89 поддерживаются следующие типы данных:
CHARACTER(n) или CHAR(n) — символьные строки постоянной длины в n символов.
NUMERIC[(n,m)] — точные числа, здесь n — общее количество цифр в числе, m — количество цифр слева от десятичной точки.
DECIMAL[(n,m)] — точные числа, здесь n — общее количество цифр в числе, m — количество цифр слева от десятичной точки.
DEC[(n,m)] — то же, что и DECIMAL[(n,m)].
Integer или int — целые числа, соответствует целым числам, хранимым в четырех байтах.
SMALLINT — целые числа меньшего диапазона соответствует целым числам, хранимым в двух байтах.
FLOAT[(n)] — числа большой точности, хранимые в форме с плавающей точкой. Здесь n — число байтов, резервируемое под хранение одного числа. Диапазон чисел определяется конкретной реализацией.
REAL — вещественный тип чисел, который соответствует числам с плавающей точкой, меньшей точности, чем FLOAT.
DOUBLE PRECISION специфицирует тип данных с определенной в реализации точностью большей, чем определенная в реализации точность для REAL.
В стандарте SQL92 добавлены следующие типы данных:
VARCHAR(n) — строки символов переменной длины.
NCHAR(N) — строки локализованных символов постоянной длины.
NCHAR VARYING(n) — строки локализованных символов переменной длины.
BIT(n) — строка битов постоянной длины.
BIT VARYING(n) — строка битов переменной длины.
DATE — календарная дата.
TIMESTAMP(точность) — дата и время.
INTERVAL — временной интервал.
Встроенные функции
В стандарте SQL1 не были определены встроенные функции, в большинстве коммерческих СУБД такие функции были реализованы, и в стандарт SQL2 уже введен ряд стандартных встроенных функций:
BITLENGTH(строка) — количество битов в строке;
CAST(значение AS тип данных) — значение, преобразованное в заданный тип данных;
CHARLENGTH(строка) — длина строки символов;
CONVERT(строка USING функция) — строка, преобразованная в соответствии с указанной функцией;
CURRENTDATE — текущая дата;
CURRENTTIME(точность) — текущее время с указанной точностью;
CURRENTTIMESTAMP(точность) — текущие дата и время с указанной точностью;
LOWER(строка) — строка, преобразованная к нижнему регистру;
OCTEDLENGTH(строка) — число байтов в строке символов;
POSITION( первая строка IN вторая строка) — позиция, с которой начинается вхождение первой строки во вторую;
SUBSTRING(строка FROM n FOR длина) — часть строки, начинающаяся с n-го символа и имеющая указанную длину;
TRANSLATE(строка USING функция) — строка, преобразованная с использованием указанной функции;
TRIM(BOTH символ FROM строка) — строка, у которой удалены все первые и последние символы;
TRIM(LEADING символ FROM строка ) — строка, в которой удалены все первые указанные символы;
TRIM(TRAILING символ FROM строка) — строка, в которой удалены последние указанные символы;
UPPER(строка) — строка, преобразованная к верхнему регистру.