SQL - Structured Query Language
Introdução
Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua
manipulação.
SQL - Linguagem Estruturada de Consulta, foi desenvolvida nos laboratórios do departamento de pesquisas da IBM, que desenvolveu a SQL como forma de interface para o sistema de banco de dados relacional denominado SYSTEM R, no início da década de 70, e atualmente é o padrão adotado em banco de dados mundialmente.
Em 1986 o American National Standard Institute (ANSI), publicou um padrão SQL. O SQL estabeleceu-se como linguagem padrão de Banco de Dados Relacional.
O SQL se diferencia das outras linguagens utilizadas para bancos de dados por especificar a forma do resultado e não o “caminho” para se chegar a ele é uma linguagem declarativa em oposição a outras linguagens procedurais.
Os recursos disponibilizados pelo SQL são agrupados em cinco funcionalidades:
DDL (Data Definition Language) = Linguagem de Definição de Dados, por meio dela podemos definir estruturas do banco tais como: tabelas, visões, sequenciais e outras estruturas.
Comandos da DDL: CREATE (criação de estrutura), ALTER (alterar estrutura) e DROP (permite remover ou excluir uma estrutura).
O DDL (Data Definition Language) do SQL apresenta uma série de comandos que permitem a definição dos dados, composta pelos comandos. Como exemplo de comandos da classe DDL temos os comandos Create, Alter e Drop.
O Comando Create, é destinado a criação do Banco de Dados, a criação das Tabelas que o compõe, além da criação das relações existentes entre as tabelas.
O Comando Create, é destinado a criação do Banco de Dados, a criação das Tabelas que o compõe, além da criação das relações existentes entre as tabelas.
DML (Data Manipulation Language) = Linguagem de Manipulação de Dados, permite inserir, alterar e excluir informações nos objetos construídos pela DDL.
A DML possui três comandos: INSERT (inserir dados), UPDATE (alterar informações) e DELETE (excluir dados).
Os comandos da série DML (Data Manipulation Language), são destinados a consultas, inserções, exclusões e alterações em um ou mais registros de uma ou mais tabelas de maneira simultânea.
Como exemplo de comandos da classe DML temos os comandos Select, Insert, Update e Delete.
DQL (Data Query Language) = Linguagem de Consulta de Dados, complementa e permite recuperar e ler dados na estrutura do banco de dados, comando utilizado: SELECT possibilita a ordenação e agrupamento dos dados, cálculos (funções aritméticas) e filtros de seleção.
DCL (Data Control Language) = Linguagem de Controle de Dados, gerencia as permissões de quem pode acessar o banco de dados, o que cada usuário tem acesso, quem pode ou não alterar e remover dados, dentre outras operações, e dispõe de comandos de controle como Grant e Revoke.
Comandos da DCL: GRANT (habilita acesso a dados e operações) e REVOKE (revoga o acesso a dados e operações).
DTL (Data Transaction Language) = Linguagem de Transação de Dados, permite operações conjuntas sendo estas iniciadas pela START TRANSATION, seguidas pela COMMIT (concretiza a transação) que informa ao servidor que a transação foi concluída com sucesso ou ROLLBACK que anula a transação.
START TRANSACTION* COMMIT ROLLBACK *
No SQL Server o comando START deve ser substituído por BEGIN
Outra característica muito importante disponível em SQL é sua capacidade de construção de visões, que são formas de visualizarmos os dados na forma de listagens independente das tabelas e organização lógica dos dados.
Outra característica interessante na linguagem SQL é a capacidade que dispomos de cancelar uma série de atualizações
ou de as gravarmos, depois de iniciarmos uma seqüência de atualizações.
Os comandos Commit e Rollback são
responsáveis por estas facilidades. Devemos notar que a linguagem SQL consegue implementar estas soluções, somente pelo fato de estar baseada em
Banco de Dados, que garantem por si mesmo a integridade das relações existentes entre as tabelas e seus índices.
O Ambiente SQL
Dispomos na Ibero de dois softwares destinados a linguagem SQL o ISQL e o WinSQL.
O ISQL faz parte do pacote Ideo e permite construirmos Banco de Dados e tabelas diretamente pelo interpretador SQL, bem como acessarmos as Bases de Dados construídas no Ideo.
O ISQL pode gerar Banco de Dados em seu ambiente
proprietário (Watcom, hoje pertencente a Symantech) ou ainda nos consagrados Banco de Dados Oracle, SyBase, Ingres
(Computer Associates), DB/2 (IBM) e Informix.
Devido as origens do Ideo, o Banco de Dados SQL Server da Microsoft
não é suportado, pois este Banco de Dados originou-se na microinformática e somente recentemente a Sapiens migrou
seu software dos Ambientes Mainframe e Unix.
Já o WinSQL é um ambiente inteiramente gráfico (ao contrário do ISQL que guarda fortes características do ambiente em Mainframe onde se originou), destinado ao aprendizado, portanto somente pode criar Banco de Dados em seu formato proprietário.
Os comandos do WinSQL por serem visuais, não necessitam de maior esclarecimento além daqueles já contidos no Help.
Já o ISQL apesar de possuir um Help bastante completo necessita, em nosso entender, de alguns esclarecimentos iniciais. Uma série de comandos do interpretador, que funciona de forma análoga àquela existente no dBase modo interativo, podem ser utilizados pelo usuário.
Não obstante alguns comandos tenham nome idêntico a alguns comandos do DOS, devemos notar que muitas vezes sua sintaxe é bastante diversa daquele sistema operacional.
Vamos destacar os seguintes comandos:
\EDIT
- Carrega o editor de bloco de notas do windows, o qual serve para a criação de arquivos para serem executados no Ideo.
Exemplo: \edit teste.sql
\CD
- Mostra o diretório onde serão gravados os arquivos *.sql, *.dic *.dat. Permite alterar para determinado diretório (\CD DADO, fará com que o diretório corrente passe a ser C:\DADO, caso o diretório corrente fosse a raiz.
Permite retornar ao diretório de nível inferior (\CD ..).
Atenção este comando não é análogo ao Change Dir do DOS, na medida em que não permite a mudança direta de um subnível do diretório X para um diretório Y por exemplo.
\DEFAULT
- permite alterarmos o drive corrente.
Exemplo: \DEFAULT F:
\INCLUDE
- Executa arquivos *.sql.
O arquivo .sql deverá conter uma série de instruções SQL.
Exemplo: \include teste.sql
@< file > ;
- Também executa arquivos *.sql.
Exemplo: @teste.sql;
EXIT;
- Finaliza a sessão do ISQL. ou ( \QUIT )
COMMIT;
- Confirma a transação.
ROLLBACK;
- Desfaz a transação.
SHOW ; - Mostra os nomes das tabelas existentes em determinado banco de dados. Exemplo: SHOW tables;
SHOW FIELDS FOR ;
- Mostra os campos de determinada tabela.
Exemplo: SHOW FIELDS FOR ATOR;
SHOW INDEXES FOR ;
- Lista de indices da tabela.
SHOW RELATIONSHIPS FOR ;
- Lista de relacionamentos da tabela.
LIST ;
- Lista conteúdo da tabela.
Já o WinSQL é um ambiente inteiramente gráfico (ao contrário do ISQL que guarda fortes características do ambiente em Mainframe onde se originou), destinado ao aprendizado, portanto somente pode criar Banco de Dados em seu formato proprietário.
Os comandos do WinSQL por serem visuais, não necessitam de maior esclarecimento além daqueles já contidos no Help.
Já o ISQL apesar de possuir um Help bastante completo necessita, em nosso entender, de alguns esclarecimentos iniciais. Uma série de comandos do interpretador, que funciona de forma análoga àquela existente no dBase modo interativo, podem ser utilizados pelo usuário.
Não obstante alguns comandos tenham nome idêntico a alguns comandos do DOS, devemos notar que muitas vezes sua sintaxe é bastante diversa daquele sistema operacional.
Vamos destacar os seguintes comandos:
\EDIT
- Carrega o editor de bloco de notas do windows, o qual serve para a criação de arquivos para serem executados no Ideo.
Exemplo: \edit teste.sql
\CD
- Mostra o diretório onde serão gravados os arquivos *.sql, *.dic *.dat. Permite alterar para determinado diretório (\CD DADO, fará com que o diretório corrente passe a ser C:\DADO, caso o diretório corrente fosse a raiz.
Permite retornar ao diretório de nível inferior (\CD ..).
Atenção este comando não é análogo ao Change Dir do DOS, na medida em que não permite a mudança direta de um subnível do diretório X para um diretório Y por exemplo.
\DEFAULT
- Finaliza a sessão do ISQL. ou ( \QUIT )
- Confirma a transação.