Главная страница
Навигация по странице:

  • DELIMITER // CREATE PROCEDURE proc() BEGIN SELECT Name_prod FROM Product WHERE price=1000 ;

  • DELIMITER // CREATE PROCEDURE proc_IN (IN var1 INT) BEGIN SELECT Name_prod FROM Product WHERE price=var1

  • DELIMITER $$ CREATE PROCEDURE my_proc_WHILE(IN n INT) BEGIN SET @sum = 0; SET @x = 1; WHILE @x

  • DELIMITER// CREATE PROCEDURE product_orders(IN productID int, IN plan int, OUT ismade char(3)) BEGIN DECLARE productcount int;

  • AND order-product.Product_ID = productID; IF (productcount >= plan) THEN SET ismade = "YES"; ELSE

  • SELECT @ ismade ; Процедуру можно вызвать и без установки параметров.CALL product_orders(7, 7, @ismade);

  • MySQL

  • SELECT COUNT(gender) INTO mfgender FROM user_details WHERE gender = emp_gender; END $$ DELIMITER ;

  • CALL my_proc_INOUT(@C,M); SELECT @C;

  • MIN_SALARY > 10000 MIN_SALARY MIN_SALARY = 10000 DELIMITER $$ CREATE PROCEDURE `hr`.`my_proc_CASE`

  • WHERE min_salary>10000); WHEN (salary THEN (SELECT COUNT(job_id) INTO no_employees FROM jobs WHERE min_salary

  • бд. бд БАНК_ЗАДАНИЙ. Удаленный доступ к базе с любого хоста


    Скачать 0.91 Mb.
    НазваниеУдаленный доступ к базе с любого хоста
    Дата08.10.2021
    Размер0.91 Mb.
    Формат файлаdocx
    Имя файлабд БАНК_ЗАДАНИЙ.docx
    ТипДокументы
    #243833
    страница3 из 8
    1   2   3   4   5   6   7   8

    РАБОТА 23.О

    «Создание хранимых процедур»

    Формируемые/проверяемые умения

    Формируемые/проверяемые знания

    Создавать объекты баз данных в современных СУБД

    Обеспечивать информационную безопасность на уровне базы данных

    Способы контроля доступа к данным и управления привилегиями

    Время выполнения задания – 180 минут.

    Уровень сложности работы – 3

    Необходимое оборудование, материалы, документация: ПК, МУ по выполнению практических работ.

    КРИТЕРИИ ОЦЕНИВАНИЯ РАБОТЫ КРИТЕРИИ ВЫСТАВЛЕНИЯ ОЦЕНКИ


    Наименование показателей

    Количество баллов

    Создана хранимая процедура без параметров.

    1

    Создана хранимая процедура с одним параметром типа IN.

    2

    Создана хранимая процедураc двумя параметрами типа IN и OUT.

    4

    Создана хранимая процедура с параметром типа INOUT.

    2

    Максимальное количество баллов

    10

    Баллы

    Оценка

    10-9

    отлично

    8

    Хорошо

    7

    Удовлетворительно



    СОДЕРЖАНИЕ РАБОТЫ

    Создание хранимых процедур.

    23.Т Типовое задание

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    4. Создать хранимую процедуру с параметром типа INOUT.

    ХОД ВЫПОЛНЕНИЯ ТИПОВОГО ЗАДАНИЯ 23.Т

    1. Создать хранимую процедуру без параметров.

      DELIMITER // 



    CREATEPROCEDUREproc() 

    BEGIN

    SELECT Name_prod FROM Product WHERE price=1000

    INSERT INTO Product (Name_prod, price) value(“ Огурцы”, 250);

    END// 

    DELIMITER;

    CALL proc();


    1. Создать хранимую процедуру с одним параметром типа IN.

      DELIMITER // 



    CREATEPROCEDUREproc_IN (INvar1 INT) 

    BEGIN

    SELECT Name_prod FROM Product WHERE price=var1

    INSERT INTO Product (Name_prod, price) value(“ Огурцы”, var1);

    END// 

    DELIMITER;

    CALL proc_IN(120);

    2.1 ИспользованиециклаWhileвпроцедуре

    DELIMITER $$

    CREATE PROCEDURE my_proc_WHILE(IN n INT)

    BEGIN

    SET @sum = 0;

    SET @x = 1;

    WHILE @x

    DO

    IF mod(@x, 2) <> 0 THEN

    SET @sum = @sum + @x;

    END IF;

    SET @x = @x + 1;

    END WHILE;

    END$$

    Вызовпроцедуры

    CALL my_proc_WHILE(5);
    SELECT @sum;


    @sum

    3


    CALL my_proc_WHILE(10);
    SELECT @sum;


    @sum

    25


    CALL my_proc_WHILE(3);
    SELECT @sum;


    @sum

    25




    1. Написать процедуру с входнымиIN и выходными параметрамиOUT (минимум по одному), в теле каждой использовать один условный выбор и (или) один цикл.

    По условиям задания, в функции и в процедуре нужно использовать цикл и условный оператор. В процедуре используем условный оператор IF.

    Создадим процедуру, которая будет получать на вход ID Продукта и планируемое число продаж для этого продукта. Если план выполнен, то процедура возвращает “YES”, если продано меньше единиц продукта, то “NO”.

    DELIMITER//

    CREATE PROCEDURE product_orders(IN productID int, IN plan int, OUT ismade char(3))

    BEGIN

    DECLARE productcount int;

    SELECT sum(`order-product`.Amount) INTO productcount

    FROM order, order-product

    WHERE order.ID_order = order-product.Order_ID

    AND order-product.Product_ID = productID;

    IF (productcount >= plan)

    THEN

    SET ismade = "YES";

    ELSE

    SET ismade = "NO";

    END IF;

    END//

    DELIMITER;

    Вызов процедуры

    Сначала установим значения для входных параметров.

    SET @productID = 7;

    SET @plan = 4;

    Теперь вызовем процедуру.

    CALL product_orders(@productID, @plan, @ismade);

    И получим значение выходного параметра процедуры, т.е. результат ее выполнения.

    SELECT @ismade;

    Процедуру можно вызвать и без установки параметров.

    CALL product_orders(7, 7, @ismade);

    1. Создать хранимую процедуру с параметром типа INOUTи INT

    В следующем примере показана простая хранимая процедура MySQL, которая использует параметр INOUT и параметр IN. Пользователь предоставляет ‘M‘ или ‘F‘ через параметр IN (emp_gender) для подсчета количества сотрудников мужского или женского пола из таблицы user_details. Параметр INOUT (mfgender) возвращает результат пользователю.

    CALLmy_proc_OUT(@M)

    DELIMITER$$

    CREATE PROCEDURE my_proc_INOUT (INOUT mfgender INT, IN emp_gender CHAR(1))

    BEGIN

    SELECT COUNT(gender) INTO mfgender FROM user_details WHERE gender = emp_gender;

    END$$

    DELIMITER;

    Теперь проверяем количество сотрудников мужского и женского пола в указанной таблице.

    CALL my_proc_INOUT(@C,'M');

    SELECT @C;

    @C

    3


    CALL my_proc_INOUT(@C,'F');

    SELECT @C;


    @C

    1



      1. Создать хранимую процедуру с параметром типа INOUT и INTс оператором Caseв теле цикла

    Подсчитаем количество сотрудников, удовлетворяющих следующим условиям:

    • MIN_SALARY > 10000

    • MIN_SALARY < 10000

    • MIN_SALARY = 10000

    DELIMITER $$

    CREATE PROCEDURE `hr`.`my_proc_CASE`

    (INOUT no_employees INT, IN salary INT)

    BEGIN

    CASE

    WHEN (salary>10000)

    THEN (SELECT COUNT(job_id) INTO no_employees FROM jobs

    WHERE min_salary>10000);

    WHEN (salary<10000)

    THEN (SELECT COUNT(job_id) INTO no_employees FROM jobs

    WHERE min_salary<10000);

    ELSE (SELECT COUNT(job_id) INTO no_employees

    FROM jobs WHERE min_salary=10000);

    ЗАДАНИЕ 23.1

    Написать хранимые процедуры в соответствии со своим вариантом.

    Вариант

    Описание задания

    1

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор IF.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл Whileи CASE.

    2

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл While.

    1. Создать хранимую процедуру с параметром типа INOUTи INT.

    Использовать в теле процедуры цикл Repeat.

    3

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл Whileи IF.

    4

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор IF.

    3. Создать хранимую процедуру c двумя параметрами типа OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл While и CASE.

    5

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл IF.

    1. Создать хранимую процедуру с параметром типа INOUTи INT.

    Использовать в теле процедуры цикл Repeat.и IF.

    6

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл Whileи IF.

    7

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл Whileи IF.

    8

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл IF.

    1. Создать хранимую процедуру с параметром типа INOUTи INT.

    Использовать в теле процедуры цикл Repeat. и CASE.

    9

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл Whileи IF

    10

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использовать в теле процедуры условный оператор IF.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл While и CASE.

    12

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл IF.

    1. Создать хранимую процедуру с параметром типа INOUT и INT.

    Использовать в теле процедуры цикл Repeat.и CASE.

    13

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.и IF.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл While.

    14

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа OUT.

    Использовать в теле процедуры цикл Repeat. и CASE.

    1. Создать хранимую процедуру с параметром типа INOUT.

    2. Использовать в теле процедуры цикл While.

    15

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор IF.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.и CASE.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл While.

    16

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл IF.

    1. Создать хранимую процедуру с параметром типа INOUTи INT.

    Использовать в теле процедуры цикл Repeat.и IF.

    17

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа OUT.

    Использовать в теле процедуры цикл IF.

    1. Создать хранимую процедуру с параметром типа INOUTи INT.

    Использовать в теле процедуры цикл Whileи CASE.

    18

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор IF.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.и CASE.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл While.

    19

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл Whileи IF

    20

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл While и IF.

    21

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл IF.

    1. Создать хранимую процедуру с параметром типа INOUTи INT.

    Использовать в теле процедуры цикл Repeat.и IF.

    22

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл While и IF

    23

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл Whileи IF.

    24

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл IF.

    1. Создать хранимую процедуру с параметром типа INOUTи INT.

    Использовать в теле процедуры цикл Repeat.

    25

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл Whileи IF.

    26

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор IF.

    3. Создать хранимую процедуру c двумя параметрами типа OUT.

    Использовать в теле процедуры цикл.While.

    1. Создать хранимую процедуру с параметром типа INOUT.

    2. Использовать в теле процедуры циклRepeat.и IF

    27

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл Whileи IF

    28

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл While иIF

    29

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор IF.

    3. Создать хранимую процедуру c двумя параметрами типа IN и OUT.

    Использовать в теле процедуры цикл Repeat.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры цикл While иCASE.

    30

    1. Создать хранимую процедуру без параметров.

    2. Создать хранимую процедуру с одним параметром типа IN. Использоватьв теле процедуры условный оператор Case.

    3. Создать хранимую процедуру c двумя параметрами типа OUT.

    Использовать в теле процедуры цикл.While.

    1. Создать хранимую процедуру с параметром типа INOUT.

    Использовать в теле процедуры циклRepeat.и IF
    1   2   3   4   5   6   7   8


    написать администратору сайта