Хелпикс

Главная

Контакты

Случайная статья





Хранимые процедуры в MySQL. Лабораторная работа №3



Хранимые процедуры в MySQL

Лабораторная работа №3

 

1. Создать базу данных «university» в программе-дизайнере MySQL Workbench.

2. В базе данных «university» создать таблицу «departments» с полями:

· id тип int – ключ (PK);

· name тип varchar, не нулевое (NN);

3. Заполнить таблицу «departments» произвольными записями - 2 строки (поле id следует заполнять уникальными целыми числами, например порядковыми номерами, а для поля «name» использовать название групп своего потока).

4. В базе данных «university» создать таблицу «users» с полями:

· id тип int – ключ (PK), счетчик (AI);

· name тип varchar, не нулевое (NN);

· d_id тип int;

5. Заполнить таблицу «users» произвольными записями - 5 строк (insert), при этом: две записи из таблицы «users» связать с первой группой из таблицы «departments», а остальные записи связать со второй группой через поле id таблицы «departments» и d_id таблицы «users». Обязательно создать одну запись со значением в поле «name» - Ivan.

6. Создать хранимую процедуру с именем getUserInfo (раздел Routines в MySQL Workbech).

7. Заполнить тело процедуры согласно образцу:

DELIMITER //

CREATE PROCEDURE `university`.`getUserInfo` (IN param1 VARCHAR(45), OUT param2 INT)

BEGIN

DECLARE UserName VARCHAR(45);

SET UserName = 'Ivan';

 

IF param1 IS NOT NULL THEN

SET UserName = param1;

END IF;

 

SELECT d.name AS departments INTO @department FROM users u LEFT JOIN departments d ON u.d_id = d.id WHERE u.name = UserName;

SELECT COUNT(*) INTO param2 FROM users;

END//

8. Сохранить созданную в программе-дизайнере схему базы данных на локальный компьютер.

9. Запустить генерацию базы данных на сервере MySQL. (Пункт меню: Database->Forward Engineer. В опциях необходимо поставить галки напротив пунктов DROP Objects Before Each CREATE Object и Generate INSERT Statements for Tables).

10. Подключиться к базе данных MySQL через терминал (mysql –u root –p).

11. Активизировать базу данных «university» (use).

12. Выполнить команды SELECT * FROM users; и SELECT * FROM departments; Записать результат вывода в черновик.

13. Запустить созданную хранимую процедуру командой CALL getUserInfo(NULL, @total);

14. Выполнить команды SELECT @department; и SELECT @total; Записать результаты вывода в черновик.

15. Запустить созданную хранимую процедуру изменив первый параметр с NULL на имя пользователя из таблицы «users». Записать результаты вывода в черновик.

16. Выполнить команду SELECT @total; Записать результаты вывода в черновик.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.