Resumo : atualizar dados é uma das tarefas mais importantes quando você trabalha com banco de dados. Neste tutorial, você aprenderá como usar a UPDATE
instrução MySQL para atualizar dados em uma tabela.
UPDATE
Introdução à instrução MySQL
A UPDATE
instrução atualiza os dados em uma tabela. Ele permite alterar os valores em uma ou mais colunas de uma única linha ou de várias linhas.
O seguinte ilustra a sintaxe básica da UPDATE
instrução:
UPDATE [LOW_PRIORITY] [IGNORE] table_name
SET
column_name1 = expr1,
column_name2 = expr2,
...
[WHERE
condition];
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
- Primeiro, especifique o nome da tabela cujos dados deseja atualizar após a
UPDATE
palavra-chave. - Segundo, especifique qual coluna você deseja atualizar e o novo valor na
SET
cláusula. Para atualizar valores em diversas colunas, você usa uma lista de atribuições separadas por vírgula, fornecendo um valor na atribuição de cada coluna na forma de um valor literal, uma expressão ou uma subconsulta . - Terceiro, especifique quais linhas serão atualizadas usando uma condição na
WHERE
cláusula. AWHERE
cláusula é opcional. Se você omitir, aUPDATE
instrução modificará todas as linhas da tabela.
Observe que a WHERE
cláusula é tão importante que você não deve esquecê-la. Às vezes, você pode querer atualizar apenas uma linha; No entanto, você pode esquecer a WHERE
cláusula e atualizar acidentalmente todas as linhas da tabela.
MySQL suporta dois modificadores na UPDATE
instrução.
- O
LOW_PRIORITY
modificador instrui aUPDATE
instrução a atrasar a atualização até que não haja conexão lendo dados da tabela. OLOW_PRIORITY
efeito entra em vigor para os mecanismos de armazenamento que usam apenas bloqueio em nível de tabela , comoMyISAM
,MERGE
eMEMORY
. - O
IGNORE
modificador permite que aUPDATE
instrução continue atualizando as linhas mesmo que ocorram erros. As linhas que causam erros como conflitos de chave duplicada não são atualizadas.
UPDATE
Exemplos de MySQL
Vamos praticar a UPDATE
afirmação.
1) Usando MySQL UPDATE
para modificar valores em um exemplo de coluna única
Consulte a employees
tabela a seguir do banco de dados de amostra .
Neste exemplo, atualizaremos o email Mary Patterson
para o novo email [email protected]
.
Primeiro, encontre o e-mail de Mary na employees
tabela usando a seguinte SELECT
declaração:
SELECT
firstname,
lastname,
email
FROM
employees
WHERE
employeeNumber = 1056;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, atualize o endereço de e-mail Mary
para o novo e-mail [email protected]
:
UPDATE employees
SET
email = '[email protected]'
WHERE
employeeNumber = 1056;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
MySQL emitiu o número de linhas afetadas:
1 row(s) affected
Nesta UPDATE
declaração:
- A
WHERE
cláusula especifica que a linha com o número do funcionário1056
será atualizada. - A
SET
cláusula define o valor daemail
coluna para o novo email.
Terceiro, execute a SELECT
instrução novamente para verificar a alteração:
SELECT
firstname,
lastname,
email
FROM
employees
WHERE
employeeNumber = 1056;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Usando MySQL UPDATE
para modificar valores em múltiplas colunas
Para atualizar valores em múltiplas colunas, você precisa especificar as atribuições na SET
cláusula. Por exemplo, a instrução a seguir atualiza as colunas de sobrenome e e-mail do funcionário número 1056:
UPDATE employees
SET
lastname = 'Hill',
email = '[email protected]'
WHERE
employeeNumber = 1056;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Vamos verificar as alterações:
SELECT
firstname,
lastname,
email
FROM
employees
WHERE
employeeNumber = 1056;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
3) Usando MySQL UPDATE
para substituir exemplo de string
O exemplo a seguir atualiza as partes do domínio dos e-mails de todos Sales Reps
com o código do escritório 6
:
UPDATE employees
SET email = REPLACE(email,'@classicmodelcars.com','@tutorials.acervolima.com')
WHERE
jobTitle = 'Sales Rep' AND
officeCode = 6;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, a REPLACE()
função substitui @classicmodelcars.com
na coluna email por @tutorials.acervolima.com
.
4) Usando MySQL UPDATE
para atualizar linhas retornadas por um SELECT
exemplo de instrução
Você pode fornecer os valores da SET
cláusula a partir de uma SELECT
instrução que consulta dados de outras tabelas.
Por exemplo, na customers
tabela, alguns clientes não possuem nenhum representante comercial. O valor da coluna saleRepEmployeeNumber
é NULL
o seguinte:
SELECT
customername,
salesRepEmployeeNumber
FROM
customers
WHERE
salesRepEmployeeNumber IS NULL;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Podemos contratar um representante de vendas e atualizar esses clientes.
Para fazer isso, podemos selecionar um funcionário aleatório cujo cargo esteja Sales Rep
na employees
tabela e atualizá-lo para a employees
tabela.
Esta consulta seleciona um funcionário aleatório da tabela employees
cujo cargo é Sales Rep
.
SELECT
employeeNumber
FROM
employees
WHERE
jobtitle = 'Sales Rep'
ORDER BY RAND()
LIMIT 1;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para atualizar a coluna do número do funcionário do representante de vendas na customers
tabela, colocamos a consulta acima na SET
cláusula do UPDATE
extrato da seguinte forma:
UPDATE customers
SET
salesRepEmployeeNumber = (SELECT
employeeNumber
FROM
employees
WHERE
jobtitle = 'Sales Rep'
ORDER BY RAND()
LIMIT 1)
WHERE
salesRepEmployeeNumber IS NULL;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Se você consultar os dados da employees
tabela, verá que cada cliente possui um representante de vendas. Em outras palavras, a consulta a seguir não retorna nenhuma linha.
SELECT
salesRepEmployeeNumber
FROM
customers
WHERE
salesRepEmployeeNumber IS NULL;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste tutorial, você aprendeu como usar UPDATE
a instrução MySQL para atualizar dados em uma tabela de banco de dados.