Добавил:
Меня зовут Катунин Виктор, на данный момент являюсь абитуриентом в СГЭУ, пытаюсь рассортировать все файлы СГЭУ, преобразовать, улучшить и добавить что-то от себя Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный_практикум_по_АБД_sqlserver.docx
Скачиваний:
5
Добавлен:
03.08.2023
Размер:
496.52 Кб
Скачать

12. Лабораторная работа по теме «Программирование»

  1. Исправление ошибок в готовом скрипте

Откройте в Query Analyzer скрипт, расположенный по адресу:

C:\Moc\2073A\Labfiles\L02\Sample_Script.sql.

Просмотрите его и выполните. Просмотрите перечень ошибок. Обратите внимание, что сообщается номер строки (Line ….), в которой находится ошибка.

Основные намеки: в программе не проставлены символы комментариев и отсутствуют команды (GO), разделяющие программу на пакеты.

Запустите программу, сохраните ее на своем диске, сделайте распечатку для отчета.

2.Создание циклических программ

Создайте программу для вычисления суммы четных и нечетных чисел по отдельности для чисел натурального ряда, начиная от 1 до 20. Результаты выводить на каждом шаге цикла в следующем виде:

Нечетное

Сумма нечетных

Четное

Сумма четных

1

1

2

2

Нечетное

Сумма нечетных

Четное

Сумма четных

3

4

4

6

Текст программы и результаты привести в отчете.

3.Использование конструкции case

Разработайте скрипт для проверки наличия контрактов с авторами (таблица Authors базы данных Pubs) и выдайте сообщения в соответствии со следующим алгоритом:

Если поле contract=0 и поле state =’CA’, то текст сообщения должен быть ‘надо заключить!’,

Если поле contract=0 и поле state =’TN’, то текст сообщения – ‘тоже хороший человек, надо подумать’,

Если поле contract=1, то сообщить ‘ему и так хорошо’, во всех остальных случаях записать ‘пусть потерпит!!’.

Вывести в запросе поля au_lname, au_fname, state, contract, 'Наличие контракта'=.

Текст программы и результаты привести в отчете.

4.Использование динамически конструирования программ

Написать программу для открытия любой базы данных и выполнения запроса из любой ее таблицы. Используйте для проверки таблицы Orders, Products базы данных Northwind и таблицу Authors из базы данных Pubs.

Текст программы и результаты привести в отчете.

5. Разработать функцию для начисления стипендии в зависимости от среднего балла по следующему алгоритму:

если средний балл <3.5, то стипендия не начисляется, если средний балл>=3.5, но меньше 4.5, то стипендия должна быть 300 р, иначе 400.

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

6. Создать таблицу в базе данных Pubs со следующими полями: fio студента, oc1, oc2, oc3, означающие оценки за экзамены. Внести в нее 3-4 записи.

7. Преобразовать ранее созданную функцию, добавив в нее необходимые параметры.

Используйте новый вариант функции в запросе, выводя в нем следующие поля: FIO, OC1, OC2, OC3, средний балл, значение стипендии.

8. Создать функцию, которая должна выбирать в таблицу фамилию, разряд сотрудника, должность из соответствующих таблиц базы данных kadry с разрядом, большим или равным заданного параметром функции @r. По умолчанию сделать этот параметр равным числу 13. Организовать проверку на правильность ввода данного параметра, (разряд должен быть в пределах от 1 до 18), выдать сообщение об ошибке. Можно для этого использовать поле fio. Таблицу объявить параметром функции. Организовать вызов функции т.о., чтобы проверить правильность ее работы при всех вариантах вводимого параметра.

9. Создайте программу для исправления номера телефона автора с определенным идентификационным номером (Pubs..Authors)

Создайте новую пользовательскую ошибку со следующим текстом сообщения «Введен неправильный идентификационный код пользователя» с уровнем серьезности 16 (контекстное меню на имени сервера/Все задачи/Manage SQL Server Messages).

Задайте в программе два параметра: ID автора (@au_id) и номер телефона (@phone). По умолчанию дайте им значения NULL.

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

Если параметр @au_id введен, проверьте, существует ли такой идентификационный номер в таблице авторов. Если нет автора с введенным @au_id, возбудите созданную ранее ошибку. Если введенный параметр соответствует определенному автору, замените номер его телефона на введенный и выдайте об этом сообщение.

10. Создайте скрипт для объявления, открытия и вывода данных из курсора, который должен выбрать поля CustomerID, ContactName, City из таблицы Northwinds..Customers из записей, в которых поле City=London.

11. Создайте хранимую процедуру с параметром @city и выходным параметром в виде курсора, аналогичном созданному в примере 10.

Напишите процедуру обработки данного курсора и сохраните ее в виде отдельного скрипта. В этой процедуре подсчитайте количество проживающих в заданном городе и выведите результат под выводом данных из курсора в виде «Число проживающих в городе London= …».