Você está na página 1de 21

SQL

Structured Query Language



(continuao)
INSERT INTO um dos comandos do SQL que
permite a introduo de dados nas tabelas.
Sintaxe:
INSERT INTO <nome_tabela> [(atributo1,atributo2,
atributo3,...)]
VALUES (<valores>)
Os parntesis rectos indicam que esses elementos so
opcionais. Os dados de cada atributo (separados por vrgulas)
so introduzidos atravs da palavra VALUES.

Definies usando SQL
Comandos DML
Exemplos:
INSERT INTO Departamento
VALUES (50, 'Manuteno' , 'Lisboa')
ou
INSERT INTO Departamento (Cod_Depart, Nome_pep,
Localizao)
VALUES (50, 'Manuteno' , 'Lisboa')

Definies usando SQL
Comandos DML (cont.)
UPDATE - Alterao de valores em um ou mais
atributos numa tabela e com critrios especficos

Sintaxe:
UPDATE <nome_tabela>
SET <atributo> = <expresso>,
...
[WHERE <condio>]


Definies usando SQL
Comandos DML (cont.)
SET define quais so os atributos que se pretende
actualizar e os novos valores para esse atributo.
WHERE opcional e utilizada quando se pretende
condicionar os tuplos.
Exemplo:
UPDATE Empregado
SET Ordenado = Ordenado + 50.000
WHERE Num_Superior=7589

Definies usando SQL
Comandos DML (cont.)
DELETE - Eliminao de valores em um ou mais
tuplos numa tabela e com critrios especficos.

Sintaxe:
DELETE FROM <nome_tabela>
[WHERE <condio>]
Exemplo:
DELETE FROM Empregado
WHERE Num_Superior=7589

Definies usando SQL
Comandos DML (cont.)
SELECT - selecciona conjunto de atributos de
uma(s) tabela(s) dada(s) pelo comando FROM.
Sintaxe:
SELECT <atributo1, atributo2,...>
FROM <nome_tabela1, nome_tabela2,...>
[WHERE <condio>]
Exemplo:
SELECT Cod_aluno, Nome, Morada
FROM Aluno
Definies usando SQL
Comandos DML (cont.)
O comando SELECT permite incluir expresses
aritmticas e modificar o nome dos atributos. Uma
expresso pode ser uma combinao de valores,
operadores e funes que produzem um valor. Os
operadores aritmticos que podemos incluir so:
Operadores Descrio
+ Soma
- Subtraco
* Multiplicao
/ Diviso

Definies usando SQL
Comandos DML (cont.)
Exemplo:
SELECT Cod_emp, Ordenado*12
FROM Empregado;

O comando ORDER BY utilizado para ordenar
tuplos. Neste exemplo, os tuplos so ordenados por
cdigo de departamento que, por defeito, realizado
de forma ascendente:
SELECT Cod_Depar, Cargo
FROM Empregado
ORDER BY Cod_Depar;


Definies usando SQL
Comandos DML (cont.)
A utilizao da clusula DISTINCT permite eliminar linhas
repetidas
SELECT DISTINCT Cod_Depar, Cargo
FROM Empregado
ORDER BY Cod_Depar;

O comando WHERE corresponde ao operador de seleco da
lgebra relacional. O comando WHERE utilizado a seguir ao
comando FROM e contm uma(s) condio(s) que os tuplos tm
que satisfazer para que sejam visualizados. A palavra WHERE
dever possuir trs elementos:
1.O nome do atributo.
2.O operador de comparao.
3.O nome de um atributo, uma constante ou uma lista de valores.

Definies usando SQL
Comandos DML (cont.)
Os operadores de comparao podem ser divididos
em duas categorias: lgicos e SQL.
Os operadores lgicos testam as seguintes
condies:
Operador Significado
= Igual a
> Maior que
>= Maior ou igual que
< Menor que
<= Menor ou igual que
<> Diferente
Definies usando SQL
Comandos DML (cont.)
Operadores SQL, existem quatro, que operam sobre
todos os tipos de dados:
Operador Significado
BETWEEN ..AND.. Entre dois valores
IN(lista) Corresponde a qualquer valor da
lista
LIKE Cadeia de caracteres que satisfaz
uma condio
IS NULL um valor nulo

Definies usando SQL
Comandos DML (cont.)
Ainda sobre os operadores de comparao utilizados no
comando WHERE, existem as respectivas expresses de
negao:
Operador Significado
NOT BETWEEN ..AND..No entre dois valores
NOT IN(lista) Corresponde a nenhum valor da
lista
NOT LIKE Cadeia de caracteres que no
satisfaz uma condio
IS NOT NULL um valor no nulo
<> Diferente


Definies usando SQL
Comandos DML (cont.)
Exemplos:
SELECT Nome, Cargo, Cod_Depar
FROM Empregado
WHERE Cargo='Secretario';

SELECT Nome, N_Superior
FROM Empregado
WHERE N_Superior IN (7902,7566,7788);

SELECT Nome
FROM Empregado
WHERE Nome LIKE 'S%';

Definies usando SQL
Comandos DML (cont.)
SELECT Nome, N_Superior
FROM Empregado
WHERE N_Superior IS NULL;

SELECT Nome, Ordenado
FROM Empregado
WHERE Ordenado NOT BETWEEN 100000 AND 200000;
Definies usando SQL
Comandos DML (cont.)
SELECT Nome, Ordenado,Cargo
FROM Empregado
WHERE Ordenado BETWEEN 100000 AND 200000
AND Cargo='Secretrio';

SELECT Nome, Ordenado, Cargo
FROM Empregado
WHERE Ordenado BETWEEN 100000 AND 200000
OR Cargo='Secretrio';

Definies usando SQL
Comandos DML (cont.)
Na linguagem SQL possvel obter resultados
baseados em grupos de tuplos ao contrario daquilo
que temos feito at agora.
Assim, existem funes de grupo que operam
sobre conjuntos de tuplos.
O comando GROUP BY utilizado para dividir
os tuplos de uma tabela em grupos mais pequenos.
Algumas das funes de grupo so:

Definies usando SQL
Comandos DML (cont.)
Funo Valor produzido
AVG(n) Valor mdio de n
COUNT(expr) Nmero de vezes que a expr
toma um valor
MAX(expr) Valor mximo de expr
MIN(expr) Valor mnimo de expr
SUM(n) Soma dos valores de n

Definies usando SQL
Comandos DML (cont.)
Expr indica os argumentos que podem ser do
tipo CHAR, Number ou DATE.
Todas as funes de grupo, excepo de
COUNT(*), ignoram os valores nulos.
Torna-se ainda importante destacar que as
funes de grupo por si s tratam todos os
tuplos de uma tabela como um grupo.
Definies usando SQL
Comandos DML (cont.)
SELECT AVG(Ordenado)
FROM Empregado;

SELECT MIN(Ordenado)
FROM Empregado
WHERE Cargo='secretario';

SELECT Cargo, AVG(Ordenado) MdiaDeOrdenado
FROM Empregado
GROUP BY Cargo;

Definies usando SQL
Comandos DML (cont.)
SELECT Cargo, Cod_Depar, AVG(Ordenado)
MdiaDeOrdenado
FROM Empregado
GROUP BY Cod_Depar, Cargo
ORDER BY Cod_Depar;

SELECT Cargo, MAX(Ordenado) MaxDeOrdenado
FROM Empregado
GROUP BY Cargo
HAVING MAX(Ordenado) >= 300000;

Definies usando SQL
Comandos DML (cont.)

Você também pode gostar