(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
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;