- •Н.И. Коваленко
- •Коваленко н.И., Банчук г.Г.
- •Коваленко Надежда Ивановна
- •Тема I. Общие сведения о ms sql Server 2000
- •1. Базы данных типа клиент/сервер
- •Система типа клиент/сервер
- •2. История sql Server
- •Основные количественные показатели системы sql – сервер
- •3. Обзор sql Server 2000
- •4. Стандартные объекты sqlServer
- •ТемаIi. Работа с ms sqlServer2000 и его компонентами
- •1. Запуск, приостановка и завершение работы sqlServer
- •2. SqlServerEnterpriseManager
- •3. Программа sqlServerQueryAnalyzer
- •Панель инструментов утилиты Query Analyzer
- •4. Обслуживание баз данных
- •Файлы операционной системы, используемые sql Server 2000:
- •Структура базы данных
- •5. УстановкаMicrosoftSqlServer2000
- •Ограничения инсталляции sql-сервера
- •ТемаIii. Работа с базой данных создание и использование индексов и ключей
- •1. Базы данных и их свойства
- •Описание ролей, используемых для доступа к базе данных и серверу баз данных
- •Дополнительные опции настройки базы данных
- •Настройка параметров доступа к базе данных
- •2. Таблицы базы данных.
- •3. Типы данных, используемые в sql-сервере
- •Текстовые типы данных
- •Типы данных даты и времени
- •Типы данных для хранения больших объемов информации
- •Типы данных специального назначения:
- •4. Основные операции с базами данных
- •5. Восстановление бд (администрированиеSqlServer2000)
- •6. Создание и использование индексов и ключей в системе sql Server.
- •7. Использование ограничений
- •8. Использование диаграмм для разработки структуры базы данных
- •9. Создание представлений (видов)
- •ТемаIv. Правила и создание значения
- •1. Инструменты контроля целостности данных
- •2. Создание правил и стандартных значений
- •ТемаV. Триггеры в системеSql–сервер
- •1. Понятие триггера. Типы триггеров
- •2. Создание триггеров
- •3. Использование триггеров. Виды триггеров
- •ТемаVi. Оптимизация запросов и основы sql
- •1. Оптимизация запросов
- •2. Основные операторы sql в sql Server 2000
- •3. Объединение таблиц в операторе select
- •From titles
- •4. Использование директив group by иHaving
- •5. Оператор insert
- •6. ОператорUpdate
- •7. ОператорDelete
- •8. ОператорCreatetable
- •ТемаVii. Создание и работа с представлениями
- •1. Основные сведения о представлениях
- •2. Создание представлений. Отображение представлений
- •3. Редактирование представлений. Отображение зависимостей представлений. Создание представлений и представлений
- •4. Переименование столбцов представлений. Переименование представлений. Удаление представлений
- •5. Изменение данных посредством представлений. Обновление данных с помощьюSqlServerEnterpriseManager
- •ТемаViii. Создание и использование курсоров
- •1. Понятие курсора
- •2. Выборка данных из курсора
- •3. Операторы и глобальные переменные для работы с курсорами
- •4. Примеры использования курсоров
- •ТемаIx. Использование хранимых процедур
- •1. Достоинства и недостатки хранимых процедур
- •2.Создание хранимой процедуры
- •3. Операторы языка управления программой. Оператор declare
- •4. Операторы goto, begin…end и if…else
- •5. Операторы waitfor, return, while, break и continue
- •6. Операторы print и raiserror
- •7. Использование параметров в хранимых процедурах
- •8. Глобальные переменные. Отладка хранимых процедур
- •Тема X. Транзакции и блокировки
- •1. Определение транзакции. Ограничения для транзакций. Уровни изоляции транзакций
- •2. Базовая информация о блокировках. Типы блокировок
- •3. Создание транзакций и работа с ними. Точки сохранения
- •4.Отображение информации о блокировках. Явное задание блокировки
- •Описание параметров для явного задания блокировок
- •ТемаXi. Система безопасностиSqlServer2000
- •1. Типы безопасности. Создание и управление бюджетами пользователей
- •Стандартные роли сервера
- •Стандартные роли базы данных
- •2. Добавление новых пользователей. Удаление идентификаторов и пользователей
- •3. Создание ролей. Удаление ролей
- •4. Права доступа. Управление правами доступа
- •ТемаXii. Использование распределенных объектов управления.
- •1.Sql-dmo. Назначение, возможности
- •2. Экспорт данных с помощью команды вср
- •3. Использование объектовSql-dmOв хранимых процедурах
- •ТемаXiii. Основные сведения о хранилищах данных
- •1. Хранилища данных. Системы поддержки принятия решений (dss). Интерактивная аналитическая обработка (olap)
- •Сравнение субд и хранилища данных
- •2. Компоненты хранилища данных. Хранилища данных и магазины данных
- •3. Преобразование данных. Метаданные
- •4. Разработка плана хранилища данных
- •Microsoft Repository
- •С помощью мастера dts можно выполнять также простые преобразования данных, сложные преобразования выполняются с помощью dts Designer.
- •ТемаXiv. Использование служб преобразования данных
- •1. Службы преобразования данных (dts).DtSи хранилища данных
- •2. СредствоDtsDataPump
- •3. МастераDts
- •4. ИспользованиеDtsDesigner
- •Тема XV. Службы olap Microsoft sql Server
- •1.OlaPи многомерные данные
- •2. Хранение данных в бдolap
- •3. Оптимизация базы данныхOlap
- •4. Доступ к многомерным данным
ТемаViii. Создание и использование курсоров
1. Понятие курсора
Курсор представляет собой результирующий набор данных, сформированный SQL Server, в котором можно выполнять операции над отдельными строками. Этим он отличается от стандартных результирующих наборов, в которых операции выполняются сразу над всеми строками. Благодаря курсорам можно построчно обрабатывать данные, содержащиеся в некоторой таблице. С помощью курсоров SQL Server можно перемещаться по результирующему набору в обоих направлениях.
Курсоры можно использовать:
в блоке операторов управления выполнением программы;
внутри хранимой процедуры;
внутри триггера.
Каждый курсор должен иметь, по крайне мере, четыре компонента, которые должны следовать в таком порядке:
объявление курсора (оператор DECLARE);
открытие курсора(оператор OPEN);
выборка данных из курсора (оператор FETCH);
закрытие и освобождение курсора (операторы CLOSE и DEALLOCATE).
Оператор DECLARE содержит определённое пользователем имя, применяемое для ссылки на результирующий набор данных, а также оператор SQL SELEСT, который генерирует этот результирующий набор. Оператор DECLARE можно представить в виде временной таблицы, которая содержит указатель на реальный источник данных.
Синтаксис объявления курсора:
DECLARE имя_курсора [INSENSITIVE][SCROLL]CURSOR
FOR оператор_SELECT
[FOR{READ ONLY I UPDATE[OF список_столбцов]}]
Расширенный синтаксис оператора объявления курсора( принят в SQL Server 2000):
DECLARE имя_курсора CURSOR
[LOCAL | GLOBAL]
[FORWARD_ONLY | SCROLL]
[STATIC | KEYSET | FAST_FORWARD | DYNAMIC]
[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]
FOR оператор_ SELECT
[FOR{READ ONLY | UPDATE[OF список_столбцов]}]
Синтаксические элементы первого варианта оператора объявления курсора:
INSENSITIVE – указывает, что изменения в источнике данных не будут отражаться в курсоре. При задании этой опции объявления курсора не разрешены.
SCROLL – разрешает использование следующих FETCH- команд: PRIOR, FIRST, LAST, ABSOLUTEn и RELATIVEn.
Оператор_SELECT – это оператор SQL SELECT. При использовании следующих директив оператора SQL курсор объявляется как INSENSITIVE: DISTINCT, UNION, GROUP BY и(или) HAVING.
READ ONLY - запрещает обновления курсора.
UPDATE[OF список_столбцов] - разрешает обновление курсора. Необязательная директива [OF список_столбцов] определяет, какие столбцы в курсоре можно обновлять.
Синтаксические элементы второго варианта оператора объявления курсора:
FORWARD_ONLY – указывает, что для навигации курсора будет использоваться только команда FETCH NEXT. Эта опция используется для минимизации ресурсов и блокировок курсора.
STATIC (статистический курсор) – модификации курсора запрещены и изменения, внесённые в базовые таблицы после открытия курсора, не будут отражены в курсоре. Эта опция используется, если курсор предназначен только для чтения, а также для минимизации ресурсов и блокировок курсора.
KEYSET – указывает на фиксированный порядок членов курсора. В курсоре при этом используются только ключи базовых таблиц. KEYSET-курсор переходит в STATIC-курсор, если базовая таблица не содержит уникальных индексов или первичных ключей.
DINAMIC (динамический курсор) – изменения, внесённые в базовую таблицу, после открытия курсора, будут отражены в курсоре. Эту опцию используют для достижения согласованнности данных. Эта опция требует значительных затрат ресурсов по сравнению с KEYSET и STATIC.
FAST_FORWARD - определяет курсор как FORWARD_ONLY и READ_ONLY, используется для оптимизации и достижения максимальной производительности.
SCROLL_LOCKS – в результирующем наборе курсора будет использоваться блокировка данных. Блокировка выполняется при чтении данных в курсор. Эта опция гарантирует, что обновление или удаление строк, связанных с курсором, всегда будут выполнены успешно, поскольку данные заблокированы курсором. Не следует использовать при одновременном доступе к данным курсора со стороны нескольких пользователей.
OPTIMISTIC – при чтении данных в курсор они не блокируются. Используют при одновременном доступе к данным курсора нескольких пользователей.
Пример:
1) стандартный курсор:
DECLARE pub_crsr CURSOR
FOR
SELECT pub_id, pub_name
FROM Publishers
2) курсор, предназначенный только для чтения:
DECLARE pub_crsr CURSOR
FOR
SELECT pub_id, pub_name
FROM Publishers
FOR READ ONLY
3) курсор, допускающий обновления:
DECLARE pub_crsr CURSOR
FOR
SELECT pub_id, pub_name
FROM Publishers
FOR UPDATE