Resumo: neste tutorial, você aprenderá como usar a declaração SQL UPDATE para modificar dados existentes em uma tabela.
Sintaxe UPDATESQL
A declaração UPDATE
altera dados existentes em uma ou mais linhas em uma tabela. O seguinte ilustra a sintaxe da instrução UPDATE
:
1
2
3
4
5
6
7
|
tabela UPDATE
SET
coluna1 = new_value1,
coluna2 = novo_valor2,
…
AQUI
condição;
|
Para atualizar dados em uma tabela, você precisa:
- Primeiro, especifique o nome da tabela que você deseja alterar os dados na cláusula
UPDATE
. - Segundo, atribua um novo valor para a coluna que você deseja atualizar. Caso você queira atualizar dados em várias colunas, cada coluna = par de valores é separado por uma vírgula (,).
- Terceiro, especifique quais linhas você deseja atualizar na cláusula WHERE. A cláusula
WHERE
é opcional. Se omitir a cláusulaWHERE
, todas as linhas da tabela serão actualizadas.
O motor de base de dados emite uma mensagem especificando o número de linhas afectadas depois de executar a declaração.
Exemplos de instrução UPDATESQL
Vamos dar uma olhada em alguns exemplos de uso de UPDATE
instrução com a employees
tabela:
SQL UPDATE um exemplo de coluna
Suponha que Janet, que tem o id 3 de funcionário, se case para que você precise mudar seu sobrenome na tabela employees
.
O registo da Janet nos funcionários antes da actualização é o seguinte:
1
2
3
4
5
6
|
SELECT
employeeid, sobrenome, primeiro nome
FROM
northwind_bk.empregados
WHERE
employeeid = 3;
|
1
2
3
4
5
|
ATUALIZAR empregados
SET
apelido = ‘Hill’
AQUI
ID do empregado = 3;
|
1
2
3
4
5
6
7
8
|
Actualizar empregados
SET
endereço = ‘1300 Carter St’,
cidade = ‘San Jose’,
código postal = 95125,
região = ‘CA’
AQUI
ID do funcionário = 3;
|
SQL UPDATE multiple lines
O seguinte UPDATE
declaração aumenta o salário em 2% para os funcionários cujo salário é inferior a $2000:
1
2
3
>4
5
|
ATUALIZAR empregados
SET
> salário = salário * 1.02
AQUI
salário < 2000;
|
Os empregados cujo salário seja inferior a 2K receberam a promoção.
SQL UPDATE from SELECT
A consulta seguinte selecciona o vendedor que tenha sido responsável por mais de 100 encomendas:
1
2
3
4
5
6
7
8
|
SELECT
employeeid, PAÍS(orderid)
FROM
encomendas
AQUI
data de envio NÃO É Nulo
GRUPO POR funcionário
PAÍSES EMBALAGEM(orderid) > 100;
|
A consulta seguinte aumenta o salário dos melhores vendedores em 5%. Os ids dos melhores vendedores são fornecidos por uma subconsulta.
1
2
3
4
5
6
7
8
9
10
11
12
1332>
14
15
|
ATUALIZAR empregados
SET
salário = salário * 1.05
AQUI
employeeid IN (SELECCIONAR
employeeid
FROM
(SELECCIONAR
employeeid, COUNT(orderid)
DE
ordens
ONDE
data de envio NÃO É Nulo
GRUPO POR empregado
COUNTORADA(orderid) > 100) melhor vendedor)
|