|
|||
Хранимые процедуры в 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; Записать результаты вывода в черновик.
|
|||
|