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

5

Расширенные SQL-запросы. Безусловная выборка значений

Вводить SQL-запросы можно непосредственно в командном окне (Command window) или в Query Designer. Для формирования запросов на языке SQL используется конструкция SELECT. Результатом выполнения за­проса является таблица, которая хранится во временном буфере сервера базы данных. Выбранные данные можно использовать для просмотра, формирова­ния графиков, печати отчетов или добавить в них постоянные таблицы базы данных. Длина строки на языке SQL, до 255 символов, регистр не имеет зна­чения .

Синтаксис команды SELECT

SELECT [ALL | DISTINCT] список выбираемых полей

FROM список таблиц

[WHERE условие выборки или соединения] [GROUP BY список полей по условию группировки

[HAVING условие выборки группы]]

[ORDER BY список полей, по которым упорядочить вывод]

При формировании запросов можно использовать уточненные имена полей (например, CUSTOMER.CIJSTOMERNO, т.е. Имя_таблицы.Имя_поля) Ключевое слово ALL подразумевается по умолчанию. Для выборки всех полей таблицы, в том же порядке, что и в таблице используется следующая форма запроса:

SELECT*FROM таблица.

Запрос вида SELECT*FROM R1,R2

соответствует декартову произведению таблиц R1 и R2, т. е R = R1 xR2.

Запрос, представляемый в виде SELECT Rl.A, R2.B

FROM R1,R2

соответствует проекции декартова произведения таблиц Rl и R, на столбцы А из таблицы R1 и В - из таблицы R2, то есть R = πR1,А,R2,B (R1 x R2).

Простая выборка

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

Select stock from ordsale

является столбец STOCK из таблицы ORDSALE (таблица 1).

Таблица 1 - Результат выполнения простой выборки

STOCK

1

1

1

3

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

Выборка уникальных значений

Реляционная СУБД не исключает дубликатов из результата конструк­ции SELECT, если пользователь не потребует это сделать с помощью ключе­вого слова DISTINCT. Примером запроса, исключающего дублирование за­писей, является

SELECT DISTINCT STOCK FROM ORDSALE

Результат его выполнения представлен в таблице 2.

Таблица 2 - Результат выполнения запроса с использованием функции DISTINCT

STOCK

1

3

Выборка вычисляемых значении

При выполнении запросов в СУБД Visual FoxPro осуществляется не только выбор из таблицы определенных значений, но и получение данных, отсутствующих в исходной таблице, то есть выполнение определенных вы­числений (финансовых, статистических и др. функций) и отражение их результатов в результирующей таблице. При организации такого рода выборки информации вычисления могут производиться по одному или нескольким „полям исходной таблицы.

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

При переносе приложений с одного сервера на другой наиболее узким местом являются встроенные функции.

Пример 1. Пусть в некоторой базе данных содержится таблица GOODS (товары), в которой цена па определенный товар не учитывает на­лог на добавленную стоимость (НДС). Используя язык SQL. организовать выборку информации из таблицы GOODS (товары): выбрать все товары и их цены с учетом налога на добавленную стоимость.

SQL-запрос, соответствующий примеру 1:

SELECT STOCK, UNITPRICE * (1 + 0,18) FROM GOODS

Результат выполнения данного запроса представлен в таблице 3.

Таблица 3 — Результат выборки информации из таблицы GOODS

STOCK

UP_NDS

1

3.075

2

730

3

1.250

4

246

5

307.5

6

977.85

7

1.22385

8

0

Применение конструкция SELECT в формировании запросов с вычис­ляемыми полями позволяет использовать в них не только арифметические выражения, но и простые имена полей. Кроме того, в результаты выборки можно добавить константы.

Если в SQL-запрос, соответствующий примеру 1, добавить строку «Стоимость с учетом НДС», то он примет вид:

SELECT STOCK, «Стоимость с учетом НДС», UNITPRICE*(1+0,18)

FROM GOODS

Результат выполнения данного запроса представлен в таблице 4.

Таблица 4 - Результат выполнения запроса

STOCKS

Стоимость с учетом НДС

UP NDS

1

Стоимость с учетом НДС

3.075

2

Стоимость с учетом НДС

730

3

Стоимость с учетом НДС

1.250

4

Стоимость с учетом НДС

246

5

Стоимость с учетом НДС

307.5

6

Стоимость с учетом НДС

977.85

7

Стоимость с учетом НДС

1.22385

При выборке с помощью команды SELECT можно использовать статистиче­ские функции:

  1. MIN(X) - вычисляет минимальное значение из множества X;

  2. МАХ(Х) - вычисляет максимальное значение из множества X.

  3. AVG(X) - вычисляет среднее арифметическое значение из множест­ва X;

  4. SUM(X) - вычисляет сумму значений множества X:

5)COUNT(X) - определяет число элементов множества X. Примеры использования этих функций:

1) SELECT COUNT(*) FROM GOODS - создает выборку, состоящую из одной строки и одного поля, содержащего количество всех строк таблицы GOODS (товары);

2) SELECT MAX(UNITPRICE), MIN(UNITPRICE), AVG(UNITPRICE) FROM GOODS - создает выборку, состоящую из одной cтроки и трех полей, содержащих минимальное значение цены, максималь­ное значение цены и ее среднее значение.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]