O uso de comandos SQL é fundamental quando se trabalha com banco de dados.
A instrução SQL é usada em diversas linguagens que agregam o poder da
Structured Query Language, tais como:
Cobol, Natural, SQL Server, Oracle, MySql e outros.
Em junho de 1970, E. F. Codd, membro do Laboratório de Pesquisa da IBM em San Jose,
na Califórnia, publicou um trabalho intitulado "A Relational Model of Data for Large Shared
Data Banks" (Um Modelo Relacional de Dados para Grandes Bancos de Dados Compartilhados), no
jornal Association of Computer Machinery.
Nesse trabalho, Codd estabeleceu príncipios sobre
gerência de banco de dados, denominando-os com o termo relacional. Essa foi a base utilizada na
criação de uma linguagem-padrão para manipular informações em Banco de Dados Relacionais.
E essa linguagem é a SQL (Structured Query Language).
Inicialmente chamada de SEQUEL (Structured English Query Language), a linguagem SQL foi
concebida e desenvolvida pela IBM, utilizando os conceitos de Codd. Em 1979, a Relational
Software Inc., hoje Oracle Corporation, lançou a primeira versão comercial da linguagem SQL.
Atualmente, a SQL pode ser considerada um padrão para manipulação de dados em um banco de dados.
Duas entidades, a ANSI (American National Standards Institute) e a ISO (International Standards
Organization), vêm ao longo do tempo padronizando a linguagem SQL. O primeiro padrão (SQL-86)
foi definido pela ANSI em 1986 e consistia basicamente na SQL da IBM, com poucas modificações.
Em 1987, a ISO adotou o mesmo padrão. Em 1989, surge uma nova versão (SQL-89), com significativas
modificações. Essa versão é utilizada pelos bancos de dados atuais.
Em 1992, houve uma nova versão aprimorando a anterior (SQL-92). Essa versão define as regras
básicas para os bancos de dados relacionais. Em 1999 surge a SQL-99, conhecida também como SQL3,
que define um modelo de banco de dados objeto-relacional.
Divide-se o padrão SQL-92 em quatro níveis: Entry (básico),
Transational (em evolução),
Intermediate (intermediário) e
Full (completo). A maior parte dos bancos de dados utilizados
atualmente atende ao nível básico. Mesmo existindo uma versão mais nova do padrão, a maior parte
dos bancos de dados ainda utiliza, de forma básica, o padrão anterior. Alguns comandos, contudo,
atingem os níveis intermediário e completo.
O que é SQL?
SQL (structured Query Language) é um conjunto de comandos de manipulação de banco de dados
utilizado para criar e manter a estrutura desse banco de dados, além de incluir, excluir,
modificar e pesquisarinformações nas tabelas dele. A linguagem SQL não é uma linguagem de
programação autônoma; poderia ser chamada de "sublinguagem". Quando se escrevem aplicações para
banco de dados, é necessário utilizar uma linguagem de programação tradicional
(C, Java, Pascal, COBOL, etc...) e embutir comandos SQL para manipular os dados.
Em um modelo relacional, apenas uma tipo de estrutura de dados existe: a tabela. Novas tabelas
são criadas com a junção ou combinação de outras tabelas. Utilizando apenas um comando SQL é
possível pesquisar dados em diversas tabelas ou atualizar e excluir diversas linhas das mesmas.
A linguagem SQL não é procedural, logo é possível especificar
o que deve ser feito, e não como deve ser feito. Dessa forma, um conjunto de linhas (set) será
atingido pelo comando e não cada uma das linhas, como é feito no ambiente procedural.
Portanto, não é necessário entender o funcionamento interno do banco de dados e como e onde
estão armazenados fisicamente os dados.
A linguagem SQL é dividida nos seguintes componentes:
Data Definition Language (DDL):
permite a criação dos componentes do banco de dados, como tabelas,
índices, etc..
Principais comandos DDL:
CREATE TABLE
ALTER TABLE
DROP TABLE
CREATE INDEX
ALTER INDEX
DROP INDEX
Data Manipulation Language (DML):
permite a manipulação dos dados armazenados no banco de dados:
Comandos DML:
INSERT
DELETE
UPDATE
DELETE
Data Query Language (DQL):
permite extrair dados do banco de dados:
Comandos DQL:
SELECT
Data Control Language (DCL):
provê a segurança interna do banco de dados:
Comandos DCL:
CREATE USER
ALTER USER
GRANT
REVOKE
CREATE SCHEMA