SQL vs PL SQL
SQL (Structured Query Language) is the standard language to write entry relational databases. SQL is simple statements, which allows to retrieve, insert, delete, update records as user needs. Simply it is data oriented language for selecting and manipulating set of data. PL SQL (Procedural Language/Structured Query Language) is a procedural extension language for data entry and manipulation by Oracle.
“PL/SQL, Oracle’s procedural extension of SQL, is an advanced fourth-generation programming language (4GL). It offers modern features such as data encapsulation, overloading, collection types, exception handling, and information hiding. PL/SQL also offers seamless SQL access, tight integration with the Oracle server and tools, portability, and security.”
Structured query language (SQL) pronounced as “sequel” is a database computer language designed for managing data in relational database management systems (RDBMS), and originally based upon relational algebra.
Basic scope of SQL is to insert data and perform update, delete, schema creation, schema modification and data access control against databases.
SQL has elements, sub-divided into the followings:
Queries – Retrieve data, based on specific criteria. There are few keywords which can be used in queries. (Select, From, Where, Having, Group by and order by)
e.g: SELECT * FROM table1 WHERE column1 > condition ORDER BY column2;
Statements – That may control transactions, program flow, connections, sessions, or diagnostics
Expressions – That can produce either;
Tables consisting of columns and rows of data
Predicates -Specify conditions that can be evaluated to SQL Boolean (true/false/unknown)
Clauses – Constituent components of statements and queries
PL/SQL (Procedural Language/Structured Query Language) is Oracle Corporation’s procedural extension language for SQL and the Oracle relational database. PL/SQL supports variables, conditions, loops, arrays, exceptions. PL/SQL essentially code containers can be complied in to the oracle databases. Software developers can therefore implant PL/SQL units of functionality into the database straight.
PL/SQL program units can be defined as follows:
Forms the basis of simplest PL/SQL code
Functions are a collection of SQL and PL/SQL statements. Functions execute a task and should return a value to the calling environment.
Procedures are alike to Functions. Procedures also can be executed to perform work. Procedures cannot be used in a SQL statement, can return multiple values. In addition, functions can be called from SQL, while procedures cannot.
Use of packages is re-using of code. Packages are groups of theoretically linked Functions, Procedures, Variable, PL/SQL table and record TYPE statements, Constants & Cursors etc… Packages usually have two parts, a specification and a body
Two advantages of packages include:
Modular approach, encapsulation of business logic
Using packages variables can declare in session levels
Types of variables in PL/SQL
Data types for specific columns
Difference between SQL and PL/SQL
SQL is data oriented language for selecting and manipulating data but PL SQL is a procedural language to create applications.
SQL executes one statement at a time whereas in PL SQL block of code could be executed.
SQL is declarative where as PL SQL is procedural.
SQL is used to write Queries, Data Manipulation Language (DML) and Data Definition Language (DDL) whereas PL SQL is used to write Program blocks, Triggers, Functions, Procedures, and Packages.
SQL is structured query language. In SQL various queries are used to handle the database in a simplified manner. PL/SQL is procedural language contains various types of variable, functions and procedures. SQL allows developer to issue single query or execute single insert/update/delete at a time, while PL/SQL allows writing complete program to get done several selects/inserts/updates/deletes at a time. SQL is simple data oriented language while PL/SQL programming language.