8.2. Структура команды sql. Типы данных. Выражения
Для обращения к реляционной таблице в языке SQL необходимо написать (задать) команду.
В общем случае структура команды SQL имеет вид:
Действие Предложения Ключевые слова
SELECT Вес заказа FROM Заказы WHERE Вес заказа=250 ORDER BY Номер заказа
(выбрать) (поле) (из) (имя таблицы) (где) (условие) (сортировка)
SELECT (выбрать) – ключевое слово сообщает СУБД, какое действие будет выполнять данная команда. Команды запросы начинаются ключевым словом. Кроме SELECT это могут быть слова CREATE- создать, INSERT -вставить, DELETE- удалить, COMMIT –завершить и д.р.. За ним может следовать способ выборки (DISTINCT- с удалением дубликатов выборки, ALL- без удаления- используется по умолчанию) Затем следует список перечисленных через запятую полей, которые выбираются запросом из таблиц, или символ * (звездочка) для выбора всей строки. Любые поля, не перечисленные здесь, не будут включены в результирующее отношение, соответствующее выполнению команды.
FROM – ключевое слово, подобно SELECT, которое присутствует в каждой команде. Оно сопровождается пробелом, а затем именем таблиц, используемых в качестве источников информации. Имена таблиц, полей должны содержать от 1 до 18 символов, начинаться с буквы и не содержать пробелов или специальных символов. В качестве имен нельзя использовать ключевые слова SQL.
В случае, если указано более одного имени таблицы, неявно подразумевается, что над перечисленными таблицами осуществляется операция декартова произведения.
Все последующие разделы команды SELECT являются необязательными.
WHERE – ключевое слово, за которым следует предикат –условие, налагаемое на запись в таблице, которому она должна удовлетворять, чтобы пропасть в выборку, аналогична операции фильтрации в реляционной алгебре.
ORDER BY – сортировка выводимых записей (Asc – по возрастанию, Desc – по убыванию. Если не указан вид сортировки, то происходит сортировка по возрастанию).
Пример:
Вывести список всех весов заказов (без повторений) из таблицы Заказы
SELECT DISTINC Вес заказа FROM Заказы
Результат:
Вес заказа |
250 |
300 |
450 |
200 |
600 |
550 |
2) Вывести список всех заказов для веса заказа меньше 400 из таблицы Заказы, отсортировав по Номеру заказа
SELECT Номер заказа, Вес заказа
FROM Заказы
WHERE Вес заказа <400
ORDER BY Номер заказа
Результат:
Номер заказа |
Вес заказа |
1021 |
250 |
1022 |
300 |
1024 |
200 |
Язык SQL оперирует с данными, основные типы которых приведены в табл. 8.1.
Таблица 8.1
Типы данных языка SQL
Тип данных |
Описание |
CHAR(длина) CHARACTER(длина) |
Строка символов постоянной длины |
INTEGER INT |
Целое число |
SMALLINT |
Малое целое число |
NUMERIC(точность, степень) DECIMAL(точность, степень) DEC(точность, степень) |
Число с фиксированной запятой |
FLOAT (точность) |
Число с плавающей запятой |
DATETIME |
Дата, время |
Выражения в SQL используются для задания критериев выбора данных или выполнения операций над значениями, которые считаны из базы данных. Выражения представляют собой определенную последовательность полей базы данных, констант, функций, соединенных операторами.
Константы используются для указания конкретных значений данных. Константы с фиксированной запятой, например: 21 -375.18 62.3
Константы с плавающей запятой, например: 1.5Е7 -3.14Е9 2.5Е-6 0.783Е24
Строковые константы должны быть заключены в одинарные кавычки. Примеры таких констант: 'Минск' 'New York' 'Иванов И. И.'
Отсутствующее значение (NULL). SQL поддерживает обработку отсутствующих данных с помощью понятия «отсутствующее значение». Примеры отсутствующих значений приведены в табл. 6.2. отсутствует вес заказа для заказа 1024.
Заказы
-
Номер заказа
Код клиента
Код валюты
Дата заказа
Вес заказа
1021
АС
100
01.02.06
250
1022
АА
101
10.04.06
300
1023
АD
100
12.04.06
450
1024
АВ
103
20.05.06
NULL
1025
АС
102
01.06.06
600
1026
АD
101
10.07.06
550
Большинство SQL-ориентированных СУБД поддерживает так называемые агрегатные (итоговые) функции. К часто используемым агрегатным функциям можно отнести следующие:
COUNT – количество значений в столбце таблицы;
SUM – сумма значений в столбце;
AVG – среднее арифметическое значений в столбце;
MAX – максимальное значение в столбце;
MIN – минимальное значение в столбце.
В выражениях можно использовать следующие типы операторов:
арифметические: + (сложение), - (вычитание), * (умножение), / (деление);
отношения: = (равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), <> (не равно);
логические: AND (логическое "И"), OR (логическое "ИЛИ"), NOT (логическое отрицание);
специальные:
IN – определяет множество, которому может принадлежать значение;
BETWEEN –задает границы, в которые должно попадать значение;
LIKE – применяется для поиска по шаблону. В шаблоне используются специальные символы: % (процент), заменяющий любую последовательность символов и _ (подчеркивание), заменяющее один любой символ;
IS NULL – используется для поиска NULL-значений.
Пример:
Вычислить общий вес заказов для кода клиента АС.
SELECT SUM(Вес заказа) FROM Заказы WHERE Kод клиента=’AC’
Результат: 850
Пример:
Увеличить вес заказа в пять раз для кода клиента АС или кода клиента АА.
SELECT 5* Вес заказа FROM Заказы WHERE Код клиента=’АС’ OR Код клиента= ‘АА’
Результат:
1250
3000
1500