- •Язык запросов sql
- •Просмотр только определенного столбца таблицы
- •Переупорядочение столбца
- •Удаление избыточных данных
- •Квалифицированный выбор при использовании предложений
- •Использование специальных операторов в условиях.
- •In и between используются также, как и реляционные операторы, чтобы сравнивать значения, которые берутся либо из набора ( для in ) либо из диапазона ( для between ).
- •Работа с нулевыми( null ) значениями
- •Использование not со специальными операторами
- •Обобщение данных с помощью агрегатных функций
- •Включение дубликатов в агрегатные функции
- •Агрегаты построенные на скалярном выражении
- •Предложение group by
- •Предложение having
- •Формирование выводов запросов
- •Упорядочение вывода по номеру столбца
- •Упорядочение с помощью опретора null
Формирование выводов запросов
Большинство основанных на SQL баз данных предоставляют специальные средства, позволяющие совершенствовать вывод запросов.
=========== СТРОКИ И ВЫРАЖЕНИЯ ============
SQL позволяет помещать скалярные выражения и константы среди выбранных полей. Эти выражения могут дополнять или замещать поля в предложениях SELECT, и могут включать в себя одно или более выбранных полей. Например, вы можете пожелать, представить комиссионные вашего продавца в процентном отношении, а не как десятичные числа. Просто достаточно:
SELECT snum, sname, city, comm * 100
FROM Salespeople;
============СТОЛБЦЫ ВЫВОДА====================
Последний столбец предшествующего примера без наименования, потому что это - столбец вывода. Столбцы вывода - это столбцы данных, созданные запросом способом, иным, чем просто извлечение их из таблицы. Вы создаете их всякий раз, когда вы используете агрегатные функции, константы, или выражения в предложении SELECT запроса. Так как имя столбца - один из атрибутов таблицы, а столбцы, которые приходят не из таблиц, не имеют никаких имен. Другими словами, непомеченные столбцы вывода могут обрабатываться также как и столбцы извлеченные из таблиц, почти во всех ситуациях.
=======ПОМЕЩЕНИЕ ТЕКСТА В ВАШЕМ ВЫВОДЕ ЗАПРОСА=======
Вы можете вставлять константы в предложение SELECT запроса, включая и текст. Однако символьные константы, в отличие от числовых констант, не могут использоваться в выражениях. Вы можете иметь выражение 1 + 2 в вашем предложении SELECT, но вы не можете использовать выражение типа 'A' + 'B'; это приемлемо, только если мы имеем в виду что 'A' и 'B' это просто буквы, а не переменные и не символы. Тем ни менее, можно вставлять текст в вывод запросов. Вы можете усовершенствовать предыдущий пример, представив комиссионные как проценты со знаком процента(%). Это даст вам возможность помещать в вывод такие единицы, как символы и комментарии:
SELECT snum, sname, city, ' % ', comm * 100
FROM Salespeople;
Обратите внимание, что пробел перед процентом вставляется как часть строки. Эта же самая особенность может использоваться, чтобы маркировать вывод вместе со вставляемыми комментариями. Вы должны помнить, что этот же самый комментарий будет напечатан в каждой строке вывода, а не просто один раз для всей таблицы. Предположим, что вы генерируете вывод для отчета, который бы указывал число заказов получаемых в течение каждого дня. Вы можете промаркировать ваш вывод, сформировав запрос следующим образом:
SELECT ' For ', odate, ', there are ',
COUNT ( DISTINCT onum ), 'orders.'
FROM Orders
GROUP BY odate;
Как вы можете видеть, одиночный неизменный комментарий для каждой строки таблицы может быть очень полезен, но имеет ограничения. Иногда изящнее и полезнее, произвести один комментарий для всего вывода в целом, или производить свой собственный комментарии для каждой строки. Различные программы, использующие SQL, часто обеспечивают специальные средства типа генератора отчетов, которые разработаны, чтобы форматировать и совершенствовать вывод.
======= УПОРЯДОЧЕНИЕ ВЫВОДА ПОЛЕЙ ========
Как мы подчеркивали, таблицы - это неупорядоченные наборы данных, и данные, которые выходят из них, не обязательно появляются в какой-то определенной последовательности. SQL использует команду ORDER BY, чтобы упорядочивать вывод. Эта команда упорядочивает вывод запроса согласно значениям в том или ином количестве выбранных столбцов. Многочисленные столбцы упорядочиваются один внутри другого, также как с GROUP BY, и вы можете определять возрастание (ASC) или убывание (DESC) для каждого столбца. По умолчанию установлено - возрастание. Давайте рассмотрим таблицу заказа, приводимую в порядок с помощью номера:
SELECT *
FROM Orders
ORDER BY cnum DESC;
УПОРЯДОЧЕНИЕ С ПОМОЩЬЮ МНОГОЧИСЛЕНЫХ СТОЛБЦОВ
Мы можем также упорядочивать таблицу с помощью другого столбца, например, с помощью поля amt внутри упорядочения поля cnum:
SELECT *
FROM Orders
ORDER BY cnum DESC, amt DESC;
Вы можете использовать ORDER BY таким же способом сразу с любым числом столбцов. Обратите внимание что, во всех случаях, столбцы, которые упорядочиваются, должны быть указаны в выборе SELECT.
УПОРЯДОЧЕНИЕ АГРЕГАТНЫХ ГРУПП
ORDER BY может, кроме того, использоваться с GROUP BY для упорядочения групп. Если это так, то ORDER BY всегда должен стоять после ORDER BY. Перед группированием вывода, порядок групп был произвольным; а теперь заставим группы размещаться в последовательности:
SELECT snum, odate, MAX (amt)
FROM Orders
GROUP BY snum, odate
ORDER BY snum;
Так как мы не указывали на возрастание или убывание заказа, возрастание используется по умолчанию.
