|
Использование представлений
ADO в Delphi AJAX Android C++ CakePHP CMS COM CSS Delphi Flash Flex HTML Internet Java JavaScript MySQL PHP RIA SCORM Silverlight SQL UML XML Бази даних Веб-розробка Генетичні алгоритми ГІС Гітара Дизайн Економіка Інтелектуальні СДН Колір Масаж Математика Медицина Музика Нечітка логіка ООП Патерни Подання знань Розкрутка сайту, SEO САПР Сесії в PHP Системне програмування Системний аналіз Тестологія Тестування ПЗ Фреймворки Штучний інтелект
|
Использование представленийКлючові поняття: Представление (view), Создание представления, Удаление представления, пример представления, хранящее информацию об авторах, их книгах и издателях этих книг:.До сих пор мы говорили о таблицах, которые реально хранятся в базе данных. Это, так называемые, базовые таблицы (base tables). Существует другой вид таблиц, получивший название "представления" (иногда их называют"представляемые таблицы").
Определение:Представление (view) - это таблица, содержимое которой берется из других таблиц посредством запроса. При этом новые копии данных не создаютсяКогда содержимое базовых таблиц меняется, СУБД автоматически перевыполняет запросы, создающие view, что приводит к соответствующи изменениям в представлениях.
Представление определяется с помощью команды
CREATE VIEW <имя_представления> [<имя_столбца>,...]
AS <запрос>
При этом должны соблюдаться следующие ограничения: представление должно базироваться на единcтвенном запросе (UNION не допустимо) выходные данные запроса, формирующего представление, должны быть не упорядочены (ORDER BY не допустимо) Создадим представление, хранящее информацию об авторах, их книгах и издателях этих книг:
CREATE VIEW books AS
SELECT authors.author,titles.title,titles.yearpub,publishers.publisher
FROM authors,titles,publishers,titleauthors
WHERE titleauthors.au_id=authors.au_id AND
titleauthors.title_id=titles.title_id AND
titles.pub_id=publishers.pub_id
Теперь любой пользователь, чьих прав на доступ к данному представлению достаточно, может осуществлять выборку данных из books. Например:
SELECT titles FROM books WHERE author LIKE '%Date' SELECT author,count(title) FROM books GROUP BY author(Права пользователей на доступ в представлениям назначаются также с помощью команд GRANT / REVOKE.) Из приведенного выше примера достаточно ясен смысл использования представлений. Если запросы типа "выбрать все книги данного автора с указанием издательств" выполняются достаточно часто, то создание представляемой таблицы books значительно сократит накладные расходы на выполнение соединеия четырех базовых таблиц authors, titles, publishers и titleauthors. Кроме того, в представлении может быть представлена информация, явно не хранимая ни в одной из базовых таблиц. Например, один из столбцов представления может быть вычисляемым:
CREATE VIEW amount (publisher, books_count) AS
SELECT publishers.publisher, count(titles.title)
FROM titles,publishers
WHERE titles.pub_id=publishers.pub_id
GROUP BY publisher;
Здесь использована еще одна, ранее не описанная, возможность SQL - присвоение новых имен столбцам представления. В приведенном примере число изданий, осуществленных каждым издатетлем, будет хранится в столбце с именем books_count. Заметим, что если мы хотим присвоить новые имена столбцам представления, нужно указывать имена для всех столбцов. Тип данных столбца представления и его нулевой статус всегда зависят от того, как он был определен в базовой таблице (таблицах).
Запрос на выборку данных к представлению выглядит абсолютно аналогично запросу к любой другой таблице. Однако на изменение данных в представлении накладываются ограничения. Кратко о них можно сказать следующее: Если представление основано на одной таблице, изменения данных в нем допускаются. При этом изменяются данные в связанной с ним таблице. Если представление основано более чем на одной таблице, то изменения данных в нем не допускаются, т.к. в большинстве случаев СУБД не может правильно восстановить схему базовых таблиц из схемы представления.
Удаление представления производится с помощью оператора:
DROP VIEW <имя_представления>
Зверніть увагу на додаткові посиланняЯкщо вас цікавить...Головний розділзагрузка...
|
Сторінки, близькі за змістом ![]() SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Вопреки существующим заблуждениям, SQL является информационно-логическим языком, а не языком программирования. |
|
Copyright © 2008—2026 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|