Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы MySQL.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
448.25 Кб
Скачать

3. Динамические запросы с параметром. Способы задания параметров

БИЛЕТ № 21

1. Оператор объявления переменных в хранимой процедуре.

Объявление параметров

Для объявления параметра необходимо задать от двух до четырех указанных ниже фрагментов информации.

Имя.

Тип данных.

Заданное по умолчанию значение.

Обозначение выходного параметра.

Объявление параметра имеет следующий синтаксис: (@parameter_name [AS] datatype [= default|NULL] [VARYING] [OUTPUT|OUT]

Правила именования, в соответствии с которыми формируется имя параметра, являются довольно простыми. В основном они совпадают с правилами составления имен объектов, за исключением того, что в них не допускается использование пробелов. Кроме того, имена параметров должны начинаться со знака @.

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

Создадим хранимую процедуру, предусмотрим использование нескольких входных параметров для ввода новой строки в таблицу Sclad:

USE Sclad

GO

CREATE PROC Add_otdel

(@otdel char (15),

@Phone char(10) )

AS

INSERT INTO otdel

VALUES

(@otdel, @Phone)

2. Оператор выбора Select. Сортировка данных. Использование специальных операторов. Вычисляемые поля.

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

Выражение SELECT имеет строго определенный формат:

SELECT <список имен полей>

FROM <таблица>

WHERE <условие отбора> ORDER by <список имен полей>

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

SELECT "-"|| Name, Oklad, Oklad*1.5 As Зарплата

FROM Person

Здесь через ключевое слово As вводится имя поля. Ввод имени поля не обязателен, но в то же время информация отображается более наглядно. Результат работы этого SQL-запроса представлен ниже:

Для сортировки данных используется выражение ORDER BY

field_name` [ASC | DESC] [, `field_name2` [ASC | DESC]]

Существует 2 направления сортировки данных в SQL-запросе. ASC – по возрастанию и DESC – по убыванию. По-умолчанию данные сортируются по возрастанию.

Пример:

SELECT `id` FROM `table` ORDER BY `id`;

mysql> SELECT `id` FROM `table` ORDER BY `id` ASC;[/mysql]

3. Агрегатные характеристики в sql – запросах. Вложенные запросы. Объединение таблиц в sql-запросах.

БИЛЕТ № 22

1. Написать хранимые процедуры на редактирование данных одного поля, нескольких полей.

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

Create procedure gruppa_Edit

(@Grup_ID int,

@Grup_NAME char (9),

@Grup_KOLSTUD int,

@Grup_COURSE int)

AS

Update Gruppa Set

Grup_Name=@Grup_Name,

Grup_KOLSTUD=@Grup_KOLSTUD,

Grup_COURSE=@Grup_COURSE

Where Grup_id=@Grup_id

Производится редактирование той записи, в которой значение поля Grup_id равно @Grup_id. Обращение к хранимой процедуре в среде MS SQL Server запишется следующим образом:

Exec gruppa_Edit 17,’IS101’, 20, 3

Значения записи с Grup_ID =17 поменяются на новые значения ’IS101’, 20, 3.