DML



SELECT cidade, temp_min, temp_max, prcp, data, localizacao
FROM clima, cidades
WHERE cidade = nome;


UPDATE


As linhas existentes podem ser atualizadas utilizando o comando UPDATE. Suponha ter sido descoberto que as leituras de temperatura realizadas após 28 de novembro de 1994 estão todas 2 graus mais altas. Os dados podem ser atualizados da seguinte maneira:

UPDATE clima
SET temp_max = temp_max - 2,  temp_min = temp_min - 2
WHERE data > '1994-11-28';

Agora vejamos o novo estado dos dados:

SELECT * FROM clima;
    cidade      | temp_min | temp_max | prcp |    data
----------------+----------+----------+------+------------
São Francisco   |       46 |       50 | 0.25 | 1994-11-27
São Francisco   |       41 |       55 |    0 | 1994-11-29
Hayward         |       35 |       52 |      | 1994-11-29
(3 linhas)


DELETE


As linhas podem ser excluídas da tabela através do comando DELETE. Suponha que não estamos mais interessados no clima de Hayward. Então podemos executar comando a seguir para excluir estas linhas da tabela

DELETE FROM clima WHERE cidade = 'Hayward';

e todos os registros de clima pertencentes a Hayward serão removidos. Agora vejamos o novo estado dos dados:

SELECT * FROM clima;
   cidade     | temp_min | temp_max | prcp |    data
--------------+----------+----------+------+------------
São Francisco |       46 |       50 | 0.25 | 1994-11-27
São Francisco |       41 |       55 |    0 | 1994-11-29
(2 linhas)

Deve-se tomar cuidado com comandos na forma

DELETE FROM nome_da_tabela;

porque, sem uma qualificação, o comando DELETE remove todas as linhas da tabela, deixando-a vazia. O sistema não solicita confirmação antes de realizar esta operação.




INNER JOIN

Para se mostrar dados de mais de uma tabela, é necessário usar a instrução INNER JOIN, que adiciona tabelas para visualização utilizando a chave estrangeira.

SELECT nometab1, nometab2 FROM tab2 INNER JOIN tab1 ON (tab2.idtab = tab1.idtab);


Operadores


  • Existem 4 operadores SQL 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 condição
IS NULL : É um valor nulo


  • 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%';


SELECT Nome, N_Superior
FROM Empregado
WHERE N_Superior IS NULL;


SELECT Nome, Ordenado
FROM Empregado
WHERE Ordenado NOT BETWEEN 100000 AND 200000;