Apostila - SQL
Structured Query Language
Usando HSQLSB
Ìndice Analítico
Ìndice Analítico... 2
INTRODUÇÃO ... 3
Histórico da Linguagem SQL ... 4
Notação Básica Utilizada... 5
Sistema de Banco de Dados Utilizado... 6
Visão geral da Linguagem SQL... 7
CONCEITOS BÁSICOS ... 7
CHAVES PRIMÁRIAS E ESTRANGEIRAS ... 8
HSQLDB ... 9
Baixando e instalando o HSQLDB... 10
CRIAÇÃO DE BANCO DE DADOS ... 11
Tabelas ... 12
Inserção de Registros ... 16
Listagem de Registros... 17
Alteração de Registros ... 21
Remoção de Registros ... 24
Modificação da Estrutura de uma Tabela ... 26
Alterando um nome de coluna ... 27
Alterando um tipo de coluna... 27
Renomeando uma tabela... 27
Adicionando Colunas... 28
Atualizando a Tabela ... 29
Arquivo Morto ... 32
Operadores e Funções... 36
Operadores Aritméticos ... 36
Operadores Relacionais ... 37
Operadores Lógicos ... 38
Operadores Auxiliares ... 40
Definição de Intervalos ... 40
Verificação de Existência ... 41
Verificação de Caracteres ... 42
Se Vazio... 43
Funções Agregadas ... 44
Relacionamentos ... 48
Múltiplas Tabelas... 48
Relacionamento de Tabelas ... 54
Informações Agrupadas ... 57
Definição de Apelidos ... 58
INTRODUÇÃO
A evolução do processamento de dados automático tem como ponto de partida o século XIX. Neste período ocorreram diversas tentativas de construção de aparelhos mecânicos capazes de efetuar operações matemáticas.
Atualmente, esses aparelhos não são mais mecânicos e sim eletrônicos. Os computadores ganharam um grande espaço de utilização, os quais não são mais usados apenas para efetuar operações matemáticas.
É grande o número de pessoas interessadas em aprender a utilizar os recursos do computador não só como usuários, mas também como profissionais da área de Tecnologia da Informação, que desenvolvem e buscam soluções para problemas específicos de cada área profissional existente.
Histórico da Linguagem SQL
A linguagem que vamos estudar não é uma linguagem de programação e sim uma linguagem de consulta, utilizada por bancos de dados de todos os tamanhos e velocidades.
SQL (Structured Query Language - Linguagem Estruturada de Consulta).
Através dessa linguagem podemos ter facilidade no acesso a informações, podemos consultar, atualizar e manipular dados que estão em um banco de dados relacional
A linguagem de consulta estruturada SQL foi desenvolvida primeiramente pela IBM (Internacional Business Machine), apresentando sua primeira versão no ano de 1974, com nome Structured English Query Language (SEQUEL), desenvolvida por Donald Chamberlin e outros profissionais da IBM.
Primeiramente foi disponibilizada para um protótipo de banco de dados relacional da IBM, denominado SEQUEL-XRM (1974-1975). Logo depois, entre 1976 e 1977, a IBM apresenta uma revisão da linguagem SEQUEL denominada SEQUEL/2, que posteriormente passou a se chamar SQL.
Notação Básica Utilizada
Esta apostila respeita a padronização de comandos SQL estabelecidos pela norma ANSE (ANSI/SQL).
Todos os elementos apresentados entre colchetes “[“ e “]” serão considerados opcionais ao código da linguagem.
Todos os elementos entre os sinais de “<” e “>” serão considerados obrigatórios e deverão ser fornecidos para que ocorra o devido funcionamento do comando em teste.
Sistema de Banco de Dados Utilizado
Para efetuar o estudo, deve ser utilizado um programa de gerenciamento de bancos de dados relacional que possua suporte à linguagem de consulta estruturada SQL.
Os exemplos apresentados foram testados no seguinte sistema de gerenciamento de banco de dados.
HSQLDB 1.8.0.7
Portanto, devem também rodar adequadamente em outros sistemas de gerenciamento de bancos de dados, que possuam suporte à linguagem de consulta estruturada SQL.
Para se ter uma idéia da utilização da linguagem de consulta estruturada SQL, ela é encontrada em diversos gerenciadores de banco de dados relacionais. Entre os muitos existentes, podem-se destacar: Paradox, dBase IV, Access, StarBase, InterBase, SQL Server, Informix, Oracle, Sybase, PostgreSQL, Ingres, Progress, R:Base, SQLBase, WATCON SQL, XDB, FrontBase, My SQL entre outros.
Visão geral da Linguagem SQL
A linguagem de consulta estruturada SQL é composta por dois grupos de instruções utilizadas no processo de administração e controle de bancos de dados, sendo: DDL (Data Definition Language – Linguagem de Definição de Dados) e DML (Data Manipulation Language – Linguagem de Manipulação de Dados), descritos em seguida:
- As instruções do tipo DDL permitem efetuar a criação das estruturas de tabelas, índices e bancos de dados como um todo. Permitem também efetuar alterações nas estruturas criadas, bem como remover estruturas existentes. Neste grupo estão as instruções: CREATE TABLE, DROP TABLE, ALTER TABLE, CREATE INDEX E DROP INDEX.
- As instruções do tipo DML permitem efetuar a manipulação dos dados que estejam armazenados nas tabelas de um determinado banco de dados.
Desta forma é possível cadastrar, alterar e excluir registros existentes. Neste grupo encontram-se as instruções: INSERT, SELECT, UPDATE e DELETE.
De todos os comandos existentes, o comando SELECT é o mais importante e utilizado, pois é com ele que se obtém a extração de listas de informação.
Os comandos de tipo DML possuem uma grande variedade de aplicação. Para que isto ocorra, eles operam com um grande conjunto de cláusulas (FROM, WHERE, GROUP BY, HAVING e ORDER BY) predefinidas que permitem efetuar a aplicação de condições que alteram a forma de funcionamento.
SQL é uma linguagem de quarta geração muito poderosa, porque com poucas instruções é possível fazer acessos à informação de bancos de dados.
CONCEITOS BÁSICOS
CAMPO – está relacionado à menor unidade de informação a ser armazenado em uma tabela(ou arquivo). Um campo pode apenas armazenar um só tipo de informação que esteja baseado em um único tipo de dado. Cada campo possui um nome identificação, a especificação de um tipo de dado, o tamanho de armazenamento, entre outras informações que sejam necessárias.
REGISTRO – está associado ao fato de ser um conjunto de campos existentes em uma tabela, que representa uma entidade do mundo real, como, por exemplo, a ficha cadastral de uma pessoa.
O conceito TABELA está relacionado ao conjunto de registros.
BANCO DE DADOS – está associado ao conjunto de tabelas.
BASE DE DADOS – muitas vezes se confunde com banco de dados. Base de dados é o cojunto de banco de dados relacionados entre si.
SGBD – está relacionado ao software (ferramenta) que possibilita a facilidade de gerenciar as funções de edição, consulta, controle e remoção de registros ou tabelas de um banco de dados.
CHAVES PRIMÁRIAS E ESTRANGEIRAS
CHAVE PRIMÁRIA – está associado ao campo ou conjunto de campos de uma tabela que possuirá um único valor, que não será repetido para nenhum registro.
CHAVE ESTRANGEIRA – caracteriza-se por ser uma chave de uma tabela que possui associação com a chave primária de uma outra tabela. É a chave que representa a tabela.
Podem ocorrer três situações de utilização de chave estrangeira.
- Relacionamento um para um - Relacionamento um para muitos - Relacionamento muitos para muitos
INTEGRIDADE REFERENCIAL – é um mecanisco utlizado que evita a quebra de ligação entre os relacionamentos estabelecidos entre tabelas.
HSQLDB
O HSQLDB é o sucessor do Hypersonic SQL, projeto de sofware livre liderado por Thomas Mueller. Quando o autor decidiu que a versão 1.4.3 seria a última em que trabalharia, a comunidade de usuários criou um novo projeto no SourceForge para dar prosseguimento ao desenvolvimento do banco, que hoje está na versão 1.8.0.7.
MODOS DE OPERAÇÃO
O HSQLDB pode trabalhar em quatro modos de operação distintos: Server, Standalone, Web Server e Servelet. Três desses modos (Server, Web Server e Servelet) permitem o uso de conexões seguras no padrão SSL/TLS, utilizando o JCE (Java Cryptography Extensions).
Standalone
Roda na mesma JVM que a aplicação. Pode haver várias conexões simultâneas, desde que todas partam de outros threads na mesma JVM.
Server
Preferencial para o desenvolvimento, ou quando se usa o HSQLDB como servidor de banco de dados departamental. Nesse modo são aceitas conexões em uma porta TCP, utilizando um protocolo de aplicação próprio do HSQLDB.
Web Server
Situações que se deseja fornecer acesso remoto ao banco de dados, mas há um firewall no meio do caminho, existe o modo de operação Web Server.
Servelet
Atende a usuários de serviços de hospedagem compartilhada em sites web.
Baixando e instalando o HSQLDB
Para obter o HSQLDB, visite o site do projeto em hsqldb.org e siga o link “download”, que irá redirecionar para a página de arquivos do HSQLDB no portal Sourceforge.
Escolha então o arquivo hsqldb_1_8_0_7.zip (ou uma versão estável mais recente) e faça o download.
Descompacte o arquivo em uma pasta qualquer, criando a estrutura de diretórios apresentada na figura 1.
figura 1. Estrutura de diretórios da instalação do HSQLDB.
O pacote de download inclui os fontes (pasta src), documentação (doc) e aplicações de exemplo (demo). Na pasta lib tempos o pacote hsqldb.jar. Este jar, de cerca de 630 kb, contém o servidor do HSQLDB, aplicações gráficas e de linha de comando para administração, e um driver JDBC para acesso por clientes remotos.
Para uso devemos configurar o Classpath do sistema operacional com o comando a seguir, supondo que o HSQLDB foi descompactado para a pasta /java/hsqldb.
set CLASSPATH = %CLASSPATH%;C:\java\hsqldb\lib\hsqldb.jar no caso do windows.
e
export CLASSPATH=$CLASSPATH:/java/hsqldb/lib/hsqldb.jar no caso do linux.