Методические указания к практическим занятиям



бет28/52
Дата08.02.2022
өлшемі22,46 Mb.
#118386
түріМетодические указания
1   ...   24   25   26   27   28   29   30   31   ...   52
Байланысты:
МУ Базы данных SQL Server2012 Винокурова

Замечание: В коде зелёным цветом выделяются комментарии. Они не обрабатываются сервером и выполняют функцию пояснений к коду. Строки комментариев начинаются с подстроки «--».


Наберём код процедуры, вычисляющей среднее трёх чисел, как это пока- зано на рисунке 61.

Рисунок 61 — Процедура вычисления среднего трех чисел Рассмотрим код данной процедуры более подробно (рис. 61):



  1. CREATE PROCRDURE [Среднее трёх величин] — определяет имя созда- ваемой процедуры как «Среднее трёх величин»;

  2. @Value1 Real = 0, @Value2 Real = 0, @Value3 Real = 0 — определяют три параметра процедуры Value1, Value2 и Value3. Данным параметрам мож- но присвоить дробные числа (Тип данных Real), значения по умолчанию равны 0;

  3. SELECT 'Среднее значение' = (@Valuel + @Value2 + @Value3)/3 — вы- числяет среднее и выводит результат с подписью «Среднее значение». Остальные фрагменты кода рассмотрены выше (рис. 60).

Для создания процедуры выполним вышеописанный код, нажав кнопку ( ) на панели инструментов. В нижней части окна с кодом появится сообщение “Conimand(s) completed successfully.” («Выполнение ко- манд успешно завершено.»). Закройте окно с кодом, щёлкнув мышью по кнопке закрытия , расположенной в верхнем правом углу окна с кодом процедуры. После появления окна сохранения процедуры, ответим “Yes” («Да»), в появив- шемся окне сохраним запрос в свою папку под именем «Среднее трех вели- чин».
Проверим работоспособность созданной хранимой процедуры. Для за- пуска хранимой процедуры необходимо создать новый пустой запрос, нажав на кнопку ( ) на панели инструментов. В появившемся окне с пустым запросом наберите команду EXEC [Среднее трёх величин] 1, 7, 9 и нажмите кнопку ( ) на панели инструментов (рис. 62).

Рисунок 62 — Запуск хранимой процедуры


В нижней части окна с кодом появится результат выполнения новой хра- нимой процедуры: Среднее значение 5,66667 (рис. 62).
Закроем окно запроса и сохраним его под именем «СреднееТрехВели- чин1». Также процедура будет сохранена в папку “Stored Procedures” («Храни- мые процедуры») под именем «dbo.Среднее трех величин».
Теперь создадим хранимую процедуру для отбора студентов из таблицы Студенты по их Фамилии. Для этого создайте новую хранимую процедуру, как это описано выше, и наберите код новой процедуры как на рисунке 63.

Рисунок 63 — Текст процедуры для отбора студентов по Фамилии из таблицы Студенты


Рассмотрим код процедуры «Отображение студентов по Фамилии» более подробно (рис. 63):



  1. CREATE PROCRDURE [Отображение студентов по Фамилии] — опреде- ляет имя создаваемой процедуры как «Отображение студентов по Фами- лии»;

  2. @Famaly Varchar (30) =' ' — определяют единственный параметр проце- дуры Famaly. Параметру можно присвоить текстовые сроки переменной длины длиной до 30 символов (Тип данных Varсhar(30)), значения по умолчанию равны пустой строке;

  3. SELECT * FROM dbo.Студенты WHERE ФИО = @Famaly — отображает все поля (*) из таблицы Студенты (dbo.Студенты), где значение поля Фа- милия равно значению параметра Famaly (Фамилия = @Famaly). Выполним вышеописанный код и закроем окно с кодом, как описано вы-

ше.
Проверим работоспособность созданной хранимой процедуры. Создайте
новый пустой запрос. В появившемся окне с пустым запросом наберите коман- ду EXEC [Отображение студентов по Фамилии] “Антонов” и нажмите кнопку ( ) на панели инструментов (рис. 64).

Рисунок 64 — Результат выполнения процедуры «Отображение студентов по Фамилии»


В нижней части окна с кодом появится результат выполнения хранимой процедуры «Отображение студентов по Фамилии» (Рис. 64).


Теперь перейдём к более сложной задаче — отобразить студентов, у ко- торых оценка за экзамен выше заданной. Создайте новую хранимую процедуру и наберите код новой процедуры как на рисунке 65.

Рисунок 65 — Текст хранимой процедуры «Отображение студентов по оценке
за экзамен»

Рассмотрим код процедуры «Отображение студентов по оценке за экза- мен» более подробно (рис. 65):



  1. CREATE PROCRDURE [Отображение студентов по оценке за экзамен] — определяет имя создаваемой процедуры как «Отображение студентов по оценке за экзамен»;

  2. @Grade Real = 0 — определяет параметр процедуры Grade. Параметру можно присваивать дробные числа (тип данных Real), значение по умол- чанию равно 0;

  3. SELECT * FROM dbo.СтудентыОценки WHERE [Оценка за экзамен] > @Grade — отображает все поля (*) из запроса dbo.СтудентыОценки, где оценка больше, чем значение параметра Grade ([Оценка за экзамен] > @Grade).

Выполним вышеописанный код и закроем окно с кодом, как описано вы- ше. Проверим, как работает запрос, описанный выше. Для этого, создайте но-
вый запрос и в нём наберите команду EXEC [Отображение студентов по оценке за экзамен] 3 и выполните её (Смотри выше) (рис. 66).

Рисунок 66 — Результат выполнения процедуры «Отображение студентов по оценке за экзамен»


В нижней части окна с кодом появится результат выполнения хранимой процедуры «Отображение студентов по оценке за экзамен» (рис. 66).


В заключение решим более сложную задачу — отображение студентов старше заданного возраста. Причём возраст будет автоматически вычисляться в зависимости от даты рождения.


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

Рисунок 67 — Текст хранимой процедуры «Отображение студентов по возрасту»

Рассмотрим код создаваемой процедуры «Отображение студентов по воз- расту» более подробно (рис. 67):



  1. CREATE PROCRDURE [Отображение студентов по возрасту] — опреде- ляет имя создаваемой процедуры как «Отображение студентов по возрас- ту»;

  2. @Age int = 0 — определяет параметр процедуры Age. Параметру можно присваивать целые числа (тип данных int), значение по умолчанию равно 0;

  3. Фамилия, Имя, Отчество, dbo.СтудентыСпециальности.[Дата рождения], ‘Возраст’ = DATEDIFF(уу, dbo.СтудентыСпециальности.[Дата рожде- ния], GETDATE()) — отображает из запроса dbo.СтудентыСпециальности (FROM dbo.СтудентыСпециальности) поля Фамилия, Имя, Отчество и

«Дата рождения» (dbo.СтудентыСпециальности.[Дата рождения]), а так-
же отображает возраст студента ('Возраст') в годах (уу), вычисленный ис- ходя из его даты рождения и текущей даты (DATEDIFF(yy, dbo.СтудентыСпециальности.[Дата рождения], GETDATE()). Более того, выводятся студенты, возраст которых больше определённого в параметре
«Age» (DATEDIFF(yy, dbo.СтудентыСпециальности.[Дата рождения], GETDATE()) > @Age).


Достарыңызбен бөлісу:
1   ...   24   25   26   27   28   29   30   31   ...   52




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет