Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
08_SQL.doc
Скачиваний:
13
Добавлен:
22.08.2019
Размер:
147.97 Кб
Скачать

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