Este artigo contém SQL básico
UPDATE
instruções que iniciantes podem usar para atualizar dados em suas tabelas de banco de dados. Atualizar uma única coluna
Aqui está um exemplo básico do SQL
UPDATE
demonstração. UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
Nesse caso, atualizamos o valor de uma única coluna chamada
LastName
. A
UPDATE
A instrução começa com UPDATE
, seguido pelo nome da tabela (ou seja, a tabela que contém os dados que você deseja atualizar). Ele então tem o
SET
palavra-chave, seguida pela coluna que você deseja atualizar e o novo valor, separado por um igual (=
) operador. Você deve sempre incluir um
WHERE
cláusula, a menos que você queira atualizar todas as linhas com o mesmo valor. Sim, você leu certo. Omitindo o
WHERE
cláusula irá atualizar todas as linhas com o mesmo valor. A maioria dos sistemas de gerenciamento de banco de dados (DBMSs) tem várias outras opções que você pode usar com o
UPDATE
declaração, mas os listados aqui são os mais comumente usados. Atualizar várias colunas
Para atualizar várias colunas, separe cada par de coluna/valor com uma vírgula.
UPDATE Owners
SET LastName = 'Stallone',
Email = '[email protected]'
WHERE OwnerId = 3;
Exemplo
Neste exemplo, atualizamos uma tabela.
Em primeiro lugar, vamos selecionar o conteúdo da tabela.
SELECT * FROM Owners;
Resultado:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Simpson | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Nancy Simpson se casou recentemente e mudou seu sobrenome, então atualizaremos
Simpson
para Stallone
. Agora vamos atualizar essa coluna e selecionar a tabela novamente.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
SELECT * FROM Owners;
Resultado:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Podemos ver que a coluna foi atualizada conforme especificado.
Atualizar várias colunas
Aqui está um exemplo de atualização de várias colunas.
UPDATE Owners
SET LastName = 'Biden',
Email = '[email protected]'
WHERE OwnerId = 4;
SELECT * FROM Owners;
Resultado:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Biden | (349) 611-8908 | [email protected] | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Nesse caso, atualizamos o sobrenome e o endereço de e-mail do proprietário 4.
Cuidado! Esquecendo o WHERE
Cláusula
A
UPDATE
declaração pode ser uma declaração muito perigosa se você não mantiver seu juízo sobre você. Se você omitir o WHERE
cláusula, você atualizará todos linhas na tabela. Vamos fazer o exemplo anterior novamente, mas desta vez vamos esquecer de incluir o
WHERE
cláusula. UPDATE Owners
SET LastName = 'Stallone';
SELECT * FROM Owners;
Resultado:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Stallone | (308) 555-0100 | [email protected] | | 2 | Bart | Stallone | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Stallone | (349) 611-8908 | NULL | | 5 | Woody | Stallone | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Ops! Agora o sobrenome de todos é Stallone!
Pode haver momentos em que você realmente pretenda atualizar todas as linhas da tabela, mas esses momentos geralmente são bastante raros.
Ao executar consultas ad hoc, convém executar uma rápida
SELECT
declaração que usa a mesma condição do seu UPDATE
operação antes de realmente executar o UPDATE
Operação. SELECT * FROM Owners
WHERE OwnerId = 4;
Resultado:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 4 | Boris | Biden | (349) 611-8908 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Isso nos mostra a linha exata que será atualizada. Quando tivermos certeza de que está retornando a linha correta, podemos prosseguir e usar o mesmo
WHERE
cláusula no UPDATE
demonstração.