воскресенье, 11 июля 2010 г.

Что такое PL/SQL


В моем обновленном плане на июль я говорил о том, что мне необходимо изучать язык PL/SQL и программировать с помощью него под СУБД ORACLE. Поэтом надо начинать двигаться в этом направлении. Сегодня я расскажу, что же такое язык программирования PL/SQL. Но историю его приводить не буду, расскажу о ней в отдельно статье.

Для начала расшифрую, что же такое PL/SQL – Procedural Language / Structured Query Language. Процедурное расширение языка SQL.
Надо сказать, что язык структурированных запросов (SQL) который повсеместно используется в различных СУБД – отвечает на вопрос: «что сделать с данными?». Это очень удобно, он похож на человеческий язык. Предложение «select * from tb_table» можно перевести как – выбрать все из таблицы tb_table. Очень просто. Но только этот язык не позволяет ответить на вопрос: «Как это сделать?».

Для устранения этого (не могу сказать, что это недостаток) ограничения – разработчики различных СУБД придумывают свои реализации процедурности (ведь именно процедурные языки – например паскаль – показывают, как именно работать с данными). У компании Microsoft, для их СУБД MS SQL Server, разработан специальный TransactSQL. А у ORACLEPL/SQL. У других СУБД также есть свои разновидности языка SQL, но приводить их все не буду.

С помощью PL/SQL легко можно создать циклы (например – операторы LOOP, WHILE и FOR). Также можно использовать условия – это IF и CASE. PL/SQL очень похож на язык АДА (для тех, кто не очень его помнит – также похож на паскаль). Поэтому листинг на нем очень хорошо «просматривается».



Есть у PL/SQL одна особенность – все операторы должны быть закрыты. Например, если мы создаем цикл с помощью ключевого слова LOOP – этот цикл должен быть закрыт с помощью слов END LOOP. Также обстоят дела и с другими операторами: IFEND IF, CASEEND CASE. Эта особенность мне нравится, так как она вносит в этот язык четкость – если есть начало какого-либо действия – то должна быть граница, которая показывает конец действия. 

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

И еще – внутри программы на PL/SQL можно использовать и обычный SQL, что не может не радовать. Поэтому – в одной программе можно сложить и достоинства SQL (простота работы с данными) и достоинства PL/SQL (возможность процедурным образом работать с данными). 



Но у PL/SQL есть недостатки, один из самых главных – это время работы. Как пишет в своих книгах Том Кайт (это человек, который работает в ORACLE и его называют профессионалом в области баз данных). Он говорит, что то, что можно сделать с использованием SQL – делайте с использованием SQL. И только то, что нельзя сделать без использования PL/SQL – делайте с помощью него. То есть не всегда надо использовать этот язык программирования.

Для тех, кто в теме:


Комментариев нет:

Отправить комментарий