Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Price FROM flat order BY Room, Price DESC, 5




SELECT Number, Address, Floor, Room, Square,

FROM people

FROM spisok

SELECT UPPER(Fam)

WHERE LOWER(Name)='Владимир'

В результате выполнения данного оператора будут большими буквами выведены значения поля Fam всех записей, для которых значение поля Name, преобразованное к символам нижнего реги­стра, равно «Владимир».

SELECT *

WHERE EXTRACT(MONTH FROM Birth)=10

Представленный запрос обеспечивает отбор из таблицы people всех записей, у которых значение месяца в поле Birth равно 10 (то есть октябрь).

Сортировка записей.

Сортировка или упорядочение записей по возрастанию или по убыванию значений полей осуществляется с помощью операнда ORDER BY. После него приводится список полей, по которым должна производиться сортировка. Записи бу­дут упорядочены в зависимости от порядка указания полей. Вна­чале осуществляется сортировка по первому указанному полю; затем для записей, имеющих одинаковое значение первого поля, происходит упорядочение по второму полю и т.д.

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

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

При выполнении данного запроса выводятся записи таблицы flat.db, в которой содержатся сведения о предлагаемых на продажу квартирах. Записи сортируются следующим образом. Вначале происходит сортировка в зависимости от количества комнат, то есть по возрастанию значений поля Room. Затем запи­си, у которых совпадает количество комнат, сортируются по убы­ванию стоимости квартиры (значения поля Price). И, наконец, записи, у которых одинакова комбинация значений полей Room и Price, упорядочиваются по возрастанию пятого поля из списка полей в разделе SELECT. Пятым полем в списке является поле Square, которое содержит данные о площади квартиры. Резуль­тат может выглядеть примерно так, как это показано на рис. 15.2.

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

COUNT (выражение) - подсчитывает число вхождений заданного выражения во все записи результирующего на­бора данных;

SUM (выражение) - определяет общую сумму значе­ний, определяемых параметром выражение;

AVG (выражение) -вычисляет среднее значение;

МАХ (выражение) - находит максимальное значение;

MIN (выражение) - определяет минимальное значе­ние

 

 

Ниже приводятся примеры создания запросов с использовани­ем агрегатных функций.

SELECT COUNT(DISTINCT Name)

FROM firm

WHERE Dolgn = 'Водитель'

В результате выполнения этого запроса выводится количество неповторяющихся и непустых значений поля Name для всех запи­сей таблицы firm, у которых значение поля Dolgn равно «Води­тель». Другими словами, подсчитывается количество водителей, работающих в данной фирме.

SELECT SUM(Price*Kolvo)

FROM shop

WHERE Date=ll.08.99

Результатом выполнения данного оператора является общая сумма денег, вырученная магазином за день. Она рассчитывается путем суммирования произведений значения поля Цена (Price) на значение поля Количество (Kolvo) для всех записей таблицы shop, у которых значение поля Date равно 11.08.99.

SELECT MAX(Salary) FROM firm

Вышеприведенный запрос выводит максимальное значение поля Salary среди всех записей таблицы firm (т.е. определяет­ся размер максимальной заработной платы среди всех сотрудни­ков фирмы).

Группирование записей. Группирование данных используется, главным образом, в ситуациях, когда необходимо получить агре­гированные значения (минимум, максимум, среднее, сумма, коли­чество) не по всему набору данных, а по каждой из входящих в него групп записей, характеризующихся одинаковым значением какого-либо поля. Например, следующий запрос позволяет полу­чить общее количество сотрудников по каждому отделу фирмы.

SELECT Otdel, COUNT(Tab_nom) FROM firm GROUP BY Otdel

В ряде случаев необходимо установить некоторые ограниче­ния на группируемые значения. Для этого применяется операнд HAVING. К примеру, если в предыдущем примере требуется вы­вести только те отделы, в которых количество сотрудников более 10, то это можно осуществить с помощью запроса такого вида:




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


Дата добавления: 2014-12-25; Просмотров: 374; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.