SQL is a declarative language. It makes life easier to mannage data but gives very little control over to manipulate how it does it. And there are many limitnations to SQL.
What Does SQL Not Do ?
First, SQL is not a program or a development environment such as Access or VB.
SQL is a pure language.
There is no front end built into SQL, that is, the language does not have user forms like an Access application or Visual Basic, and SQL has no intrinsic way to talk with web pages.
SQL statements are mainly generated by a separate front-end product. Many SQL-enabled DBMS do have a tool that allows us to type a SQL statement and run it against the data.
But these tools are only for design time, not deployment.
Second, SQL does not have a back end.
There are no tools intrinsic to the language that can actually store data.
SQL is only a standard means of communicating with software products that can hold data (a DBMS as we will see later).
In other words, the data itself is contained within a DBMS such as Oracle or SQL Server.
We will also need a front end, such as VB or C++.
Then we can use SQL as the language for the front end to send instructions to the DBMS.
To take these first two points together, SQL is a language and not a software product.
Consider a spoken language, the language itself does not contain a speaker or a listener. The language only contains the vocabulary, grammatical rules and idioms to be used by speakers and listeners. The people are not part of, or specified in any way, by the language.
SQL is like a spoken language in another way. The listener and speaker can have any mother tongue, as long as they can translate that to SQL. So a computer can use any operating system and any database software, as long as the software can translate from its internal language to SQL.
- SQL is a language, not a software product. Front-end software interfaces with the user. Back-end software holds data. SQL is the standard language for the two pieces of software to communicate with each other.
- Third, SQL is not a procedural programming language.
- We will discuss the concepts of declarative versus procedural languages shortly.
- SQL is a set-based language, which communicates in statements that define an outcome.
- This is very different to procedural languages that instruct the computer how to proceed step by step to reach an objective.
Fourth, SQL does not have its own specific development environment.
When we work with Access or Power Builder, for example, we have a highly evolved set of tools for
- Laying out our user interface
- Rapid entry of code
- Code reuse
But pure SQL does not include any of those tools (although most vendors include some tools in their products, they are not part of pure SQL). To go back to our spoken language analogy, SQL is the language.
It is not a dictionary, grammar guide, printing press, loudspeaker, postal service, filing cabinet or any of the other tools we use to work with human languages. In the sense that “English” does not include these tools, neither does the SQL language.
Last, SQL is not network-aware.
In the same sense that written English is not dependent on or aware of being used in telephones or e-mails, neither is SQL.
Whenever a SQL statement is issued there must be a way for it to be conveyed, or connected, to its destination.
Programmers create, maintain and fine- tune those connections with code in the front and back ends.
Read about declarative programming