- •Кафедра экономической информатики
- •Базы данных
- •Содержание
- •Введение
- •Лабораторная работа №1. Логические и физические модели данных
- •Методические указания
- •Задание к работе
- •Раздел I. Создание сущностей в eRwin
- •Раздел II. Создание связей между сущностями, подмножеств модели и хранимых отображений. Переход к физической модели данных
- •Раздел III. Выполнение операции прямого проектирования
- •Раздел IV. Выполнение операции обратного проектирования
- •Лабораторная работа №2. Усложненные диаграммы «сущность-связь»
- •Методические указания
- •Задание к работе
- •Раздел I. Создание сущностей логической модели
- •Раздел II. Создание связей между сущностями и иерархии наследования
- •Раздел III. Выполнение вариантов трансформы категориальной связи
- •Раздел IV. Выполнение методов синхронизации системного каталога базы данных и текущей модели
- •Лабораторная работа №3. Работа в среде субд «ms sql Server 2005»
- •Методические указания
- •Задание к работе
- •Раздел I. Создание базы данных и ее объектов
- •Раздел II. Управление пользователями и правами доступа к данным
- •Лабораторная работа №4. Создание базы данных и ее объектов с помощью команд языка Transact-sql
- •Методические указания и задания к выполнению
- •Раздел I. Создание базы данных и ее объектов
- •Раздел II. Ввод данных в таблицы базы данных
- •Insert into Заказ (КодКлиента, КодТовара, Количество)
- •Inner join Поставщик
- •Inner join Товар
- •Раздел III. Управление пользователями и правами доступа к данным.
- •Раздел IV. Анализ полученных результатов
- •Лабораторная работа №5. Манипулирование данными с помощью команд языка Transact-sql
- •Методические указания
- •Раздел I. Выборка данных из таблиц и представлений.
- •Раздел II. Обновление данных в таблицах и представлениях.
- •Раздел III. Удаление данных из таблиц и представлений.
- •Раздел IV. Изменение структуры таблицы.
- •Раздел V. Удаление таблицы из базы данных.
- •Задание к работе
- •Лабораторная работа №6. Программирование на языке Transact-sql
- •Методические указания
- •Раздел I. Основы программирования на языке Transact-sql.
- •Раздел II. Создание и работа с хранимыми (на сервере) процедурами.
- •If @Страна is not null
- •If @Город is not null
- •If @Город is not null
- •Insert into Валюта
- •Values(@Код, @Имя, @Шаг, @Курс)
- •If @Страна is not null
- •If @Город is not null
- •Into ##Регион
- •Раздел III. Создание и работа с определяемыми пользователем функциями.
- •Insert @rowset (КодРегиона, Страна, Область, Город)
- •Задание к работе
- •Лабораторная работа №7. Курсоры и триггеры в языке Transact-sql
- •Методические указания
- •Раздел I. Использование курсоров в языке Transact-sql
- •If @НачалоИнтервала is null
- •If @КонецИнтервала is null
- •Раздел II. Создание триггеров в языке Transact-sql.
- •If update(ДатаЗаказа)
- •If update(Цена)
- •If update(Цена)
- •Inserted.Цена * Валюта.КурсВалюты
- •Задание к работе
- •Литература Основная
- •Базы данных
- •220013, Минск, п. Бровки, 6.
If @Страна is not null
BEGIN
If @Город is not null
SELECT *
FROM Регион
WHERE Страна = @Страна AND Город = @Город
ELSE
SELECT *
FROM Регион
WHERE Страна = @Страна
END
ELSE
If @Город is not null
SELECT *
FROM Регион
WHERE Город = @Город
GO
/* Проверка работы хранимой процедуры pr_ДанныеРегионов;3 */
EXEC pr_ДанныеРегионов;3
EXEC pr_ДанныеРегионов;3 @Город = 'Минск'
EXEC pr_ДанныеРегионов;3 DEFAULT, 'Воложин'
EXEC pr_ДанныеРегионов;3 'Россия'
EXEC pr_ДанныеРегионов;3 NULL, 'Алушта'
GO
/* Вставка новой строки в таблицу "Валюта" */
CREATE PROCEDURE pr_ВставкаВалюты
@Код CHAR(3),
@Имя VARCHAR(30),
@Курс SMALLMONEY = 1000,
@Шаг NUMERIC(10, 4) = 0.01
AS
Insert into Валюта
Values(@Код, @Имя, @Шаг, @Курс)
GO
/* Проверка работы хранимой процедуры pr_ВставкаВалюты */
EXEC pr_ВставкаВалюты 'WWW', 'Валюта страны W'
EXEC pr_ВставкаВалюты 'XXX', 'Валюта страны X', 500, 1
EXEC pr_ВставкаВалюты 'YYY', 'Валюта страны Y', 250
EXEC pr_ВставкаВалюты 'ZZZ', 'Валюта страны Z', @Шаг = 50
SELECT * FROM Валюта
GO
/* Выбор курса валюты по ее коду */
CREATE PROCEDURE pr_ВыборКурсаВалюты
@Код CHAR(3),
@Курс SMALLMONEY OUTPUT
AS
IF @Код IS NOT NULL
SELECT @Курс = КурсВалюты
FROM Валюта
WHERE КодВалюты = @Код
ELSE
SELECT @Курс = КурсВалюты
FROM Валюта
WHERE КодВалюты = 'USD'
GO
/* Проверка работы хранимой процедуры pr_ВыборКурсаВалюты */
DECLARE @Code CHAR(3), @Course SMALLMONEY
SET @Code = 'EUR'
EXEC pr_ВыборКурсаВалюты @Code, @Course OUTPUT
SELECT @Code AS [Код валюты], @Course AS [Курс валюты]
EXEC pr_ВыборКурсаВалюты NULL, @Course OUTPUT
SELECT 'USD' AS [Код валюты], @Course AS [Курс валюты]
GO
/* Выбор имени клиента и ФИО руководителя по коду клиента */
CREATE PROCEDURE pr_ДанныеКлиента;1
@Код INT,
@Имя VARCHAR(40) OUTPUT,
@ФИО VARCHAR(60) OUTPUT
AS
SELECT @Имя = ИмяКлиента, @ФИО = ФИОРуководителя
FROM Клиент
WHERE КодКлиента = @Код
GO
/* Проверка работы хранимой процедуры pr_ДанныеКлиента;1 */
DECLARE @Code INT, @Name VARCHAR(40), @FIO VARCHAR(60)
SET @Code = 5
EXEC pr_ДанныеКлиента;1 @Code, @Name OUTPUT, @FIO OUTPUT
SELECT @Name AS [Имя клиента], @FIO AS [ФИО руководителя]
GO
/* Выбор данных о клиенте по любому из трех параметров */
CREATE PROCEDURE pr_ДанныеКлиента;2
@Код INT = NULL OUTPUT,
@Имя VARCHAR(40) = NULL OUTPUT,
@ФИО VARCHAR(60) = NULL OUTPUT
AS
IF @Код IS NOT NULL
SELECT @Имя = ИмяКлиента, @ФИО = ФИОРуководителя
FROM Клиент
WHERE КодКлиента = @Код
ELSE
IF @Имя IS NOT NULL
SELECT @Код = КодКлиента, @ФИО = ФИОРуководителя
FROM Клиент
WHERE ИмяКлиента = @Имя
ELSE
IF @ФИО IS NOT NULL
SELECT @Код = КодКлиента, @Имя = ИмяКлиента
FROM Клиент
WHERE ФИОРуководителя = @ФИО
GO
/* Проверка работы хранимой процедуры pr_ДанныеКлиента;2 */
DECLARE @Code INT, @Name VARCHAR(40), @FIO VARCHAR(60)
SET @Code = 1
EXEC pr_ДанныеКлиента;2 @Code, @Name OUTPUT, @FIO OUTPUT
SELECT @Code AS [Код клиента], @Name AS [Имя клиента],
@FIO AS [ФИО руководителя]
SET @Code = NULL
SET @Name = 'ИП "Темп"'
EXEC pr_ДанныеКлиента;2 @Code OUTPUT, @Name, @FIO OUTPUT
SELECT @Code AS [Код клиента], @Name AS [Имя клиента],
@FIO AS [ФИО руководителя]
SET @Code = NULL
SET @Name = NULL
SET @FIO = 'Прокушев Станислав Игоревич'
EXEC pr_ДанныеКлиента;2 @Code OUTPUT, @Name OUTPUT, @FIO
SELECT @Code AS [Код клиента], @Name AS [Имя клиента],
@FIO AS [ФИО руководителя]
GO
/* Процедура создания и наполнения данными глобальной временной таблицы */
CREATE PROCEDURE pr_КопияРегионов
@Страна VARCHAR(20) = 'Беларусь',
@Город VARCHAR(20) = 'Минск'
AS