Дополнительные аспекты SQL
Перед тем как завершить это руководство, нужно упомянуть о более «продвинутых» темах из SQL, с которыми вы можете столкнуться.
Представления
Некоторые SQL-серверы позволяют создавать различные представления (views) таблицы, которые похожи на волшебные постоянные запросы SELECT. Когда вы создаете представление при помощи специального запроса SELECT, результаты запроса не исчезают и ведут себя как отдельная таблица. Как ко всякой таблице, к ним можно посылать запросы. Изменения представлений с некоторыми ограничениями передаются оригинальной таблице или таблицам.
Заметьте, я сказал таблицам. Именно тут проявляется волшебство представлений: можно создать представление таблицы, состоящее из объединения этой и другой таблицы. Такое представление ведет себя как одна большая виртуальная таблица. Изменения представления передаются обратно таблицам, участвующим в объединении, создающем представление.
Можно также создать представление, новое поле которого будет состоять из результатов вычислений между другими полями этой таблицы, почти как в электронных таблицах. Представления полезны и для более обычных целей, например, для упрощения запросов (т. е. можно будет выбрать меньшее количество полей) и реструктуризации дан ных (т. е. представление данных остается первоначальным, даже если меняются поля в структуре таблицы).
Вот как создать представление, используемое для упрощения запросов:
USE sysadm
CREATE VIEW ipddr_vie/,- AS SELEC''" nde. loaddr FROM hosts
Теперь можно применить очень простой запрос, чтобы получить только ту информацию, которая нам нужна:
USE sysadm
SELECT FROM maddr view
А вот результат запроса:
name ipaddr
shimmer 192.168.1.11
bendir 192.168,1.3
sander 192.168. 1 55
Sulawesi 192 168,1,12
Как и таблицы, представления можно удалять, используя раоновидность команды DROP:
USE sysadm
DROP VIEW ipaddr_view
Курсоры
До сих пор сервер возвращал все результаты запроса по его завершении. Иногда бывает предпочтительнее получать ответ построчно. Чаще всего это справедливо при встраивании SQL-запросов в другие программы. Если запрос возвращает десятки тысяч строк, очень велика вероятность, что вам захочется обработать результаты построчно, а не хранить все в памяти для дальнейшего использования. Этот метод применяется в большинстве случаев, когда необходимо обращаться к SQL из Perl. Вот маленькая программа на SQL, в которой показано употребление курсоров на сервере Sybase или MS-SQL:
USE sysadm
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий