Professional Documents
Culture Documents
Mdulo 14
Linguagem de Manipulao de Dados
Jorge Pina
Componentes
A linguagem SQL (Structured Query
Language) composta por comandos,
clusulas, operadores e funes de
agregao. Estes elementos combinam-se
nas instrues para criar, actualizar e
manipular as bases de dados.
Jorge Pina
Comandos
Existem quatro tipos de comandos SQL:
Jorge Pina
Comandos DML
Comando
Descrio
SELECT
INSERT
UPDATE
DELETE
Jorge Pina
Comandos DDL
Comando
Descrio
CREATE
DROP
ALTER
Jorge Pina
Comandos TCL
Comando
COMMIT
Descrio
Permite efectivar transaces
Jorge Pina
Comandos DCL
Comando
Descrio
GRANT
REVOKE
Jorge Pina
Clusulas
Clusula
Descrio
FROM
WHERE
ORDER BY
GROUP BY
HAVING
Jorge Pina
Operadores lgicos
Operador
Uso
AND
OR
NOT
Jorge Pina
Operadores de comparao
Operador
Uso
<
Menor que
>
Maior que
<>
Diferente de
<=
Menor ou Igual a
>=
Maior ou Igual a
Igual a
BETWEEN
LIKE
IN
10
Jorge Pina
Funes de agregao
Utilizam-se dentro da clusula Select
Funo
Descrio
AVG
COUNT
SUM
MAX
MIN
Jorge Pina
Jorge Pina
nome
apelido
morada
data_nasc
cod_curso
Joo
Silva
Av. EUA
01-01-1951
Jos
Silva
Av. Roma
01-01-1952
Joana
Gomes
Av. Brasil
01-01-1953
Joaquim
Gomes
Av. Berlim
01-01-1954
Joo
Gomes
Av. Berlim
01-01-1955
Joo
Costa
01-01-1956
Jlia
Nunes
Av. Brasil
01-01-1957
2
13
Jorge Pina
Jorge Pina
Jorge Pina
Jorge Pina
disciplina
nota
Portugus
12
Portugus
15
Portugus
11
Ingls
Ingls
17
AI
16
AI
12
17
Jorge Pina
Devolve o nmero e a respectiva mdia das notas dos alunos com mdia
igual ou superior a 15
Jorge Pina
Jorge Pina
Operador Like
Utiliza-se para comparar uma expresso de cadeia com um
modelo numa expresso SQL. A sua sintaxe :
expresso LIKE modelo
Pode-se utilizar o operador LIKE para encontrar valores nos
campos que coincidam com o modelo especificado. Por modelo
pode-se especificar um valor completo (ex. Andreia), ou podemse utilizar caracteres especiais como os reconhecidos pelo
sistema operativo para encontrar um conjunto de valores (ex.
LIKE An*, LIKE *ia, LIKE *dre*)
SELECT empregados WHERE nome LIKE An*
SELECT empregados WHERE nome LIKE *ia
SELECT empregados WHERE nome LIKE *dre*
20
10
Jorge Pina
Operador Like
O exemplo seguinte devolve os dados que comeam
com a letra P seguidos de qualquer letra entre A e F e
de trs dgitos:
LIKE 'P[A-F]###'
Este exemplo devolve os campos cujo contedo
comece com uma letra de A a D seguidas de qualquer
cadeia.
LIKE '[A-D]*'
21
Jorge Pina
Operador IN
Este operador devolve os registos cujo campo
indicado coincide com algum dos existentes
numa lista. A sua sintaxe :
expresso [NOT] IN (valor1, valor2, . . .)
Exemplo:
SELECT * FROM Pedidos WHERE Cidade IN
(Lisboa', Paris, Londres);
22
11
Jorge Pina
Descrio
ALL
TOP
DISTINCT
DISTINCTROW
Jorge Pina
All
Se no se inclui nenhum dos predicados assume-se ALL. O motor
de base de dados selecciona todos os registos que cumprem as
condies da instruo SQL. No conveniente abusar deste
predicado j que obrigamos o motor da base de dados a analisar a
estrutura da tabela para averiguar os campos que contm, muito
mais rpido indicar a lista de campos desejados.
SELECT ALL FROM Empregados
SELECT * FROM Empregados
24
12
Jorge Pina
Top
Devolve um certo nmero de registos que entram entre o
princpio ou o fim de um campo especificado por uma clusula
ORDER BY. Suponha-se que queremos recuperar os Nomes dos
25 primeiros estudantes:
Jorge Pina
Distinct
Omite os registos que contm dados duplicados nos campos
seleccionados. Para que os valores de cada campo listado na
instruo SELECT se incluam na consulta devem ser nicos.
Por exemplo, vrios Empregados listados na tabela Empregados
podem ter o mesmo apelido. Se dois registos contm Lopes no
campo Apelido, a seguinte instruo SQL devolve um nico
registo:
26
13
Jorge Pina
Distinctrow
Devolve os registos diferentes de uma tabela; a diferena do
predicado anterior que s se fixava no contedo dos campos
selecionados, este f-lo no contedo do registo completo
independentemente dos campos indicados a clusula SELECT.
27
14