SQL срещу PL SQL
SQL (Structured Query Language) е стандартният език за писане на входни релационни бази данни. SQL е прости изрази, които позволяват извличане, вмъкване, изтриване, актуализиране на записи според нуждите на потребителя. Просто това е език, ориентиран към данни за избор и манипулиране на набор от данни. PL SQL (Procedural Language/Structured Query Language) е език за процедурно разширение за въвеждане и манипулиране на данни от Oracle.
“PL/SQL, процедурното разширение на SQL на Oracle, е усъвършенстван език за програмиране от четвърто поколение (4GL). Той предлага модерни функции като капсулиране на данни, претоварване, типове събиране, обработка на изключения и скриване на информация. PL/SQL също предлага безпроблемен SQL достъп, тясна интеграция със сървъра и инструментите на Oracle, преносимост и сигурност.”
SQL
Езикът за структурирани заявки (SQL), произнасян като „продължение“, е компютърен език за бази данни, предназначен за управление на данни в системи за управление на релационни бази данни (RDBMS) и първоначално базиран на релационна алгебра.
Основният обхват на SQL е да вмъква данни и да извършва актуализиране, изтриване, създаване на схема, модифициране на схема и контрол на достъпа до данни спрямо бази данни.
SQL има елементи, подразделени на следното:
Заявки – Извличане на данни въз основа на конкретни критерии. Има няколко ключови думи, които могат да се използват в заявки. (Избиране, От, Къде, Имане, Групиране по и подреждане по)
напр.: ИЗБЕРЕТЕОТ таблица1 WHERE колона1 > условие ORDER BY колона2;
Изявления – които могат да контролират транзакции, програмен поток, връзки, сесии или диагностика
Изрази – които могат да произведат едно от двете;
Скаларни стойности
Таблици, състоящи се от колони и редове с данни
Предикати -Посочете условия, които могат да бъдат оценени на SQL Boolean (true/false/unknown)
Клаузи – Съставни компоненти на изрази и заявки
PL/SQL
PL/SQL (Procedural Language/Structured Query Language) е езикът за процедурно разширение на Oracle Corporation за SQL и релационната база данни на Oracle. PL/SQL поддържа променливи, условия, цикли, масиви, изключения. Контейнерите на PL/SQL по същество могат да бъдат включени в базите данни на Oracle. Следователно разработчиците на софтуер могат да имплантират PL/SQL функционални единици директно в базата данни.
PL/SQL програмните единици могат да бъдат дефинирани както следва:
Анонимни блокове
Формира основата на най-простия PL/SQL код
Функции
Функциите са колекция от SQL и PL/SQL оператори. Функциите изпълняват задача и трябва да върнат стойност на извикващата среда.
Процедури
Процедурите са подобни на функциите. Процедури също могат да бъдат изпълнени за извършване на работа. Процедурите не могат да се използват в SQL израз, могат да връщат множество стойности. Освен това функциите могат да се извикват от SQL, докато процедурите не могат.
Пакети
Използването на пакети е повторно използване на код. Пакетите са групи от теоретично свързани функции, процедури, променливи, PL/SQL таблица и TYPE изрази за записи, константи и курсори и т.н. Пакетите обикновено имат две части, спецификация и тяло
Две предимства на пакетите включват:
Модулен подход, капсулиране на бизнес логиката
Използване на пакети с променливи, които могат да се декларират в нива на сесия
Типове променливи в PL/SQL
Променливи
Числови променливи
Символни променливи
Променливи за дата
Типове данни за конкретни колони
Разлика между SQL и PL/SQL
SQL е език, ориентиран към данни за избор и манипулиране на данни, но PL SQL е процедурен език за създаване на приложения.
SQL изпълнява един оператор наведнъж, докато в PL SQL може да се изпълнява блок от код.
SQL е декларативен, докато PL SQL е процедурен.
SQL се използва за писане на заявки, език за манипулиране на данни (DML) и език за дефиниране на данни (DDL), докато PL SQL се използва за писане на програмни блокове, тригери, функции, процедури и пакети.
Обобщение:
SQL е структуриран език за заявки. В SQL се използват различни заявки за обработка на базата данни по опростен начин. PL/SQL е процедурен език, който съдържа различни видове променливи, функции и процедури. SQL позволява на разработчика да издава една заявка или да изпълнява едно вмъкване/актуализиране/изтриване наведнъж, докато PL/SQL позволява написването на пълна програма, за да се извършват няколко избирания/вмъквания/актуализации/изтривания наведнъж. SQL е прост език, ориентиран към данни, докато езикът за програмиране PL/SQL.