Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Обновление или изменение данных.




Для изменения данных используют оператор UPDATE.

Простой оператор UPDATE имеет следующий синтаксис:

UPDATE table

SET column = value

WHERE condition

Оператор UPDATE изменяет значения в одной или нескольких строках существующей таблицы. Столбцы, подлежащие изменению определяются, в предложении SET. Для изменения значений в нескольких столбцах они должны быть перечислены в предложении SET через запятую.

Предложение WHERE определяет строки подлежащие изменению. Если предложение WHERE отсутствует, то изменения будут проведены во всех строках. Например, следующий оператор изменяет цену на все товары типа CD-ROM (CodeType=13), увеличивая ее на 1 в таблице Goods.

UPDATE Goods

SET Price=Price+1

WHERE CodeType=13

Удаление данных.

Для удаления одной или нескольких строк из таблиц используют оператор DELETE.

Простой оператор DELETE имеет следующий синтаксис:

DELETE FROM table

WHERE condition

Как и в случае оператора UPDATE, предложение WHERE определяет строки, подлежащие удалению. Условие поиска может быть составлено из нескольких простых условий, а также использовать подзапрос.

Замечание. Оператор DELETE не требует в обязательном порядке предложения WHERE. Однако если это предложение отсутствует, то будут удалены все, содержащиеся в таблице записи.

Рассмотрим пример "удаление строк из таблицы Ordered". В этом упражнении вначале просматриваются заказы дешевле 1$. Затем соответствующие заказы будут удалены из таблицы Ordered, и мы убедимся, что это сделано.

Просмотрим продажи по заказам:

SELECT * FROM Ordered WHERE Price < 1

Должно существовать 3 таких заказa. Введем следующий оператор:

DELETE FROM Ordered WHERE Price < 1

Примечание. Обратите внимание, что оператор DELETE не требует определения столбцов, поскольку он удаляет всю строку.

Если снова просмотреть продажи по заказам: SELECT * FROM Ordered WHERE Price < 1

то получим теперь пустой результат.

Представления.

Представление - это виртуальная таблица, содержимое которой определяется запросом. Как и настоящая таблица, представление состоит из совокупности именованных столбцов и строк данных.

Пока представление не будет проиндексировано, оно не существует в базе данных как хранимая совокупность значений.

Строки и столбцы данных извлекаются из таблиц, указанных в определяющем представление запросе и динамически создаваемых при обращениях к представлению.

Сравнительные характеристики запросов и представлений.

Представления хранятся как часть структуры базы данных, запросы - нет.

- Ограничения на обновление результирующих наборов для запросов и представлений различны. В большинстве случаев результирующий набор, отображенный в Области результатов конструктора запросов, можно обновить. Однако в некоторых случаях этого сделать нельзя.

- Обычно для обновления результатов конструктор запросов и представлений должен иметь достаточно сведений, чтобы однозначно идентифицировать строку в таблице. Например, если запрос включает в выходном списке первичный ключ. К тому же необходимо иметь разрешение на обновление базы данных.

- Если запрос основан на представлении, его также можно будет обновить. Здесь действуют те же правила, за исключением того, что они применяются не к представлению, а к его базовым таблицам.

Для запроса можно указывать параметры, для представления - нет.

Типы представлений.

Стандартные представления.

В SQL Server можно создавать стандартные, индексированные и секционированные представления.

Сочетание данных из одной или нескольких таблиц с помощью стандартного представления позволяет использовать почти все преимущества представлений. Сюда входит сосредоточение на конкретных данных и упрощение управления ими.

Перечислим эти преимущества подробнее:

- Представления обычно используются для направления, упрощения и настройки восприятия каждым пользователем информации базы данных.

- Представления могут использоваться как механизмы безопасности, давая возможность пользователям обращаться к данным через представления, но, не предоставляя им разрешений на непосредственный доступ к базовым таблицам, лежащим в основе представлений.

- Представления могут использоваться для обеспечения интерфейса обратной совместимости, моделирующего таблицу, которая существует, но, схема которой изменилась.

- Представления могут также использоваться для копирования данных на Microsoft SQL Server и с него для повышения производительности и секционирования данных.

Представление дает пользователям возможность видеть данные различным образом, даже если они используют одни и те же данные в одно и то же время. Это особенно полезно, если пользователи, имеющие разные интересы и обладающие разным уровнем квалификации, работают с одной и той же базой данных. Например, может быть создано представление, которое извлекает данные о заказчиках, с которыми работает менеджер. На основании логина менеджера, представление может определять, какие данные необходимо извлечь.

Представления могут использоваться для экспорта данных в другие приложения. Например, нужно, чтобы таблицы Customer и SalesOrderHeader в базе данных AdventureWorks использовались для анализа данных о продажах при помощи программы Microsoft Excel. Для этого можно создать представление, основанное на таблицах Customer и SalesOrderHeader.

Индексированные представления.

Индексированным называется материализованное представление. Это значит, что оно создано и сохранено. Индексировать представление можно, создав для него уникальный кластеризованный индекс. Индексированные представления значительно повышают производительность некоторых типов запросов. Индексированные представления эффективнее всего использовать в запросах, группирующих множество строк. Они не очень хорошо подходят для часто обновляющихся базовых наборов данных.

Создание представлений.

Представления можно создавать, как с помощью инструкции Transact-SQL CREATE VIEW, так и посредством визуальных средств Management Studio. Рассмотрим синтаксис инструкции CREATE VIEW.

CREATE VIEW [ schema_name. ] view_name [ (column [,...n ]) ]

[ WITH < view_attribute > [,...n ] ]

AS select_statement

[ WITH CHECK OPTION ] [; ]

< view_attribute >::=

{ [ ENCRYPTION ]

[ SCHEMABINDING ]

[ VIEW_METADATA ] }

Аргументы:

- schema_name

Имя схемы, которой принадлежит представление.

- view_name

Имя представления. Имена представлений должны соответствовать требованиям, предъявляемым к идентификаторам. Указывать имя владельца представления не обязательно.

- column

Имя, которое будет иметь столбец в представлении. Имя столбца требуется только в тех случаях, когда столбец формируется на основе арифметического выражения, функции или константы, если два или более столбцов могут по иной причине получить одинаковые имена (как правило, в результате соединения) или если столбцу представления назначается имя, отличное от имени столбца, от которого он произведен. Назначать столбцам имена можно также в инструкции SELECT.

Если аргумент column не указан, столбцам представления назначаются такие же имена, которые имеют столбцы в инструкции SELECT.

- AS

Определяет действия, которые должны быть выполнены в представлении.

- select_statement

Инструкция SELECT, определяющая представление. В этой инструкции можно указывать более одной таблицы и другие представления. Для выбора объектов, указанных в предложении SELECT создаваемого представления, необходимы соответствующие разрешения.

- CHECK OPTION

Обеспечивает соответствие всех выполняемых для представления инструкций модификации данных критериям, заданным при помощи аргумента select_statement. Если строка изменяется посредством представления, предложение WITH CHECK OPTION гарантирует, что после фиксации изменений доступ к данным из представления сохранится. Примечание. Любые обновления, произведенные непосредственно в базовых таблицах представления, не проверяются в контексте представления - даже в том случае, если указано предложение CHECK OPTION.

- ENCRYPTION

Выполняет шифрование элементов представления sys.syscomments, содержащего текст инструкции CREATE VIEW. Использование предложения WITH ENCRYPTION предотвращает публикацию представления в рамках репликации SQL Server.

- SCHEMABINDING

Привязывает представление к схеме базовой таблицы или таблиц.

- VIEW_METADATA

Указывает, что экземпляр SQL Server возвратит в API-интерфейсы DB-Library, ODBC и OLE DB сведения метаданных о представлении вместо базовой таблицы или таблиц, когда метаданные режима обзора затребованы для запроса, который ссылается на представление.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...