Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




Расширенные 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
 
 
 
 

 

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

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

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

 

SELECT DISTINCT STOCK FROM ORDSALE

 

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

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

STOCK
 
 

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

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

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

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

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

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

 

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

 

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

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

STOCK UP_NDS
  3.075
   
  1.250
   
  307.5
  977.85
  1.22385
   

 

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

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

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

FROM GOODS

 

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

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

STOCKS Стоимость с учетом НДС UP NDS
  Стоимость с учетом НДС 3.075
  Стоимость с учетом НДС  
  Стоимость с учетом НДС 1.250
  Стоимость с учетом НДС  
  Стоимость с учетом НДС 307.5
  Стоимость с учетом НДС 977.85
  Стоимость с учетом НДС 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троки и трех полей, содержащих минимальное значение цены, максималь­ное значение цены и ее среднее значение.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...