|
|||
Целостность данных, триггеры в MySQLЦелостность данных, триггеры в MySQL Лабораторная работа №7 1. Создать или открыть ранее сохраненную базу данных «university» в программе-дизайнере MySQL Workbench. 2. В базе данных «university» создать таблицу «users» с полями: · id тип int – первичный ключ (PK); · name тип varchar(45), не нулевое (NN); · isupdate тип boolean, не нулевое (NN), по умолчанию False. 3. Для таблицы «users», создать триггер (вкладка Triggers): USE `university`; DELIMITER // CREATE TRIGGER insertResult AFTER INSERT ON users FOR EACH ROW BEGIN INSERT INTO results SET laboratory=false, examination = 0, u_id = NEW.id; END;// 4. В базе данных «university» создать таблицу «results» с полями: · id тип int – счетчик (AI), первичный ключ (PK), не нулевое (NN); · laboratory тип boolean, не нулевое (NN); · examination тип int, не нулевое (NN); · u_id тип int, не нулевое (NN). 5. Для таблицы «results» создать Foreign Key (вкладка Foreign Keys) с именем «u_id» на таблицу «university.users», колонку «id». В качестве события указать «On Delete » со значение «CASCADE». 6. Для таблицы «results», создать триггер (вкладка Triggers): USE `university`; DELIMITER // CREATE TRIGGER updateUser AFTER UPDATE ON results FOR EACH ROW BEGIN UPDATE users Set isupdate=true WHERE id = NEW.u_id; END;// 7. Сохранить созданную в программе-дизайнере схему базы данных на локальный компьютер. Запустить генерацию базы данных на сервере MySQL. Подключиться к базе данных MySQL через терминал (mysql –u root –p). 8. Активизировать базу данных «university» (use). В командной строке выполнить следующую последовательность команд: · INSERT INTO users VALUES (1, ‘Ivan’, 0); · INSERT INTO users VALUES (2, ‘Petr’, 0); · INSERT INTO users VALUES (3, ‘Egor’, 0); · INSERT INTO users VALUES (4, ‘Vladimir’, 0); · SELECT * FROM users; (результаты вывода записать в черновик). · SELECT * FROM results; (результаты вывода записать в черновик). · DELETE FROM users WHERE name LIKE ‘Ivan’; · DELETE FROM users WHERE name LIKE ‘Vladimir’; · SELECT * FROM users; (результаты вывода записать в черновик). · SELECT * FROM results; (результаты вывода записать в черновик). · UPDATE results SET laboratory = true, examination = 5 WHERE u_id = 2; · SELECT * FROM results WHERE u_id = 2; (результаты вывода записать в черновик). · SELECT * FROM users; (результаты вывода записать в черновик). 9. Проанализировать полученные результаты.
|
|||
|