Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Общее представление




Язык запросов SQL.

Таблицы базы данных представляют собой первичную информацию, введенную непосредственно или полученную путем импорта из внешних источников. На основе этих данных может быть образовано множество других, производных таблиц самой разнообразной структуры и разного назначения. Инструкция для составления таких производных таблиц называется запросом. Запрос к базе данных в самом общем виде подразумевает составление новой таблицы из данных, хранящихся в уже существующих таблицах. В языке SQL оператор определения запроса задает правила, по которым производится образование этой новой таблицы. Образование таблицы, заданной запросом на языке SQL, происходит в несколько этапов.

На первом этапе формируется источник запроса (в предложении SELECT запроса на языке SQL этой операции соответствует конструкция FROM). Источником запроса является одна таблица или несколько таблиц. В простом случае запрос основывается на одной таблице. Если запрос основывается на двух таблицах, то сначала формируется расширенная таблица, являющаяся прямым произведением двух таблиц (то есть каждая строка одной таблицы комбинируется с каждой строкой другой таблицы). Если запрос выполняется на основании двух связанных таблиц, то выполняется операция соединения (то есть попарно объединяются только записи обеих таблиц с одинаковым значением полей связи). В результате размер итоговой таблицы будет меньше, чем произведение размеров таблиц-операндов. Аналогично производится запрос по трем и более таблицам.

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

На третьем этапе в таблице может быть произведено сокращение числа записей: из одинаковых строк итоговой таблицы оставляется только одна. Необходимость такой операции в запросе на языке SQL задается ключевым словом DISTINCT в описании запроса. Если сокращение строк производить не нужно, то задается слово ALL.

На четвертом этапе в таблице оставляются только те записи, которые удовлетворяют заданному в запросе критерию. Критерий формулируется в форме сравнений значений полей между собой и с константами (с помощью операций «равно», «не равно», «больше», «больше или равно», «меньше», «меньше или равно»). Элементарные сравнения объединяются в сложные проверки с использованием логических связок «И», «ИЛИ» и «НЕ» (в запросе на языке SQL критерий отбора задается конструкцией с ключевым словом WHERE).

На пятом этапе может быть произведено разбиение записей таблицы на группы. В одну группу объединяются записи с одинаковым значением выделенных полей, называемых полями группировки. Из всей группы записей в результате остается одна. В список показываемых полей результирующей таблицы запроса (список выборки) могут входить как поля группировки, так и другие поля, но для последних необходимо указывать операцию, позволяющую получать итоговое значение поля в группе записей. Это итоговое значение может вычисляться так называемой агрегатной функцией. К агрегатным функциям относятся суммирование, вычисление среднего, вычисление минимума и максимума, подсчет размерности группы. В запросе на языке SQL за эту часть отвечает конструкция с ключевым словом GROUP BY.

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

Допускается, что описанная процедура будет применена несколько раз для разных таблиц, а полученные итоговые таблицы будут слиты в одну. Для этого необходимо, чтобы все такие таблицы имели одинаковую структуру, то есть одинаковый список полей выборки. Слияние означает, что записи нескольких таблиц записываются одна за другой, образуя одну таблицу. Объединение таблиц В запросе на языке SQL задается словом UNION ALL. Если необходимо исключить из объединенной таблицы повторяющиеся записи, то используется слово UNION.

В окончательной таблице может быть изменен порядок строк. Для этого предусмотрена сортировка записей в порядке возрастания или убывания некоторых полей итоговой таблицы. Сортировка осуществляется следующим образом: записи располагаются в порядке возрастания или убывания первого поля сортировки. При одинаковых значениях первого поля порядок записей определяется значениями второго поля сортировки, при одинаковых значениях первого и второго поля – значениями третьего поля сортировки и т.д. Сортировка в запросе на языке SQL задается конструкцией с ключевым словом ORDER BY.

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




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


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


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



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




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