Escolar Documentos
Profissional Documentos
Cultura Documentos
o
o
o
ATUALIZANDO DADOS
O comando para atualizar registros UPDATE, que tem a seguinte sintaxe:
Listagem 4: Sintaxe do comando update
1UPDATE nome_tabela
2SET CAMPO = "novo_valor"
3WHERE CONDIO
Onde:
Nome_tabela: nome da tabela que ser modificada
Campo: campo que ter seu valor alterado
Novo_valor: valor que substituir o antigo dado cadastrado em campo
Where: Se no for informado, a tabela intera ser atualizada
Condio: regra que impe condio para execuo do comando
Exemplos:
Listagem 5: Exemplos de uso do comando update
o
o
o
o
o
1UPDATE DEPARTAMENTO
2SET SALARIO = 1000
3WHERE CODIGODEP = 1
No trecho acima, todos os colaboradores que fazem parte do departamento 1 ter o salrio alterado
para 1000.
Listagem 6: Update em mais de um campo
1UPDATE DEPARTAMENTO
2SET NOME = "HELBERT CARVALHO",SALARIO = 1000
3WHERE CODIGO = 1
Neste exemplo alteramos mais de um campo de uma vez.
Podemos combinar o comando SELECT com UPDATE. No exemplo a seguir, os funcionrios de
menor salrio recebero aumento de 10%.
Listagem 7: Outro exemplo de uso do comando update
1UPDATE EMPREGADOS
2SET SALARIO = salario * 1.1
3WHERE SALARIO = (SELECT MIN(salario) FROM EMPREGADOS)
O comando SELECT tambm pode ser utilizado na atribuio de valor ao campo:
Listagem 8: Update passando select como valor
1UPDATE EMPREGADOS
2SET SALARIO = (SELECT MAX(salario) FROM EMPREGADOS)
3WHERE DEPARTAMENTO = 5
REMOVENDO DADOS
O comando utilizado para apagar dados o DELETE.
Listagem 9: Sintaxe do comando delete
o
o
Sub-consultas SQL
Uma sub-consulta uma instruo SELECT aninhada dentro de outra instruo SELECT, INSERT,
DELETE ou UPDATE. Veja abaixo alguns exemplos de sintaxe:
o Comparao [ANY|SOME|ALL] (instruo sql)
o Expresso [NOT] IN (instruo sql)
o Expresso [NOT] EXISTS (instruo sql)
Os predicados ANY e SOME, sinnimos, so utilizados para recuperar registro na consulta principal
que satisfaam a comparao com qualquer registro da sub-consulta.
Tabela A
XY
1 5
2 9
3 10
4 6
Tabela B
X Y 10 4 20 3 30 11 40 9
Exemplo:
Listagem 11: Exemplo de subconsulta
1SELECT * FROM A
2WHERE Y > ANY (SELECT Y FROM B WHERE X>20)
Resultado:
XY
3 10
Os registros da tabela A que forem maior do que qualquer registro do resultado da sub-consulta
sero selecionados. Repare que nenhum registro da tabela A maior do que 11, no entanto, o
terceiro registro maior do que 9.
Vamos a outro exemplo:
Listagem 12: Exemplo de subconsulta com o operador ANY
1SELECT * FROM A WHERE Y > ANY (SELECT Y FROM B WHERE X < 40)
Resultado:
XY
1 5
2 9
3 10
4 6
Todos os registros foram selecionados porque o valor de y no resultado da sub-consulta assume 3,
que menor do que todos os valores de y da tabela A. Se utilizarmos o ANY com sinal de igualdade
teremos o mesmo resultado da clusula IN. Exemplo:
Listagem 13: Exemplo com o operador ANY e sinal de igualdade
1UPDATE A
2SET X = X * 10
3WHERE Y > ANY (SELECT Y FROM B WHERE X < 40)
Listagem 15: Delete usando o operador ANY
1DELETE FROM A
2WHERE Y > ANY (SELECT Y FROM B WHERE X < 40)
O predicado ALL utilizado para recuperar os registros da consulta principal que satisfaam a
comparao com todos os registros recuperados na sub-consulta. Observe os exemplos:
Listagem 16: Exemplo de select com operador ANY
1SELECT * FROM A WHERE Y > ALL (SELECT Y FROM B WHERE X > 30)
Resultado:
XY
3 10
O uso de != ALL equivale a NOT IN.
Listagem 18: Subconsulta com operador ALL
O predicado IN utilizado para recuperar apenas os registros na consulta principal que contm
equivalncia na sub-consulta. o mesmo que =ANY.
Listagem 19: Consulta com operador IN