Программирование >>  Понятие sql 

1 ... 14 15 16 [ 17 ] 18 19 20 ... 95


ЭТА ГЛАВА РАСШИРИТ ВАШИ ВОЗМОЖНОСТИ в работе с выводом который производит запрос. Вы узнаете как вставлять текст и константы между выбранных полей, как использовать выбранные поля в математических выражениях, чьи результаты затем становятся выводом, и как сделать чтобы ваши значения выводились в определенном порядке. Эта последняя особенность включена, чтобы упорядочивать ваш вывод по любым столбцам, любым полученным значениям этого столбца, или по обеим.

СТРОКИ И ВЫРАЖЕНИЯ

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

СКАЛЯРНОЕ ВЫРАЖЕНИЕ С ПОМОЩЬЮ ВЫБРАННЫХ ПОЛЕЙ

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

SELECT snum, sname, city, comm * 100 FROM Salespeople;

Вывод из этого запроса показывается в Рисунке 7.1.

=============== SQL Execution Log ============

SELECT snum, sname, city, comm * 100

FROM Salespeople;

snum sname city

1001 Peel London 12.000000

1002 Serres San Jose 13.000000

1004 Motika London 11.000000

1007 Rifkin Barcelona 15.000000

1003 Axelrod New York 10.000000

Рисунок 7.1: Помещение выражения в вашем запросе

СТОЛБЦЫ ВЫВОДА

Последний столбец предшествующего примера непомечен (т.е. без наименования), потому что это - столбец вывода. Столбцы вывода - это столбцы данных созданные запросом способом, иным чем просто извлечение их из таблицы. Вы создаете их всякий раз, когда вы используете агрегатные функции, константы, или выражения в предложении SELECT запроса. Так как имя столбца - один из атрибутов таблицы, столбцы которые приходят не из таблиц не имеют никаких имен. Другими словами не-



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

ПОМЕЩЕНИЕ ТЕКСТА В ВАШЕМ ВЫВОДЕ ЗАПРОСА

Символ A, когданичегонезначит сам по себе, - является константой, такой например как число 1. Вы можете вставлять константы в предложение SELECT запроса, включая и текст. Однако символьные константы, в отличие от числовых констант, не могут использоваться в выражениях. Вы можете иметь выражение 1+2 в вашем предложении SELECT, но вы не можете использовать выражение типа A + B; это приемлемо только если мы имеем в виду что A и B это просто буквы, а не переменные и не символы.

Тем ни менее, возможность вставлять текст в вывод ваших запросов очень удобная штука.

Вы можете усовершенствовать предыдущий пример представив комиссионные как проценты со знаком процента (%). Это даст вам возможность помещать в вывод такие единицы как символы и комментарии, как например в следующем примере (вывод показывается в Рисунке 7.2)

SELECT snum, sname, city,%, comm * 100 FROM Salespeople;

=============== SQL Execution Log ============

SELECT snum, sname, city, %, comm * 100

FROM Salespeople;

snum sname city

1001 Peel London % 12.000000

1002 Serres San Jose % 13.000000

1004 Motika London % 11.000000

1007 Rifkin Barcelona % 15.000000

1003 Axelrod New York % 10.000000

Рисунок 7.2: Вставка символов в ваш вывод

Обратите внимание что пробел перед процентом вставляется как часть строки. Эта же самая особенность может использоваться чтобы маркировать вывод вместе с вставляемыми комментариями. Вы должны помнить, что этот же самый комментарий будет напечатан в каждой строке вывода, а не просто один раз для всей таблицы. Предположим что вы генерируете вывод для отчета который бы указывал число порядков получаемых в течение каждого дня. Вы можете промаркировать ваш вывод (см. Рисунок 7.3) сформировав запрос следующим образом:

SELECT For , odate, , there are , COUNT ( DISTINCT onum ), orders.

FROM Orders GROUP BY odate;



SQL Execution Log SELECT For, odate, , there are COUNT (DISTINCT onum), orders FROM Orders GROUP BY odate;

For For For For

odate

10/03/1990 10/04/1990 10/05/1990 10/06/1990

there are there are there are there are

5 2 1 2

orders. orders. orders. orders.

Рисунок 7.3: Комбинация текста, значений поля, и агрегатов

Грамматической некорректности вывода, на 5 Октября, невозможно избежать не создав запроса, еще более сложного чем этот.(Вы будете должны использовать два запроса с UNION, который мы будем описывать в Главе 14.) Как вы можете видеть, одиночный неизменный комментарий для каждой строки таблицы может быть очень полезен, но имеет ограничения. Иногда изящнее и полезнее, произвести один комментарий для всего вывода в целом, или производить свой собственный комментарии для каждой строки.

Различные программы использующие SQL часто обеспечивают специальные средства типа генератора отчетов (например Report Writer), которые разработаны чтобы форматировать и совершенствовать вывод. Вложенный SQL может также эксплуатировать возможности того языка в который он вложен.SQL сам по себе интересен прежде всего при операциях с данными. Вывод, по существу, это информация, и программа использующая SQL может часто использовать эту информацию и помещать ее в более привлекательную форму. Это, однако, вне сферы самой SQL.

УПОРЯДОЧЕНИЕ ВЫВОДА ПОЛЕЙ

Как мы подчеркивали, таблицы - это неупорядоченные наборы данных, идан-ные которе выходят из их, не обязательно появляются в какой-то определенной по-следовательности.SQL использует команду ORDER BY чтобы позволять вам упорядочивать ваш вывод. Эта команда упорядочивает вывод запроса согласно значениям в том или ином количестве выбранных столбцов. Многочисленые столбцы упорядочиваются один внутри другого, также как с GROUP BY, и вы можете определять возрастание (ASC) или убывание (DESC) для каждого столбца. По умолчанию установлено - возрастание. Давайте рассмотрим нашу таблицу порядка приводимую в порядок с помощью номера заказчика (обратите внимание на значения в cnum столбце):

SELECT * FROM Orders

ORDER BY cnum DESC;

Вывод показывается в Рисунке 7.4.



1 ... 14 15 16 [ 17 ] 18 19 20 ... 95

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика