🗊Презентация Курс «Базы данных». Программирование на языке PL/SQL. Часть 2

Категория: Информатика
Нажмите для полного просмотра!
Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №1Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №2Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №3Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №4Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №5Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №6Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №7Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №8Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №9Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №10Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №11Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №12Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №13Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №14Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №15Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №16Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №17Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №18Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №19Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №20Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №21Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №22Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №23Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №24Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №25Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №26Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №27Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №28Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №29Курс «Базы данных». Программирование на языке PL/SQL. Часть 2, слайд №30

Содержание

Вы можете ознакомиться и скачать презентацию на тему Курс «Базы данных». Программирование на языке PL/SQL. Часть 2. Доклад-сообщение содержит 30 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Курс «Базы данных»

Тема. Программирование 
на языке PL/SQL. Часть 2
Барабанщиков
Игорь Витальевич
Описание слайда:
Курс «Базы данных» Тема. Программирование на языке PL/SQL. Часть 2 Барабанщиков Игорь Витальевич

Слайд 2





План  лекции
Использование SQL в PL/SQL
Неявные курсоры
Управляющие конструкции
Описание слайда:
План лекции Использование SQL в PL/SQL Неявные курсоры Управляющие конструкции

Слайд 3





Использование SQL в PL/SQL
В процедурах PL/SQL можно использовать команды SQL.
Выборка строки данных из БД выполняется командой SELECT.  Должна возвращаться только одна строка.
Внесение изменений в строки таблиц БД выполняется командами DML (Insert, Update, Delete).
Управление транзакциями выполняется командами COMMIT, ROLLBACK, SAVEPOINT.
Описание слайда:
Использование SQL в PL/SQL В процедурах PL/SQL можно использовать команды SQL. Выборка строки данных из БД выполняется командой SELECT. Должна возвращаться только одна строка. Внесение изменений в строки таблиц БД выполняется командами DML (Insert, Update, Delete). Управление транзакциями выполняется командами COMMIT, ROLLBACK, SAVEPOINT.

Слайд 4





Команды SQL в PL/SQL
Ключевое  слово  END  означает  конец блока, а  не  завершение  транзакции.
Один блок может содержать несколько транзакций.
Одна транзакция может охватывать несколько блоков.
PL/SQL не поддерживает прямо команды DDL (create table…, alter table…).
PL/SQL не поддерживает прямо команды DСL (grant, revoke)
Описание слайда:
Команды SQL в PL/SQL Ключевое слово END означает конец блока, а не завершение транзакции. Один блок может содержать несколько транзакций. Одна транзакция может охватывать несколько блоков. PL/SQL не поддерживает прямо команды DDL (create table…, alter table…). PL/SQL не поддерживает прямо команды DСL (grant, revoke)

Слайд 5





Команда SELECT в PL/SQL
Значения, выбираемые по команде SELECT, должны запоминаться в переменных, указанных во фразе INTO.
Предложение INTO обязательно.
Запрос должен возвращать одну и только одну строку. 
Отсутствие возвращаемых строк или возврат нескольких строк приводят к ошибке.
Количество и типы переменных во фразе INTO должно  совпадать  с  количеством  и  типами столбцов во фразе SELECT.
Описание слайда:
Команда SELECT в PL/SQL Значения, выбираемые по команде SELECT, должны запоминаться в переменных, указанных во фразе INTO. Предложение INTO обязательно. Запрос должен возвращать одну и только одну строку. Отсутствие возвращаемых строк или возврат нескольких строк приводят к ошибке. Количество и типы переменных во фразе INTO должно совпадать с количеством и типами столбцов во фразе SELECT.

Слайд 6





Пример команды SELECT
DECLARE
   v_name  VARCHAR2(20);
   v_date    employees.hiredate%TYPE;
BEGIN
    -- выборка данных из таблицы в переменную
    SELECT  last_name,  hiredate  
         INTO  v_name,  v_date
         FROM  employees
         WHERE emp_id  = 100;
     -- вывод значения переменной
    dbms_output.put_line(‘Имя: ’||v_name);
END;
Описание слайда:
Пример команды SELECT DECLARE v_name VARCHAR2(20); v_date employees.hiredate%TYPE; BEGIN -- выборка данных из таблицы в переменную SELECT last_name, hiredate INTO v_name, v_date FROM employees WHERE emp_id = 100; -- вывод значения переменной dbms_output.put_line(‘Имя: ’||v_name); END;

Слайд 7





Манипулирование данными
DECLARE
    v_sal     employees.salary%TYPE;
BEGIN
    SELECT salary INTO v_sal 
      FROM emploees  WHERE emp_id = 105;
    v_sal := v_sal + 1000;
    UPDATE  employees  SET  salary = v_sal
          WHERE  emp_id = 299;
END;
Описание слайда:
Манипулирование данными DECLARE v_sal employees.salary%TYPE; BEGIN SELECT salary INTO v_sal FROM emploees WHERE emp_id = 105; v_sal := v_sal + 1000; UPDATE employees SET salary = v_sal WHERE emp_id = 299; END;

Слайд 8





Обработка команд SQL
Сервер БД выделяет для обработки команд SQL приватную область памяти, называемую контекстной областью.
В этой области команда SQL синтаксически разбирается и выполняется.
В этой области сохраняются результаты обработки.
Пользователь не имеет доступа к этой области памяти, ей управляет сервер БД.
Описание слайда:
Обработка команд SQL Сервер БД выделяет для обработки команд SQL приватную область памяти, называемую контекстной областью. В этой области команда SQL синтаксически разбирается и выполняется. В этой области сохраняются результаты обработки. Пользователь не имеет доступа к этой области памяти, ей управляет сервер БД.

Слайд 9





Явный и неявный курсоры
Курсор – это указатель на контекстную область.
Когда в блоке выполняется команда SQL, то создается неявный курсор.
Управление неявным курсором автоматически выполняет сервер Oracle.
Если требуется выбрать из БД несколько строк и обработать их последовательно, то программист создает явный курсор.
Описание слайда:
Явный и неявный курсоры Курсор – это указатель на контекстную область. Когда в блоке выполняется команда SQL, то создается неявный курсор. Управление неявным курсором автоматически выполняет сервер Oracle. Если требуется выбрать из БД несколько строк и обработать их последовательно, то программист создает явный курсор.

Слайд 10





Атрибуты курсора
Описание слайда:
Атрибуты курсора

Слайд 11





Атрибуты курсора
Атрибуты курсора позволяют выяснить что произошло  при  выполнении  последней команды SQL.
Атрибуты  курсора  можно  применять  в командах  PL/SQL  подобно  функциям.
Использовать атрибуты курсора в командах SQL нельзя.
Во  всех  атрибутах  присутствует  префикс SQL%.  Это  указывает  на  неявный  курсор.
Описание слайда:
Атрибуты курсора Атрибуты курсора позволяют выяснить что произошло при выполнении последней команды SQL. Атрибуты курсора можно применять в командах PL/SQL подобно функциям. Использовать атрибуты курсора в командах SQL нельзя. Во всех атрибутах присутствует префикс SQL%. Это указывает на неявный курсор.

Слайд 12





Пример
DECLARE 
   v_count  BINARY_INTEGER;
BEGIN
   UPDATE employees SET salary=salary+1000
        WHERE deptno = 10;
   v_count := SQL%ROWCOUNT;
   dbms_output.put_line(‘обновлено’||v_count);
END;
Описание слайда:
Пример DECLARE v_count BINARY_INTEGER; BEGIN UPDATE employees SET salary=salary+1000 WHERE deptno = 10; v_count := SQL%ROWCOUNT; dbms_output.put_line(‘обновлено’||v_count); END;

Слайд 13





Функции SQL в PL/SQL
Большинство встроенных функций SQL доступно и  в  выражениях  PL/SQL:
Однострочные числовые функции
Однострочные символьные функции
Функции преобразования типов данных
Функции для работы с датами
Недопустимые  функции:
 DECODE
Групповые (AVG,  MIN,  MAX,  SUM,  COUNT)
Описание слайда:
Функции SQL в PL/SQL Большинство встроенных функций SQL доступно и в выражениях PL/SQL: Однострочные числовые функции Однострочные символьные функции Функции преобразования типов данных Функции для работы с датами Недопустимые функции: DECODE Групповые (AVG, MIN, MAX, SUM, COUNT)

Слайд 14





Примеры использования функций
Определение длины строки
    v_name := ‘Иванов’;
    v_size    := LENGTH(v_name);
Преобразование в верхний регистр
    v_uname := UPPER(v_name);
Преобразование типа данных
    v_date := TO_CHAR(SYSDATE, ‘dd.mm.yyyy’);
Описание слайда:
Примеры использования функций Определение длины строки v_name := ‘Иванов’; v_size := LENGTH(v_name); Преобразование в верхний регистр v_uname := UPPER(v_name); Преобразование типа данных v_date := TO_CHAR(SYSDATE, ‘dd.mm.yyyy’);

Слайд 15





Управление потоком выполнения
Изменить поток выполнения в блоке PL/SQL можно с помощью набора управляющих структур:
Оператор условного управления IF
Оператор CASE
Команды цикла LOOP
Описание слайда:
Управление потоком выполнения Изменить поток выполнения в блоке PL/SQL можно с помощью набора управляющих структур: Оператор условного управления IF Оператор CASE Команды цикла LOOP

Слайд 16





Команда условного управления IF
IF  условие THEN
     команды;
[ ELSIF условие THEN  -- необязательная часть
     команды; ]
[ ELSIF условие THEN  -- необязательная часть
     команды; ]
[ ELSE                              -- необязательная часть
     команды; ]
END IF;
Описание слайда:
Команда условного управления IF IF условие THEN команды; [ ELSIF условие THEN -- необязательная часть команды; ] [ ELSIF условие THEN -- необязательная часть команды; ] [ ELSE -- необязательная часть команды; ] END IF;

Слайд 17





Примеры IF
Описание слайда:
Примеры IF

Слайд 18





Пример IF…ELSIF…ELSE
DECLARE
   v_age  NUMBER(3) := 50;
BEGIN
   IF v_age < 12 THEN
        dbms_output.put_line(‘Ребенок’);
   ELSIF v_age <= 18 THEN
        dbms_output.put_line(‘Подросток’); 
   ELSIF v_age < 60 THEN
        dbms_output.put_line(‘Взрослый’);
   ELSE
        dbms_output.put_line(‘Пенсионер’);
    END IF;
END;
Описание слайда:
Пример IF…ELSIF…ELSE DECLARE v_age NUMBER(3) := 50; BEGIN IF v_age < 12 THEN dbms_output.put_line(‘Ребенок’); ELSIF v_age <= 18 THEN dbms_output.put_line(‘Подросток’); ELSIF v_age < 60 THEN dbms_output.put_line(‘Взрослый’); ELSE dbms_output.put_line(‘Пенсионер’); END IF; END;

Слайд 19





Простой оператор CASE
Выражение-переключатель  сравнивается  со значением  в  предложении  WHEN.
CASE  выражение-переключатель
   WHEN  значение1 THEN  команда1;
   WHEN  значение2 THEN  команда2;
   WHEN  значение3 THEN  команда3;
   [ ELSE  команда4; ]
END  CASE;
Описание слайда:
Простой оператор CASE Выражение-переключатель сравнивается со значением в предложении WHEN. CASE выражение-переключатель WHEN значение1 THEN команда1; WHEN значение2 THEN команда2; WHEN значение3 THEN команда3; [ ELSE команда4; ] END CASE;

Слайд 20





Пример простого CASE
CASE  v_znak
    WHEN  ‘+’  THEN  v_rezult := v_arg1 + v_arg2;
    WHEN  ‘-’  THEN  v_rezult := v_arg1 – v_arg2; 
    WHEN  ‘/’  THEN  v_rezult := v_arg1 / v_arg2;
    WHEN  ‘*’  THEN  v_rezult := v_arg1 * v_arg2;
    ELSE  v_rezult := 0;
END  CASE;
Описание слайда:
Пример простого CASE CASE v_znak WHEN ‘+’ THEN v_rezult := v_arg1 + v_arg2; WHEN ‘-’ THEN v_rezult := v_arg1 – v_arg2; WHEN ‘/’ THEN v_rezult := v_arg1 / v_arg2; WHEN ‘*’ THEN v_rezult := v_arg1 * v_arg2; ELSE v_rezult := 0; END CASE;

Слайд 21





Поисковый оператор CASE
Не имеет переключателя. Вместо этого каждое предложение WHEN содержит логическое выражение.
CASE
   WHEN  выражение1  THEN  команда1;
   WHEN  выражение2  THEN  команда2;
   WHEN  выражение3  THEN  команда3;
   [ ELSE команда4;]
END CASE;
Описание слайда:
Поисковый оператор CASE Не имеет переключателя. Вместо этого каждое предложение WHEN содержит логическое выражение. CASE WHEN выражение1 THEN команда1; WHEN выражение2 THEN команда2; WHEN выражение3 THEN команда3; [ ELSE команда4;] END CASE;

Слайд 22





Пример поискового CASE
CASE
   WHEN  region_id = ‘Урал’ 
                THEN mgr := ‘Иванов’;
   WHEN  division_id = ‘Бухгалтерия’ 
                THEN mgr := ‘Петров’;
   ELSE
                mgr := ‘Сидоров’;
END CASE;
Описание слайда:
Пример поискового CASE CASE WHEN region_id = ‘Урал’ THEN mgr := ‘Иванов’; WHEN division_id = ‘Бухгалтерия’ THEN mgr := ‘Петров’; ELSE mgr := ‘Сидоров’; END CASE;

Слайд 23





Операторы цикла в PL/SQL
PL/SQL предоставляет следующие типы циклов:
Простой цикл – повторное выполнение действий без каких-либо условий.
Цикл WHILE – повторное выполнение действий на основе условия.
Цикл FOR – выполнение действий определенное количество раз.
Описание слайда:
Операторы цикла в PL/SQL PL/SQL предоставляет следующие типы циклов: Простой цикл – повторное выполнение действий без каких-либо условий. Цикл WHILE – повторное выполнение действий на основе условия. Цикл FOR – выполнение действий определенное количество раз.

Слайд 24





Простой цикл
Это группа повторно выполняемых команд, ограниченных словами LOOP … END LOOP.
Если отсутствует команда EXIT, то цикл будет выполняться бесконечно.
LOOP
    команда1;
    . . .
    EXIT  [ WHEN  выражение ];
END LOOP;
Описание слайда:
Простой цикл Это группа повторно выполняемых команд, ограниченных словами LOOP … END LOOP. Если отсутствует команда EXIT, то цикл будет выполняться бесконечно. LOOP команда1; . . . EXIT [ WHEN выражение ]; END LOOP;

Слайд 25





Пример простого цикла
DECLARE
    v_count  BINARY_INTEGER  := 0;
BEGIN
    LOOP
        v_count  :=  v_count  +  1;
        dbms_output.put_line(‘номер=‘||v_count);
        EXIT  WHEN v_count > 5;
    END  LOOP;
END;
Описание слайда:
Пример простого цикла DECLARE v_count BINARY_INTEGER := 0; BEGIN LOOP v_count := v_count + 1; dbms_output.put_line(‘номер=‘||v_count); EXIT WHEN v_count > 5; END LOOP; END;

Слайд 26





Цикл  WHILE
Используется для повторного выполнения последовательности команд, пока ИСТИННО заданное условие.
WHILE  условие  LOOP
     команда1;
     команда2;
     . . .
END  LOOP;
Описание слайда:
Цикл WHILE Используется для повторного выполнения последовательности команд, пока ИСТИННО заданное условие. WHILE условие LOOP команда1; команда2; . . . END LOOP;

Слайд 27





Пример цикла WHILE
DECLARE
    v_count  BINARY_INTEGER  := 0;
BEGIN
    WHILE  v_count <= 5  LOOP
        v_count  :=  v_count  +  1;
        dbms_output.put_line(‘номер=‘||v_count);
    END  LOOP;
END;
Описание слайда:
Пример цикла WHILE DECLARE v_count BINARY_INTEGER := 0; BEGIN WHILE v_count <= 5 LOOP v_count := v_count + 1; dbms_output.put_line(‘номер=‘||v_count); END LOOP; END;

Слайд 28





Цикл  FOR
Объявление  индекса  (переменной  цикла)  не требуется, он объявляется неявно.
Обязательно надо задать нижнюю и верхнюю границы.
FOR  индекс  IN  [ REVERSE ] ниж_гр .. верх_гр LOOP
        команда1
        команда2;
        . . .
    END  LOOP;
Описание слайда:
Цикл FOR Объявление индекса (переменной цикла) не требуется, он объявляется неявно. Обязательно надо задать нижнюю и верхнюю границы. FOR индекс IN [ REVERSE ] ниж_гр .. верх_гр LOOP команда1 команда2; . . . END LOOP;

Слайд 29





Пример  цикла FOR
DECLARE
    /*  переменную цикла объявлять 
          не надо!!!  */
BEGIN
    FOR  v_count  IN  1..5  LOOP
         dbms_output.put_line(‘номер=‘||v_count);
    END  LOOP;
END;
Описание слайда:
Пример цикла FOR DECLARE /* переменную цикла объявлять не надо!!! */ BEGIN FOR v_count IN 1..5 LOOP dbms_output.put_line(‘номер=‘||v_count); END LOOP; END;

Слайд 30





Итоги
Были изучены вопросы:
Использование команд SQL в PL/SQL
Использование функций SQL в PL/SQL
Неявные курсоры
Операторы управления потоком выполнения.
Операторы цикла.
Описание слайда:
Итоги Были изучены вопросы: Использование команд SQL в PL/SQL Использование функций SQL в PL/SQL Неявные курсоры Операторы управления потоком выполнения. Операторы цикла.



Похожие презентации
Mypresentation.ru
Загрузить презентацию