Учебное пособие по PL / SQL: все, что вам нужно знать о PL / SQL



Учебник PL / SQL содержит подробное объяснение всех концепций, необходимых для овладения программированием на PL / SQL, с различными примерами.

PL / SQL - это процедурный язык, в котором устранены недостатки, с которыми Структурированный язык запросов . Это расширение SQL, и мы даже можем без проблем использовать SQL-запросы в любом приложении или программе PL / SQL. В этом руководстве по PL / SQL мы подробно рассмотрим основные концепции PL / SQL. В этой статье рассматриваются следующие темы.

Что такое PL / SQL?

Он означает расширение процедурного языка для структурированный язык запросов . Oracle создал PL / SQL, который расширяет некоторые ограничения SQL, чтобы предоставить более комплексное решение для создания критически важных приложений, работающих на Oracle. .





Учебное пособие по logo-pl / sql - edureka

особенности

  • PL / SQL предоставляет функциональные возможности процедурного языка, такие как принятие решений, итерация и т. Д.

  • Используя одну команду, PL / SQL может выполнять несколько запросов.



  • Мы также можем повторно использовать модули PL / SQL, такие как функции, триггеры, процедуры и т. Д., Которые хранятся в базе данных после создания.

  • PL / SQL также имеет блок обработки исключений, который обрабатывает исключения в PL / SQL.

  • Также возможна расширенная проверка ошибок с помощью PL / SQL.



  • Приложения, написанные на PL / SQL, переносимы на другое оборудование и операционные системы при условии, что Oracle должен работать.

PL / SQL против SQL

SQL PL / SQL
SQL - это единый запрос, который используется для выполнения операций DDL и DML.PL / SQL - это блок кодов, который используется для определения всей программы или процедуры / функции и т. Д.
На самом деле он не определяет, как что-то нужно делать, а скорее определяет, что нужно делать.PL / SQL определяет, как все должно быть сделано
Он выполняет один операторОн выполняет сразу блок операторов.
SQL в основном используется для управления даннымиPL / SQL, с другой стороны, используется для создания приложений.
Он не может содержать код PL / SQLПоскольку это расширение SQL, оно может содержать в себе код SQL.

Блочные структуры в PL / SQL

PL / SQL обычно разбивает код на блоки. Блок кода без имени известен как анонимный блок. Он известен как анонимный блок, потому что он не сохраняется в базе данных Oracle. Давайте посмотрим на анонимный блок в PL / SQL.

[DECLARE] операторы объявления [BEGIN] операторы выполнения [EXCEPTION] операторы исключения END /

Глядя на диаграмму, показанную выше, мы видим, что структура блока разделена на четыре части: объявление, начало, исключение и конец. Попробуем разобраться, как блочная структура работает в PL / SQL. Из всех этих разделов раздел выполнения является обязательным, а остальные - необязательными.

  • ЗАЯВИТЬ ключевое слово используется для объявления раздела используется для объявления типов данных и структур, таких как переменные, функции и т. д.

  • НАЧАТЬ ключевое слово используется для раздела выполнения. Он является обязательным и содержит все операторы, которые необходимо выполнить. В этом блоке определяется бизнес-логика, в этом блоке мы можем использовать как процедурные, так и SQL-запросы.

  • В ИСКЛЮЧЕНИЕ ключевое слово используется для раздела исключений. Он содержит все заявления об исключениях.

  • КОНЕЦ ключевое слово отмечает конец блока, а обратная косая черта «/» сообщает инструменту, что вы используете (Oracle Database Tool) для выполнения блока PL / SQL.

Вот простой пример, показывающий, как мы можем использовать код PL / SQL.

НАЧАЛО NULL КОНЕЦ /

Теперь, когда мы знаем, как блочная структура работает в PL / SQL, давайте разберемся с различными аспектами PL / SQL, такими как объявление, именование и присвоение значений переменным.

Переменные PL / SQL

Переменная в PL / SQL - это, по сути, изменяющееся имя или временное место хранения, которое поддерживает определенный тип данных. Давайте посмотрим, как мы можем использовать переменные в программе PL / SQL.

Правила именования переменных

PL / SQL следует следующим правилам именования переменных.

как использовать css спрайты
  • Переменная не может содержать более 31 символа.

  • Имя переменной должно начинаться с символа ASCII. Поскольку PL / SQL чувствителен к регистру, прописные и строчные буквы будут разными переменными.

  • После первого символа должен быть специальный символ ($, _) или любое число.

Соглашения об именах

Для использования переменных используйте следующие соглашения об именах, перечисленные ниже.

Приставка Тип данных
v_VARCHAR2
n_КОЛИЧЕСТВО
t_ТАБЛИЦА
р_РЯД
d_ДАТА
b_BOOLEAN

Декларация

Давайте попробуем понять, как объявление переменных выполняется в PL / SQL.

Объявление включает имя переменной, за которым следует тип данных, разделенные точкой с запятой. Ниже приведен пример, показывающий, как можно объявить переменную в PL / SQL.

DECLARE v_name VARCHAR (25) n_age ЧИСЛО (3) BEGIN NULL END

Вы также можете добавить длину типа данных, как мы это сделали в примере выше.

Якоря

Якорь в основном относится к использованию ключевого слова% TYPE для объявления переменной с типом данных, связанным с типом данных конкретного столбца в таблице.

Взгляните на пример, чтобы понять это. Предположим, у нас есть таблица EMPLOYEES, мы можем использовать якоря следующим образом.

ОБЯЗАТЕЛЬНО v_name EMPLOYEE.NAME% TYPE n_age EMPLOYEE.AGE% TYPE BEGIN NULL END /

Присвоение

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

DECLARE v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /

Инициализация

Мы также можем инициализировать значение переменной в разделе объявления. В следующем примере показано, как мы можем инициализировать значения переменной.

DECLARE v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /

Теперь, когда мы знаем, как мы можем работать с переменными, давайте попробуем понять, как мы будем использовать функции в PL / SQL.

Функция в PL / SQL

Функция в PL / SQL - это, по сути, именованный блок, который возвращает значение. Он также известен как подпрограмма или подпрограмма, следующий синтаксис показывает, как мы можем использовать функции в PL / SQL.

CREATE [OR REPLACE] FUNCTION имя_функции [(параметр_1 [IN] [OUT] тип_данных, параметр_2 [IN] [OUT] тип_данных, параметр_N [IN] [OUT] тип_данных] RETURN return_data_type IS BEGIN инструкции return return_data_type EXCEPTION END /

Прежде всего, вы должны указать имя функции после ключевого слова. Имя функции должно начинаться с глагола. Функция может не иметь ни одного, одного или нескольких параметров, которые мы указываем в параметрах. Мы должны явно указать тип данных каждого параметра, а затем выбрать режим, который может быть одним из следующих.

  • В - Параметр IN предназначен только для чтения.

  • ВНЕ - Это параметр только для записи

  • ВНЕ - Параметр IN OUT является параметром чтения-записи.

Вот простой пример, показывающий, как мы используем функции в PL / SQL.

СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ФУНКЦИЮ try_parse (iv_number IN VARCHAR2) RETURN NUMBER IS BEGIN RETURN to_number (iv_number) EXCEPTION WHEN другие THEN RETURN NULL END

Вызов функции

Давайте попробуем вызвать функцию, которую мы создали в анонимном блоке в следующем примере.

SET SERVEROUTPUT ON SIZE 1000000 DECLARE n_x number n_y number n_z number BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n__OUTPUT.PUT_LINE) n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

Мы также можем вызвать функцию в операторе SELECT. Теперь, когда мы знаем, как использовать функции в PL / SQL, давайте попробуем понять, как мы работаем с процедурами в PL / SQL.

PL / SQL процедура

Процедура - это в основном блок, который выполняет определенную задачу. Используя процедуру, мы можем обернуть или инкапсулировать сложную бизнес-логику и повторно использовать их как на уровне приложения, так и на уровне базы данных.

Давайте посмотрим на простой пример, чтобы понять, как процедура работает в PL / SQL.

СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ПРОЦЕДУРУ adjust_salary (in_employee_id IN EMPLOYEES.EMPLOYEE_ID% TYPE, in_percent IN NUMBER) НАЧИНАЕТСЯ - обновить зарплату сотрудника. ОБНОВИТЬ сотрудников.

В приведенном выше примере у нас есть два параметра: процедура регулирует зарплату на заданный процент, а ключевое слово UPDATE обновляет значение в информации о зарплате.

Заголовок процедуры

Раздел перед ключевым словом IS называется заголовком процедуры. Ниже приведены несколько указаний, с которыми необходимо знать при работе с процедурами.

  • схема - Это необязательное имя схемы, к которой принадлежит процедура.

  • имя - Название процедуры, которая должна начинаться с глагола.

  • параметры - Это необязательный список параметров.

  • AUTHID - Он определяет, будет ли процедура выполняться с привилегиями текущего пользователя или первоначального владельца процедуры.

Тело процедуры

Все, что идет после ключевого слова IS, называется телом процедуры. В теле процедуры есть заявления об объявлении, исключении и выполнении. В отличие от функции, ключевое слово RETURN в процедуре используется для остановки выполнения и возврата управления вызывающей стороне.

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

Давайте посмотрим, как мы можем вызвать процедуру в PL / SQL.

EXEC имя_процедуры (param1, param2 & hellipparamN)

Мы можем вызывать процедуры без параметров, просто используя ключевое слово EXEC и имя процедуры. Теперь, когда мы знаем, как работать с процедурами, давайте попробуем понять, как вложенные блоки используются в PL / SQL.

Вложенный блок

Вложенный блок - это не что иное, как комбинация одного или нескольких блоков PL / SQL для лучшего контроля над выполнением и исключительной обработки программы.

Вот простой пример вложенного блока.

НАБОР SERVEROUTPUT НА РАЗМЕР 1000000 DECLARE n_emp_id EMPLOYEES.EMPLOYEE_ID% ТИП: = & emp_id1 BEGIN DECLARE n_emp_id employees.employee_id% TYPE: = & emp_id2 v_name employees.first_name% ТИП НАЧАТЬ ВЫБОР first_name НА v_name от сотрудников ГДЕ employee_id = n_emp_id DBMS_OUTPUT.PUT_LINE ( ​​'Имя сотрудника '|| n_emp_id ||' равно '|| v_name) ИСКЛЮЧЕНИЕ КОГДА no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Employee '|| n_emp_id ||' not found ') END END /

Внешний блок PL / SQL в приведенном выше примере известен как родительский блок или охватывающий блок, внутренний блок, с другой стороны, известен как дочерний блок или закрытый блок.

Не рекомендуется использовать переменные с одинаковыми именами в обоих блоках, потому что во время выполнения переменная дочернего блока переопределит переменную родительского блока. Это происходит потому, что PL / SQL отдает приоритет переменной внутри своего блока.

Ярлык блока

Мы можем решить эту проблему с помощью метки блока, которая помогает нам делать ссылки на переменные внутри блоков с помощью метки.

Вот простой пример, показывающий, как мы можем использовать метку блока.

 <>ОБЪЯВИТЬ ... НАЧАТЬ ... КОНЕЦ

Использование метки блока помогает улучшить читаемость кода, получить лучший контроль и сделать ссылки на блоки. Теперь, когда мы знаем, как мы можем работать с вложенными блоками, давайте попробуем понять, как оператор IF STATEMENT работает в PL / SQL.

Заявление IF

PL / SQL имеет три оператора IF

  • ЕСЛИ-ТО - Это самый простой оператор IF: если условие истинно, операторы будут выполняться, если условие ложно, оно ничего не делает.

  • ЕСЛИ-ТО-ЕЩЕ - Здесь предложение ELSE добавляется для альтернативной последовательности операторов.

  • IF-THEN-ELSEIF - Это позволяет нам последовательно выполнять несколько условий тестирования.

IF-THEN Синтаксис

IF условие THEN последовательность_условий END IF

IF-THEN-ELSE Синтаксис

ЕСЛИ условие THEN последовательность_из_выложений ELSE последовательность_элементных_условий END IF

IF-THEN-ELSEIF Синтаксис

IF condition1 THEN последовательность_условий1 ELSIF condition2 THEN последовательность_of_statements2 ELSE последовательность_of_statements3 END IF

Теперь, когда мы закончили с оператором IF, давайте посмотрим на оператор CASE в PL / SQL.

Заявление CASE

Оператор CASE в основном помогает в выполнении последовательности операторов на основе селектора. Селектором в этом случае может быть что угодно, это может быть переменная, функция или простое выражение. Вот простой пример, демонстрирующий синтаксис оператора CASE в PL / SQL.

[<>] CASE [ИСТИНА | селектор] КОГДА выражение1 ТОГДА последовательность_выражений1 КОГДА выражение2 ТОГДА последовательность_выражений2 ... КОГДА выражениеN ТОГДА последовательность_представленийN [ИНАЧЕ последовательность_предложенийN + 1] КОНЕЦ [имя_метки]

В приведенном выше синтаксисе после ключевого слова CASE идет селектор. PL / SQL оценит селектор только один раз, чтобы определить, какой оператор необходимо выполнить.

За селектором следует ключевое слово WHEN. Если выражение удовлетворяет селектору, то выполняется соответствующий оператор после ключевого слова THEN.

Теперь, когда мы знаем, как использовать оператор CASE, давайте попробуем понять, как мы будем использовать операторы цикла в PL / SQL.

Заявление цикла

Оператор цикла в PL / SQL - это итеративный оператор, который позволяет вам выполнять последовательность операторов несколько раз. Вот простой пример, демонстрирующий синтаксис оператора цикла в PL / SQL.

LOOP sequence_of_statements END LOOP

Между ключевыми словами LOOP и END LOOP должен быть хотя бы один исполняемый оператор.

Цикл с оператором EXIT

Операторы EXIT и EXIT when позволяют выйти из цикла. Оператор EXIT WHEN завершает цикл условно, а EXIT безоговорочно завершает выполнение.

LOOP ... EXIT WHEN condition END LOOP

Этикетка петли

как установить путь в Java

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

 <>LOOP sequence_of_statements END LOOP label

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

Заявление цикла while

Мы можем использовать оператор цикла WHILE, когда количество выполнений не определено до начала выполнения. Следующий синтаксис используется для оператора цикла WHILE в PL / SQL.

WHILE условие LOOP sequence_of_statements END LOOP

Условие в синтаксисе - это логическое значение или выражение, которое принимает значение TRUE, FALSE или NULL. Если условие ИСТИНА, операторы будут выполнены, если ЛОЖЬ, выполнение останавливается и управление переходит к следующему исполняемому оператору.

Теперь, когда мы знаем, как использовать оператор цикла WHILE, давайте взглянем на оператор цикла FOR.

Для оператора цикла

Оператор цикла FOR в PL / SQL позволяет нам выполнять последовательность операторов определенное количество раз. Ниже приведен синтаксис для использования оператора цикла FOR в PL / SQL.

FOR loop_counter IN [REVERSE] нижняя_ граница .. верхняя_ граница LOOP последовательность_ операторов END LOOP

PL / SQL автоматически создает локальную переменную loop_counter с типом данных INTEGER для цикла, так что вам не нужно объявлять ее явно. Нижняя граница.. верхняя граница - это диапазон, в котором повторяется цикл. Кроме того, у вас должен быть хотя бы один исполняемый оператор между ключевыми словами LOOP и END LOOP.

Теперь, когда мы знаем, как использовать операторы цикла в PL / SQL, давайте взглянем на исключительную обработку в PL / SQL.

Исключительная управляемость

В PL / SQL любая ошибка рассматривается как исключение. Исключение можно рассматривать как особое условие, которое может изменить или изменить поток выполнения. В PL / SQL есть два типа исключений.

  • Системное исключение - Он вызывается средой выполнения PL / SQL при обнаружении ошибки.

  • Исключение, определяемое программистом - Эти исключения определяются программистом в конкретном приложении.

Определение исключения

Исключение в PL / SQL должно быть объявлено до того, как оно может быть вызвано. Мы можем определить исключение с помощью ключевого слова EXCEPTION, как мы это сделали в примере ниже.

EXCEPTION_NAME EXCEPTION

Чтобы вызвать исключение, мы используем ключевое слово RAISE.

ПОДНЯТЬ EXCEPTION_NAME

Итак, это все о PL / SQL, надеюсь, эта статья помогла вам повысить ценность ваших знаний. Для получения дополнительной информации о SQL или базах данных вы можете обратиться к нашему исчерпывающему списку литературы здесь: .

Если вы хотите пройти структурированное обучение работе с MySQL, ознакомьтесь с нашими который включает в себя живое обучение под руководством инструктора и реальный проектный опыт. Этот тренинг поможет вам глубже понять MySQL и достичь мастерства в этой теме.

Есть вопрос к нам? Пожалуйста, укажите это в комментариях к ' Учебник PL / SQL »И я вернусь к вам.