Manual de SQL

Breves Notas sobre a Linguagem SQL

Structured Query Language

Versão 0.6 Alpha

Carlos Pampulim Caldeira

Universidade de Évora

Departamento de Informática Rua Romão Ramalho, 59 7000-671 Évora Portugal Web: www.di.uevora.pt/~ccaldeira Email:

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:

  • processa preferencialmente conjuntos de registos, em vez de registos isolados;
  • permite um acesso automático e transparente aos dados.

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.



List of Examples

1.1. Example 1

Chapter 1. Grandes Tipos de Acções em SQL

Introdução

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
  • SELECT [Nome do Aluno] FROM aluno

As pesquisas

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: ' ; '.

A manipulação dos dados – Data Manipulation Language (DML)

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.

Table 1.1. Data Manipulation Language
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' ;

Definição da estrutura – Data Definition Language

Este sub-conjunto ("Data Definition Language – DDL") tem CREATE e DROP como comandos.

Exemplo:

DROP TABLE disciplina ;

Administração da Base de Dados

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.

Please Note:

Using a hammer to put together your computer is bad.

Exemplo:

GRANT SELECT, UPDATE ON [Inscrição na Disciplina] TO gestão ;

Chapter 2. Operadores e Funções

Operadores

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, ...).

A maior parte dos operadores aceitam no máximo dois argumentos; a estrutura das funções pode admitir três ou mais argumentos.

Operadores Aritméticos

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.

Table 2.1. Operadores Aritméticos
Adição +
Subtração
Multiplicação *
Divisão /
Precedência dos Operadores ( )

Operadores sobre strings

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 ;

Condições (Operadores)

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.

Table 2.2. Condição Símbolo
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

Operadores Lógicos

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.

Table 2.3. Operadores Lógicos
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)

Operações sobre Conjuntos

Estes operadores combinam os resultados de múltiplas pesquisas (queries) num só valor.

A tabela seguinte identifica os operadores lógicos, apresentando-os em ordem de precedência, de cima para baixo.

 
The following two tabs change content below.

Carlos Pampulim Caldeira

Professor Auxiliar | Assistant Professor at Universidade de Évora

Latest posts by Carlos Pampulim Caldeira (see all)