Difference between SQL, SQL*Plus and PL/SQL


SQL 

SQL stands for Structured Query Language . When you code statements such as SELECT, INSERT, UPDATE and DELETE, SQL is the language you are using. It is a declarative language and is always executed on the datbase server. Often you will find yourself coding SQL statements in a development tool, such as PowerBuilder or Visual Basic, but at runtime those statements are sent to the server for execution.

PL/SQL

PL/SQL is Oracle's Procedural Language extension to SQL. It, too, usually runs on the database server, but some Oracle products such as Developer/2000 also contain a PL/SQL engine that resides on the client. Thus, you can run your PL/SQL code on either the client or the server depending on which is more appropriate for the task at hand. Unlike SQL, PL/SQL is procedural, not declarative. This means that your code specifies exactly how things get done. As in SQL, however, you need some way to send your PL/SQL code up to the server for execution. PL/SQL also enables you to embed SQL statements within its procedural code. 

SQL*PLUS

SQL*Plus is an interactive program that allows you to type in and execute SQL statements. It also enables you to type in PL/SQL code and send it to the server to be executed. SQL*Plus is one of the most common front ends used to develop and create stored PL/SQL procedures and functions.


Relationship of SQL*Plus ,PL/SQL and Oracle                                    

What happens when you run SQL*Plus and type in a SQL statement? Where does the processing take place? What exactly does SQL*Plus do, and what does the database do? If you are using Windows enviornment and you have a database serversomewhere on the network, the following things happen:

  1. SQL*Plus transmits your SQL query over the network to the database server.
  2. SQL*Plus waits for a reply from the database server.
  3. The database server executes the query and transmits the results back to SQL*Plus.
  4. SQL*Plus displays the query results on your computer screen.
The important thing is that SQL*Plus does not execute your SQL queries. SQL*Plus also does not execute your PL/SQL code. SQL*Plus simply serves as your window into the Oracle database, which is where the real action takes place.














No comments: