What Makes SQL a Non-Procedural Language?
Overview
Structured Query Language or SQL is a non-procedural language that is used to set up communication with any database.
SQL is known to be a non-procedural language, this is because unlike in procedural languages where the specific details of the operation that is being performed are required, in non-procedural languages like SQL, the task that has to be done can be described by the user to the SQL and the SQL compiler will generate a procedure for the navigation in the database for the desired task automatically.
What is SQL?
As discussed earlier, SQL or Structured Query Language is a language that helps us to operate with the database.
SQL helps us with operations like database creation, database manipulation, deletion, and accessing or modifying the database.
SQL is characterized as a non-procedural language. It is considered the standard language for a Relational database system.
Following are some common properties of SQL
- SQL helps in the creation and deletion of tables as well as the database.
- SQL helps in defining and displaying the data within databases.
- SQL helps in accessing the information stored in the form of data within relational databases.
- SQL helps with the manipulation of data within the database.
- SQL helps the users in the creation of the view, storing the procedure, and to operate with the functionalities of the database.
- SQL helps the users in order to impose restrictions in the database, set permissions within the tables, etc.
- SQL helps in embedding other modules, pre-compilers, or libraries.
What is a Non-Procedural Language?
Nonprocedural language also known as applicative or functional language involves the development of the functions from other functions to construct more complex functions.
These functions work in levels where the initial set of data is manipulated then the final functions are used to find the outcome from the initial data.
A non-procedural language is a functional language that is based on the principle of developing functions from other functions for the construction of even more complicated functions. It is also known as applicative language.
As discussed earlier, in non-procedural languages, the task that has to be done can be described by the user to the language and the compiler generates the procedure for the navigation for the completion of the desired task.
These functions work on levels. Initially, the data set is manipulated, then final functions are implemented in order to get the output of this initial data.
Following are some of the features of non-procedural programming languages:
- In non-procedural programming languages, every procedure is considered a functionality that is used to comprehend the parameters from the results.
- In non-procedural programming languages, the variables act as constant values, i.e. once a variable is assigned with a value the variable cannot be assigned with other variable values.
- In non-procedural programming languages, making recursive calls is preferred over implementing loops.
- In non-procedural programming languages, the values of the functions are dependent only upon the parameters irrespective of the order in which the process has been executed.
Difference between Procedural and Non-procedural Langauge
Procedural language | Non-Procedural Langauge |
---|---|
Procedural languages are also known as command-based languages. | Non-procedural languages are also known as function-based languages. |
Procedural languages have complex semantics. | Non-procedural languages have non-complex semantics. |
Procedural languages are relatively more efficient than non-procedural languages. | Non-Procedural languages are relatively more efficient than procedural languages. |
Procedural languages work with very limited sets of values and data sets. | Non-Procedural languages can work with almost all kinds of values and datasets. |
Procedural languages are based on the principle of state machines. | Non-Procedural languages are based on the principle of mathematical functions. |
When working on critical applications, procedural languages are preferred over non-procedural languages. | When working on non-critical applications, non-procedural languages are preferred over procedural languages. |
Procedural languages employ both recursive as well as iterative loops. | Non-Procedural languages employ only recursive loops. |
The program size of the applications within procedural languages is relatively larger. | The program size of the applications within non-procedural languages is relatively smaller. |
Why is SQL a non-procedural language?
SQL is a non-procedural language; users describe in SQL what they want to be done, and the SQL language compiler automatically generates a procedure to navigate the database and perform the desired task.
In the above sections, we have already discussed what a non-procedural language is. Now, in this section, we will see why is SQL characterized as a non-procedural language.
In SQL, the user can command the language to perform a certain task. The SQL compiler takes the command from the user and picks up a procedure that must be implemented to complete that task.
Then the functionality is assigned and the task is completed. Since, the focus in the SQL is to take the input task and complete it without asking the user to implement the procedure to complete the task, thus, SQL is often classified as a non-procedural language.
Example
Let us go through the following example to understand how SQL is a non-procedural language.
Suppose, we are given a table department
with two columns employee
and salary
. The table will look like the following:
Employee | Salary |
---|---|
Peter | 1000 |
Tony | 9000 |
Bruce | 50000 |
Alfred | 5000 |
Now suppose we have to find the maximum salary among the employees, thus, the query for the operation will be the following:
Code:
SELECT MAX(SALARY)
FROM DEPARTMENT
Output:
50000
Explanation of the example:
In the above example, we can observe that to finish the operation of finding the highest salary in the table, we simply passed the query to the SQL requesting the maximum salary using the MAX attribute. In this case, we are not implementing the procedure to obtain the maximum value but using the SQL itself uses the inbuilt functionality to obtain the maximum salary out of all values without implementing any extra variables or user input. Thus this is a classic example of SQL being a non-procedural language.
Examples of some common non-procedural languages
Apart from SQL, there are several other languages that are non-procedural. Some common non-procedural languages are:
- Prolog
- USP
- RGP
- Scheme
- LISP
Conclusion
- SQL is a non-procedural language that is used to set up communication with databases.
- Procedural languages need specific details of the operation that is being performed.
- Non-procedural languages do not need the implementation of the process for the completion of the input operation.
- SQL is a non-procedural language because it is a function-based language that generates a procedure for the input operation's execution.
- Procedural languages are based on the principle of state machines whereas non-procedural languages are based on mathematical functions.
Discussion