Outubro, 2007
Resumo
Este manual constitui uma introdução à linguagem de interrogação SQL (Structured Query Language), que serve para Retirar, Criar e Modificar a informação de uma base de dados relacional. A nomenclatura usada neste guia está baseada no SQL definido para o SGBDR ORACLE. No entanto, os exemplos apresentados poderão ser facilmente utilizáveis noutros gestores de base de dados que possuam a linguagem SQL. As convenções utilizadas neste manual vêm referidas no Apêndice - A.
Os exemplos usados ao longo deste manual, estão baseados nas tabelas referidas no Apêndice - B. A Linguagem Estruturada de Interrogação - SQL é uma ferramenta que permite o acesso a dados guardados em Sistemas de Base de Dados Relacionais (SGBDR). Dado que a denominação desta linguagem pode levar a pensar que ela só suporta pesquisas/perguntas a bases de dados, convém salientar que, além dessa função usual, e mais frequentemente solicitada, pode ainda criar e deitar fora tabelas, dar ou retirar o acesso a essas tabelas e, fazer ainda outro grande número de operações.
Apesar de ser uma linguagem poderosa e versátil, a sua aprendizagem é, frequentemente, complexa e difícil. O SQL é uma ferramenta de utilização interactiva, i.e., os comandos são digitados directamente em terminal/écran e, os resultados são apresentados no écran. Esta resposta "em tempo real" torna esta linguagem muito efectiva na resposta a questões particulares. O SQL tornou-se um standard em termos de linguagem de Definição, Administração e Pesquisa em Sistemas de Gestão de Base de Dados Relacionais (SGBDR). Nos últimos anos, esta linguagem passou a estar integrada na maior parte dos SGBD.
Por outro lado, o SQL também pode ser embebido em algumas linguagens de programação, onde passa a fazer parte de "acessos programáticos" à informação armazenada em sistemas relacionais. Ao contrário das linguagens clássicas de programação (PASCAL, FORTRAN, C, e outras) o SQL é uma linguagem não procedimental, i.e, tem um carácter declarativo, e funciona com base nestes dois aspectos principais:
Na utilização do SQL não se especifica o método de acesso aos dados. A única coisa que se exprime/declara nos comandos é o resultado que se pretende alcançar.
Table of Contents
List of Figures
List of Tables
List of Examples
Table of Contents
Os comandos de SQL podem ser divididos em quatro categorias, que dependem do tipo de "acção" que pretendemos desencadear. Estas funções são comuns a todos os sistemas que estejam baseados no SQL: criação e alteração da estrutura de dados; inserção e alteração dos dados das tabelas; pesquisas sobre os dados; e administração da base de dados.
Na digitação de um comando de SQL, podemos usar TAB, RETURN, ou ESPAÇO, sempre que na definição do comando apareça a notação espaço. A utilização de letras maiúsculas ou minúsculas não tem significado, esta diferença só é fundamental quando estamos a trabalhar com cadeias de carácteres, como é o caso dos campos do tipo CHAR ou VARCHAR.
Assim, as duas declarações seguintes são processadas da mesma forma:
SELECT [Nome do Aluno] FROM aluno
A cláusula SELECT é o comando de SQL que serve para pesquisar e retirar informação de uma base de dados. É o comando mais usado, o que tem contribuído para baptizar o SQL como uma "linguagem de interrogação de dados".
Exemplo:
SELECT [Nome do Aluno], [Data de Nascimento] FROM aluno ;
Destes primeiros exemplos podemos concluir que TODOS os comandos em SQL devem obrigatoriamente terminar com: ' ; '.
Os comandos INSERT, UPDATE e DELETE pertencem a este segundo grupo, que em inglês é designado como "Data Manipulation Language (DML)". São eles que permitem, respectivamente, a inserção, alteração e remoção de dados de uma tabela.
INSERT | Para inserir novas linhas em tabelas da base de dados. |
UPDATE | Para alterar valores já registados na base de dados. |
DELETE | Para eliminar linhas de tabelas da base de dados. |
Exemplo:
DELETE FROM aluno WHERE [Número de Aluno] = '999999' ;
Este sub-conjunto ("Data Definition Language - DDL") tem CREATE e DROP como comandos.
Exemplo:
DROP TABLE disciplina ;
Para definição de todas as autorizações necessárias para manuseio dos dados temos à nossa disposição o comando GRANT. Esta tarefa é, normalmente, desempenhada pelo Administrador da Base de Dados.
Using a hammer to put together your computer is bad.
Exemplo:
GRANT SELECT, UPDATE ON [Inscrição na Disciplina] TO gestão ;
Isto é some really important text.
Look both ways before crossing the street!
Liberal use of
new
in loops can cause performance issues!
Table of Contents
Os operadores e as funções desempenham papeis semelhantes. Ambos aceitam zero ou mais argumentos e, ambos, devolvem um ou mais valores. Os operadores diferem das funções pelo facto de serem representados por caracteres especiais, enquanto que as funções têm o formato seguinte:
nome_função(argumento1, argumento2, ...).
Estes operadores permitem-nos adicionar, subtrair, multiplicar e dividir campos com valores numéricos. Alguns destes operadores podem também ser usados, por exemplo, sobre valores registados em campos de tipo DATE.
Adição | + |
Subtração | - |
Multiplicação | * |
Divisão | / |
Precedência dos Operadores | ( ) |
São usados em expressões para manipulação de cadeias de caracteres. Actualmente existe um só operador: a concatenação , representada pelo caracter especial: ||. O resultado da concatenação é um conjunto de caracteres até um máximo de 255.
Exemplo:
SELECT 'A denominação completa da disciplina é: '|| ⌈ ⌉designação FROM disciplina ;
Estes operadores são usados em condições que comparam duas expressões. Tal como todas as condições o resultado da comparação só pode ser verdadeiro ou falso. A tabela seguinte apresenta estes operadores de SQL.
Operador | Símbolo |
---|---|
Altera as regras de precedência | ( ) |
Igual | = |
Maior que | > |
Menor que | < |
Maior ou igual a | >= |
Menor ou igual a | <= |
Diferente | != |
Membro de uma lista | in |
Intervalo de valores (entre) | between |
Paredido a (semelhante) | like |
Negação | not |
Operador especial para testar a não existência de valor | is [not] null |
Os operadores lógicos usam-se para actuarem sobre o resultado de múltiplas condições. O operador AND obriga a que o registo satisfaça as duas condições. Ao operador OR chega a satisfação de uma das condições.
A tabela seguinte identifica os operadores lógicos, apresentando-os em ordem de precedência, de cima para baixo.
NOT | Inverte o sentido da expressão lógica | ...where NOT ([Número de Aluno]=99999) |
AND | A expressão é verdadeira se e só se ambas as expressões o forem | ...WHERE nome = 'João' AND apelido = 'Ratão' |
OR | A expressão é verdadeira se uma das expressões o for | ...WHERE nome = 'João' OR apelido = 'Ratão' |
( ) | Altera a precedência natural das operações | ...WHERE x=y AND (a = b OR w = f) |