Лекция_3 (С.Д. Кузнецов - Презентации лекций), страница 3
Описание файла
Файл "Лекция_3" внутри архива находится в папке "С.Д. Кузнецов - Презентации лекций". PDF-файл из архива "С.Д. Кузнецов - Презентации лекций", который расположен в категории "". Всё это находится в предмете "модель данных sql" из 4 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM31Общая структура операторавыборки в языке SQL (8) Если сгруппированная таблица T3 была образована за счетналичия раздела HAVING без присутствия раздела GROUPBY, то в выражении элемента выборки вообще нельзя непосредственно использовать именастолбцов таблицы T3 Имена других столбцов таблицы T3 могут использоватьсятолько в конструкциях вызова агрегатных функций COUNT,SUM, MIN, MAX, AVG Выражение вычисляется для каждой группы строк таблицыT3 Именам столбцов, входящих в выражение непосредственно,сопоставляются значения этих столбцов, которыесоответствуют данной группе зстрок таблицы T320.05.2016Лекция 3. Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM32Общая структура операторавыборки в языке SQL (9)Во втором варианте спецификация элемента списка выборки вида [ Z.
]*являетсясокращенной формой записи списка Z.a1, Z.a2, …, Z.an, гдеa1, a2, …, an представляет собой полный список имен столбцов таблицы,псевдоним которой ZСледует сделать три замечания20.05.2016Во-первых, для именованной таблицы, входящей в список раздела FROMтолько один раз, можно использовать имя таблицы вместо псевдонимаВо-вторых, во втором варианте спецификации элемента списка выборкиможно опустить псевдоним только в том случае, если в разделе FROMуказана только одна таблицаВ-третьих, в случае (b) второй вариант спецификации элемента выборкидопустим только тогда, когда все столбцы таблицы с псевдонимом Z входятв список столбцов группировки раздела GROUP BYЛекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM33Общая структура операторавыборки в языке SQL (10) Итак, мы получилитаблицу T4 Если вспецификации разделаSELECTотсутствует ключевое слово DISTINCT, илиприсутствует ключевое слово ALL,либо отсутствуют и ALL, и DISTINCT,то T4 является результатом выполнения разделаSELECT В противном случае на завершающей стадиивыполнения раздела SELECT в таблице T4удаляются строки-дубликаты20.05.2016Лекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM34Общая структура операторавыборки в языке SQL (11) Если в операторевыборки несодержится разделORDER BY, тотаблица T4 является результирующей таблицей запроса Иначе на завершающей стадии выполнения запросапроизводится сортировка строк таблицы T4 в соответствии со списком элементов сортировки(order_item_commalist) раздела ORDER BY В стандарте SQL:1999 элемент списка элементовсортировки имеет следующую синтаксическую форму:20.05.2016Лекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM35Общая структура операторавыборки в языке SQL (12)Выполнение разделаORDER BYпроизводитсяследующим образомВыбирается первыйэлемент списка сортировки, и строки таблицы T4 расставляютсяв порядке возрастанияесли в элементе присутствует спецификация ASC; при отсутствии спецификации ASC/DESC предполагается наличие ASCили в порядке убыванияпри наличии спецификации DESCв соответствии со значениями выражения, содержащегося в данномэлементе, которые вычисляются для каждой строки таблицы T4Далее выбирается второй элемент списка сортировки, и в соответствии созначениями заданного в нем выражения и порядка сортировкирасставляются строки, которые после первого шага сортировки образовали20.05.2016группы с одинаковым значением выражения первого элемента спискасортировкиОперация продолжается до исчерпания списка элементов сортировкиРезультирующий отсортированный список строк является окончательнымрезультатом запросаЛекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM36Общая структура операторавыборки в языке SQL (13) В общем случаевыражение, входящеев элемент спискасортировки,основываетсяна именах столбцов таблицы T4 и именах столбцов таблицы, надкоторой вычислялся раздел SELECT (T1 или T3)Идея состоит в том, чтоесли некоторое выражение могло бы быть использовано вэлементе списка выборки, тоего можно использовать в элементе списка сортировкиВ стандарте SQL:1999 присутствует ряд чисто техническихограничений на вид выражений, допустимых в элементах спискасортировки,если в запросе присутствуют разделы GROUP BY и/или HAVINGи если в разделе SELECT присутствует спецификация DISTINCTНо в любом случае это выражение может иметь вид a, где a – имястолбца таблицы T420.05.2016Лекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM37Общая структура операторавыборки в языке SQL (13)В общем случаевыражение, входящеев элемент спискасортировки,основываетсяИдея состоит в том, что20.05.2016если некоторое выражение могло бы быть использовано вэлементе списка выборки, тоего можно использовать в элементе списка сортировкиВ стандарте SQL:1999 присутствует ряд чисто техническихограничений на вид выражений, допустимых в элементах спискасортировки,на именах столбцов таблицы T4 и именах столбцов таблицы, надкоторой вычислялся раздел SELECT (T1 или T3)если в запросе присутствуют разделы GROUP BY и/или HAVINGи если в разделе SELECT присутствует спецификация DISTINCTНо в любом случае это выражение может иметь вид a, где a – имястолбца таблицы T4Лекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM38Общая структура операторавыборки в языке SQL (14)В предыдущих версиях стандарта языка SQL, включая SQL/92, элементсписка сортировки определялся следующим синтаксическим правилом:В качестве имени столбца (column_name) можно было использовать любоеимя, вводимое для столбца таблицы T4 в элементе списка выборкиВместо имени столбца можно было использовать его порядковый номер(unsigned_integer) в списке элементов выборки раздела SELECTВ новом стандарте вторая возможность исключенаТем не менее возможность использования номеров столбцов в течениедолгого времени будет продолжать поддерживаться в коммерческихреализациях SQL,20.05.2016Доводом является не тот факт, что использование номеров столбцовпротиворечит реляционной моделиИспользование номеров столбцов запрещено, поскольку не даваловозможности применять в элементах списка сортировки выраженияпоскольку она применяется во многих существующих приложенияхЛекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM39Общая структура операторавыборки в языке SQL (15)Ссылки на таблицы раздела FROMРассмотрим более подробно, какой вид могут иметь элементы спискассылок на таблицы в разделе FROMДля начала приведем полный набор синтаксических правил SQL:1999,определяющий table_referencetable_reference ::= table_primary | joined_tabletable_primary ::=table_or_query_name [ [ AS ] correlation_name [ (derived_column_list) ] ] |derived_table [ [ AS ] correlation_name [ (derived_column_list) ] ] |lateral_derived_table [ [ AS ] correlation_name [ (derived_column_list) ] ] |collection_derived_table [ [ AS ] correlation_name [ (derived_column_list) ] ] | ONLY(table_or_query_name) [ [ AS ] correlation_name [ (derived_column_list) ] ] |(joined_table)table_or_query_name ::= { table_name | query_name }derived_table ::= (query_expression)lateral_derived_table ::= LATERAL (query_expression)collection_derived_table ::= UNNEST (collection_value_exression) [ WITHORDINALITY ]20.05.2016Лекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM40Общая структура операторавыборки в языке SQL (15)20.05.2016Отложим обсуждениепорождаемых таблиц с горизонтальной связью(lateral_derived_table) и«соединенных таблиц» (joined_table)Кроме того, мы не будем рассматривать в этомкурсе конструкции collection_derived_table иONLY (table_or_query_name),поскольку они относятся к объектнымрасширениям языка SQL, которые в данномкурсе подробно не рассматриваютсяНо все равно дальнейшего продвижения нампридется определить несколькодополнительных синтаксических конструкцийязыка SQLЛекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM41Общая структура операторавыборки в языке SQL (16)20.05.2016Табличное выражение, спецификация запроса ивыражение запросовТабличным выражением (table_expression) называетсяконструкцияСпецификацией запроса (query_specification) называетсяконструкцияЛекция 3. Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM42Общая структура операторавыборки в языке SQL (17)Наконец, выражением запросов (query_expression) называетсяконструкция20.05.2016Лекция 3. Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM43Общая структура операторавыборки в языке SQL (18)Если не обращатьвнимания на необсуждавшиесяпока конструкцииjoined_table иtable_value_constructor, синтаксические правилапоказывают, что20.05.2016выражение запросов строится из выражений, значениямикоторых являются таблицы, с использованием «теоретикомножественных» операций UNION (объединение), EXCEPT(вычитание) и INTERSECT (пересечение)Операция пересечения является «мультипликативной» иобладает более высоким приоритетом, чем«аддитивные» операции объединения и вычитанияВычисление выражения производится слева направо сучетом приоритетов операций и круглых скобокЛекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM44Общая структура операторавыборки в языке SQL (19)При этом действуютследующиеправилаЕсли выражениезапросов невключает ни одной теоретико-множественной операции,Если в терме (non_join_query_term) или выражениизапросов (non_join_query_expression) без соединенияприсутствует теоретико-множественная операция, то20.05.2016то результатом вычисления выражения запросов являетсярезультат вычисления простой или соединенной таблицыпусть T1, T2 и TR обозначают соответственно первыйоперанд, второй операнд и результат терма или выражениясоответственно,а OP – используемую теоретико-множественную операциюЛекция 3. Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM45Общая структура операторавыборки в языке SQL (20)Если в операцииприсутствуетспецификацияCORRESPONDING,то:20.05.2016если присутствуетконструкция BY column_name_comma_list, то все имена в этомсписке должны быть различны, и каждое имя должно являтьсяодновременно именем некоторого столбца таблицы T1 и именемнекоторого столбца таблицы T2, причем типы этих столбцовдолжны быть совместимыми; обозначим данный список именчерез SL;если список соответствия столбцов не задан, пусть SL обозначаетсписок имен столбцов, являющихся именами столбцов и в T1, и вT2, в том порядке, в котором эти имена фигурируют в T1;вычисляемые терм или выражение запросов без соединенияэквивалентны выражению (SELECT SL FROM T1) OP (SELECT SLFROM T2), не включающему спецификацию CORRESPONDING.Лекция 3.