Лекция_3 (С.Д. Кузнецов - Презентации лекций), страница 4
Описание файла
Файл "Лекция_3" внутри архива находится в папке "С.Д. Кузнецов - Презентации лекций". PDF-файл из архива "С.Д. Кузнецов - Презентации лекций", который расположен в категории "". Всё это находится в предмете "модель данных sql" из 4 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 4 страницы из PDF
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM46Общая структура операторавыборки в языке SQL (21)При отсутствии воперацииспецификацииCORRESPONDINGоперация выполняется таким образом,как если бы эта спецификация присутствовала и включалаконструкцию BY column_name_comma_list, в которой былибы перечислены все столбцы таблицы T1При выполнении операции OP две строки s1 с именамистолбцов c1, c2, …, cn и s2 с именами столбцов d1, d2,…, dn считаются строками-дубликатами,если для каждого i (i = 1, 2, …, n) либо ci и di не содержат NULL, и (ci = di) = true, либо и ci, и di содержат NULL20.05.2016Лекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM47Общая структура операторавыборки в языке SQL (22)Если в операцииOP не заданаспецификация ALL,тов TRстроки-дубликаты удаляютсяЕсли спецификация ALL задана, топусть s – строка, являющаяся дубликатом некоторой строкиT1, или некоторой строки T2, или обеих;пусть m – число дубликатов s в T1, а n – число дубликатов sв T2тогда: если указана операция UNION, то число дубликатов s в TRравно m + n; если указана операция EXCEPT, то число дубликатов s в TRравно max ((m-n),0); если указана операция INTERSECT, то число дубликатов s вTR равно min (m,n)20.05.2016Лекция 3. Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM48Общая структура операторавыборки в языке SQL (23)Раздел WITHвыражения запросовКак видно из синтаксисавыражения запросов, в этом выражении можетприсутствовать раздел WITH.
Он задается в следующемсинтаксисе:Ограничимся случаем, когда в разделе WITH отсутствуютспецификация RECURSIVE и search_or_cycle_clause20.05.2016Лекция 3. Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM49Общая структура операторавыборки в языке SQL (24)Тогда конструкцияозначает, что в любом месте выражения запросовquery_exp_2, где допускается появление ссылки натаблицу, можно использовать имя query_name20.05.2016Можно считать, что перед выполнением query_exp_2происходит выполнение query_exp_1, и результирующаятаблица с именами столбцов c1, c2, … cn сохраняетсяпод именем query_nameВ этом случае раздел WITH фактически служит длялокального определения представляемой таблицы(VIEW)Лекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM50Общая структура операторавыборки в языке SQL (25)Конструкторы значения строки и таблицыЧтобы завершить обсуждение выражений запросовконструкция соединенных таблиц (joined_table) отложенанам осталось рассмотреть конструкцииtable_value_constructor и TABLE table_nameВ определении конструктора значения-таблицыиспользуется конструктор значения-строки, которыйстроит упорядоченный набор скалярных значений,представляющий строкувозможно и использование подзапросаrow_value_constructor ::= row_value_constructor_element |[ ROW ] (row_value_constructor_element_comma_list) |row_subqueryrow_value_constructor_element ::= value_expression |NULL |DEFAULT20.05.2016Лекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM51Общая структура операторавыборки в языке SQL (26)Значение элемента по умолчанию можно использовать только втом случае, когда конструктор значения-строки применяется воператоре INSERT тогда этим значением будет значение по умолчаниюсоответствующего столбцаКонструктор значения-таблицы производит таблицу на основезаданного набора конструкторов значений-строк:Для корректного построения таблицы требуется,20.05.2016чтобы строки, производимые всеми конструкторами строк, былиодной и той же степени ичтобы типы (или домены) соответствующих столбцов являлисьприводимымиКонструкция TABLE table_name является сокращенной формойзаписи выражения SELECT * FROM table_nameЛекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM52Общая структура операторавыборки в языке SQL (27)Ссылки на базовые, представляемые и порождаемые таблицыТеперь мы можем завершить обсуждение разновидностей ссылок натаблицу в разделе FROMДля удобства повторим синтаксические правилаtable_reference ::= table_primarytable_primary ::= table_or_query_name [ [ AS ] correlation_name[ (derived_column_list) ] ] | derived_table [ AS ] correlation_name[ (derived_column_list) ]table_or_query_name ::= { table_name | query_name } derived_table ::=(query_expression)В самом простом случае в качестве ссылки на таблицу используется имятаблицыопустив конструкции, рассмотрение которых отложеноили выходит за пределы материала данного курса:базовой или представляемойили имя запроса, присоединенного к данному запросу с помощью разделаWITHВ другом случаеderived_tableпорождаемая таблица задается выражением запроса, заключенным вкруглые скобки20.05.2016Лекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM53Общая структура операторавыборки в языке SQL (28)table_reference ::= table_primarytable_primary ::= table_or_query_name [ [ AS ] correlation_name[ (derived_column_list) ] ] | derived_table [ AS ] correlation_name[ (derived_column_list) ]table_or_query_name ::= { table_name | query_name }derived_table ::= (query_expression)Явное указание имен столбцов результата запроса из разделаWITH или порождаемой таблицы требуется в том случае, когдаВ таких случаях в соответствующем элементе списка разделаFROM должен указываться псевдоним (correlation_name),20.05.2016эти имена не выводятся явно из соответствующего выражениязапросапотому что иначе таблица была бы вообще лишена имениМожно считать, что выражение запроса вычисляется исохраняется во временной таблице при обработке разделаFROMЛекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM54Общая структура операторавыборки в языке SQL (29) Может смутить рекурсивная природа синтаксических20.05.2016определений, приведенных в этом подразделеЧтобы определить понятие ссылки на таблицу в разделеFROM оператора выборки, который опирается наспецификацию запроса, нам пришлось ввести болееобщее понятие выражения запросов, в определениикоторого используется спецификация запросаДа, действительно, многие синтаксические конструкцииSQL определяются рекурсивноНо эта рекурсия никогда не приводит к зацикливаниюВ частности, раскрутка рекурсии операторов выборкиосновывается на базовой, не выделяемой отдельнымисинтаксическими правилами форме, в которой в разделеFROM указываются только имена базовых таблицЛекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM55Общая структура операторавыборки в языке SQL (30)20.05.2016Представляемые таблицы, или представления (VIEW)Еще одним примером рекурсивности спецификаций языка SQLявляется то, что в конце этой лекции мы вынуждены прерватьобсуждение оператора выборки и ввести понятие представляемой таблицы, или представления,которую можно использовать в операторе выборки наряду сбазовыми таблицамиТолько после этого можно будет считать обсуждение ссылок натаблицы в разделе FROM условно завершеннымИтак, оператор создания представления в общем случаеопределяется следующими синтаксическими правилами:Лекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM56Общая структура операторавыборки в языке SQL (31)20.05.2016Рекурсивные представления такие, в определении которых присутствуетключевое слово RECURSIVEи необязательный раздел WITH CHECK OPTIONотложим этот раздел связан с особенностями выполненияопераций обновления базы данных черезпредставленияРассмотрим только простую форму представлений,определяемых по следующим правилам:Лекция 3. Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM57Общая структура операторавыборки в языке SQL (32)Имя таблицы, задаваемое в определениипредставления, существует в том же пространстве имен,что и имена базовых таблиц, и, следовательно, должноотличаться от всех имен таблицсозданных тем же пользователемЕсли имя представления встречается в разделе FROMкакого-либо оператора выборки, то20.05.2016базовых и представляемых,вычисляется выражение запроса, указанное в разделе AS,иоператор выборки работает с результирующей таблицейэтого выражения запросаЯвное указание имен столбцов представляемой таблицытребуется в том случае, когда эти имена не выводятся изсоответствующего выражения запросаЛекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM58Общая структура операторавыборки в языке SQL (33)20.05.2016Как и для всех других вариантов оператораCREATE, для CREATE VIEW имеется обратныйоператор DROP VIEW table_name, выполнениекоторого приводит к отмене определенияпредставления реально это выражается в удалении данных опредставлении из таблиц-каталогов базы данныхПосле выполнения операции пользоватьсяпредставлением с данным именем становитсяневозможноКонструкция ALTER VIEW в языке SQL неподдерживаетсяЛекция 3.
Общая характеристика оператораSELECT и организация списка ссылок натаблицы в разделе FROM59.