ФОРМАТИРОВАНИЕ РЕЗУЛЬТАТОВ ЗАПРОСОВ



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

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

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

Внесение текста в выходные данные запроса. Константы, а также текст, можно включать в предложение запроса SELECT. Однако, бук­венные константы, в отличие от числовых, нельзя использовать в выражениях. В SELECT-предложение можно включить 1+2, но не 'А' + 'В', поскольку 'А' и 'В' здесь просто буквы, а не переменные или символы, используемые для обозначения чего-либо отличного от них самих. Тем не менее, возможность вставить текст в выходные данные запроса вполне реальна.

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

FROM Salespeople;

Упорядочение выходных полей

По умолчанию принята возрастающая последовательность сортировки. Таблица заявок (Orders), упорядоченная по номеру заявки, выглядит так:

 SELECT*

 FROM Orders ORDER BY cnum DESC;

Внутри уже произведенного упорядочения по полю cnum можно упорядочить таблицу и по другому столбцу, например, amt:

SELECT *FROM Orders ORDER BY cnum DESC, amt DESC;

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

Упорядочение составных групп

До этого выходные данные были сгруп­пированы, но порядок групп был произвольным; теперь группы выстроены в определенной последовательности:

SELECT snum, odate, MAX(amt)

FROM Orders

GROUP BY snum, odate ORDER BY snum;

Поскольку в команде не указан способ упорядочения, по умолчанию приме­няется возрастающий.

Упорядочение результата по номеру столбца

Например, можно применить следующую команду, чтобы увидеть оп­ределенные поля таблицы Salespeople, упорядоченные по убыванию поля com­mission (comm):

SELECT sname, comm FROM Salespeople ORDER BY 2 DESC;

Столб­цы, полученные с помощью функций агрегирования, константы или выражения в предложении запроса SELECT, можно применить и с ORDER BY, если на них ссылаются по номеру. Например, чтобы подсчитать заявки (orders) для каждого продавца (salespeople) и вывести результаты в убывающем порядке:

SELECT snum, COUNT (DISTINCT onum)

 FROM Orders GROUP BY snum ORDER BY 2 DESC;

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

SELECT snum, COUNT (DISTINCT onum) FROM Orders;

Использование множества таблиц в одном запросе

Соединение таблиц.

Предположим, нужно установить связь между продавцами (Salespeople) и по­купателями (Customers) в соответствии с местом их проживания, чтобы получить все возможные комбинации продавцов и покупателей из одного города. Для этого необходимо взять продавца из таблицы Salespeople и выполнить по таб­лице Customes поиск всех покупателей, имеющих то же значение в столбце city. Это можно сделать, введя следующую команду:

SELECT Customers.cname, Salespeople.sname, Salespeople.city

FROM Salespeople, Customers
WHERE Salespeople.city = Customers.city;

Операция соединения таблиц посредством ссылочной целостности

Эта операция применяется для использования связей, встроенных в базу дан­ных. В предыдущем примере связь между таблицами была установлена с помо­щью операции соединения. Но эти таблицы уже связаны по значениям полем snum. Такая связь называется состоянием ссылочной целостности. Стандартное применение операции соединения состоит в извлечении данных в терминах этой связи. Чтобы показать соответствие имен покупателей именам продавцов, обслуживающих этих покупателей, используется следующий запрос:

SELECT Customers. cname, Salespeople. sname
FROM Customers, Salespeople                              

WHERE Salespeople.snum = Customers.snum;

 


Дата добавления: 2018-05-13; просмотров: 500; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!