Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Физическая и логическая модель базы данных (отличия).Стр 1 из 4Следующая ⇒
Физическая и логическая модель базы данных (отличия). Логическая независимость от данных - означает полную защищенность внешних схем от изменений, вносимых в концептуальную схему 11)Команды языка DDL (перечислить и назвать назначение команд). Команды языка DDL (перечислить и назвать назначение команд). 12) Команды языка DML (перечислить и назвать назначение команд). Команды языка DML (перечислить и назвать назначение команд). 13) Команды языка DCL (перечислить и назвать назначение команд). Команды языка DCL (перечислить и назвать назначение команд). 14) Оператор SELECT (перечислить и указать назначение каждого раздела). Обязательными среди всех указанных параметров оператора SELECT являются параметры SELECT и FROM. Результатом выполнения оператора SELECT является набор данных (временная таблица), который затем либо передается пользователю, запросившему данные, либо используется как источник данных для другого оператора SELECT в качестве подзапроса. Представляет исторический интерес тот факт, что именно возможность включения одного предложения SELECT внутрь другого послужила мотивировкой использования прилагательного «структурированный» в названии языка SQL. Синтаксис оператора имеет следующий вид:
Однострочные вложенные подзапросы Однострочные вложенные подзапросы чаще всего применяются совместно с агрегатными функциями, результат вычисления которых и является единственным результатом подзапроса. Например: -- получить имя менеджера, имеющего максимальное -- значение размера комиссионных SELECT Name FROM Managers WHERE Procent = (SELECT Max(Procent) FROM Managers); В данном случае вложенный подзапрос должен выполняться для каждой строки, обрабатываемой во внешнем запросе. Но очевидно, что результат вложенного запроса никоим образом не зависит от того, какая строка обрабатывается во внешнем запросе. В таких случаях, чтобы не выполнять один и тот же вложенный подзапрос, независящий от внешнего запроса, некоторые СУБД кэшируют (запоминают) результат, полученный в результате первого выполнения вложенного подзапроса, и подставляют для всех остальных строк таблиц, обрабатываемых во внешнем запросе. -- получить имя менеджера, осуществившего -- максимальное количество сделок продажи SELECT Name FROM Managers WHERE Man_id= (SELECT Man_id FROM Outgoing WHERE ROWNUM=1 GROUP BY Man_id HAVING COUNT(Out_id)= (SELECT MAX(COUNT(Out_id)) FROM Outgoing GROUP BY Man_id)); В данном запросе в параметре WHERE указано условие ROWNUM=1, благодаря которому соблюдается условие выбора единственного значения во вложенном подзапросе, иначе вложенный подзапрос может вернуть более одной строки (если несколько менеджеров осуществили максимальное количество сделок), тогда результат выполнения подзапроса нельзя будет использовать в операциях сравнения. О способах применения столбца ROWNUM для частичного вывода запрошенных данных смотри далее раздел «Частичный вывод запрошенных данных». Если необходимо вывести имена всех менеджеров, осуществивших одинаковое максимальное количество сделок продажи, можно выполнить следующий запрос: GROUP BY m.Name HAVING COUNT(o.Out_id)= (SELECT MAX(COUNT(Out_id)) FROM Outgoing GROUP BY Man_id); SELECT Name FROM Products p WHERE EXISTS (SELECT Prod_id FROM Outgoing WHERE Prod_id=p.Prod_id AND Man_id = 1); UNION INTERSECT SELECT Name FROM Managers MINUS Оператор SELECT
[WITH CHECK OPTION] Обновляемые представления Если к представлению можно применить операторы обновления (INSERT, UPDATE или DELETE), то представление является обновляемым (updateble), иначе оно является читаемым (read-only). Ниже приведены критерии того, является ли представление обновляемым в SQL: · оно базируется на одной таблице; · оно должно включать первичный ключ таблицы; · оно не должно включать полей, полученных в результате применения функций агрегирования; · оно не может содержать спецификации DISTINCT; · оно не должно использовать GROUP BY или HAVING; · оно не должно использовать подзапросы; · оно может быть определено на другом представлении, но это представление должно быть обновляемым; · оно не может содержать константы, строки или выражения в списке выбираемых выходных полей; · для INSERT оно должно включать поля из таблицы, которые имеют ограничения NOT NULL. Например, приведенное представление Contragents_Lite является обновляемым, поскольку оно удовлетворяет всем перечисленным критериям, а представление WareHouse – нет. Для обновляемых представлений применимы любые операторы обновления, которые при выполнении по отношению к представлению транслируются на исходную таблицу, на основе которой было создано представление. Однако это правило на первый взгляд не согласуется с функцией представлений по защите данных, описанной ранее. Действительно, если представить, что при помощи представления были скрыты столбцы или строки, но пользователь знает об их существовании, он может выполнить операции обновления данных, затрагивающие скрытую в представлении информацию. Для предотвращения описанной ситуации применяется параметр WITH CHECK OPTION, который может указываться при создании обновляемых представлений после оператора SELECT. При наличии этого параметра СУБД предотвращает операции обновления данных, если они нарушают условия горизонтальной или вертикальной фильтрации, определенные в предложении в операторе SELECT: -- создание обновляемого представления с защитой от -- изменений скрытого столбца Address CREATE OR REPLACE VIEW Contragents_Lite AS SELECT Contr_id, Name, Phone, Comments FROM Contragents WITH CHECK OPTION; Физическая и логическая модель базы данных (отличия). Логическая независимость от данных - означает полную защищенность внешних схем от изменений, вносимых в концептуальную схему 11)Команды языка DDL (перечислить и назвать назначение команд). Команды языка DDL (перечислить и назвать назначение команд). 12) Команды языка DML (перечислить и назвать назначение команд). Команды языка DML (перечислить и назвать назначение команд). 13) Команды языка DCL (перечислить и назвать назначение команд). Команды языка DCL (перечислить и назвать назначение команд).
14) Оператор SELECT (перечислить и указать назначение каждого раздела). Обязательными среди всех указанных параметров оператора SELECT являются параметры SELECT и FROM. Результатом выполнения оператора SELECT является набор данных (временная таблица), который затем либо передается пользователю, запросившему данные, либо используется как источник данных для другого оператора SELECT в качестве подзапроса. Представляет исторический интерес тот факт, что именно возможность включения одного предложения SELECT внутрь другого послужила мотивировкой использования прилагательного «структурированный» в названии языка SQL. Синтаксис оператора имеет следующий вид:
|
|||||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 155; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.211.66 (0.042 с.) |