Це цікаве питання, напевне. Більшість людей, які знайомі з розробкою Oracle, не задумуються над цим, але коли ви сходите до неї, це іноді заплутано визначає розмежування між SQL та PL / SQL.
Переглядаючи визначення абревіатур, ви починаєте отримувати уявлення про те, які області функціонування охоплює кожен:
SQL - структурована мова запитів
PL / SQL - Процедурна мова / Структурована мова запитів
Читач, що спостерігає, може помітити, як SQL з'являється двічі 8) Це тому, що SQL часто вбудований в PL / SQL - PL / SQL - це мова, створена для надання власного мови 4-го покоління (4GL), який дуже добре відтворює об'єкти бази даних у Oracle.
У Вікіпедії є досить непоганий матеріал як для SQL, так і для PL / SQL
Заплутана частина полягає в тому, що PL / SQL і SQL трохи перекриваються. Сфера використання SQL включає введення даних, запит, оновлення та видалення, так званий DML або мовні операції з маніпулюванням даними, але він також включає створення, зміну, перейменування, падіння, які є операціями DDL або мовою визначення даних. Тут, де дехто може заплутатися. Операція по створенню збереженої процедури, написаної за допомогою PL / SQL, насправді є SQL - ви використовуєте SQL для створення об’єкта бази даних, що представляє собою блок PL / SQL.
Так само ви можете вбудувати SQL-код у свій PL / SQL. Цикл FOR в PL / SQL може базуватися, наприклад, на запиті SQL. Трохи дує розум, так? Ви створюєте процедуру за допомогою SQL, яка фактично внутрішньо використовує SQL для виконання певних дій над записами з бази даних.
Класні речі, якщо ви запитаєте мене.