ATUALIZAÇÃO DO MySQL

Resumo : atualizar dados é uma das tarefas mais importantes quando você trabalha com banco de dados. Neste tutorial, você aprenderá como usar a UPDATEinstrução MySQL para atualizar dados em uma tabela.

UPDATEIntrodução à instrução MySQL

A UPDATEinstruçã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 UPDATEinstruçã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 UPDATEpalavra-chave.
  • Segundo, especifique qual coluna você deseja atualizar e o novo valor na SETclá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. A WHEREcláusula é opcional. Se você omitir, a UPDATEinstrução modificará todas as linhas da tabela.

Observe que a  WHEREclá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 WHEREcláusula e atualizar acidentalmente todas as linhas da tabela.

MySQL suporta dois modificadores na UPDATEinstrução.

  1. O LOW_PRIORITYmodificador instrui a UPDATEinstrução a atrasar a atualização até que não haja conexão lendo dados da tabela. O LOW_PRIORITYefeito entra em vigor para os mecanismos de armazenamento que usam apenas bloqueio em nível de tabela , como MyISAM, MERGEe MEMORY.
  2. O IGNOREmodificador permite que a UPDATEinstrução continue atualizando as linhas mesmo que ocorram erros. As linhas que causam erros como conflitos de chave duplicada não são atualizadas.

UPDATEExemplos de MySQL

Vamos praticar a UPDATEafirmação.

1) Usando MySQL UPDATEpara modificar valores em um exemplo de coluna única

Consulte a employeestabela a seguir do banco de dados de amostra .

Tabela de Funcionários

Neste exemplo, atualizaremos o email Mary Pattersonpara o novo email [email protected].

Primeiro, encontre o e-mail de Mary na employeestabela usando a seguinte SELECTdeclaração:

SELECT 
    firstname, 
    lastname, 
    email
FROM
    employees
WHERE
    employeeNumber = 1056;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Exemplo de atualização do MySQL

Segundo, atualize o endereço de e-mail Marypara 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 UPDATEdeclaração:

  • A WHEREcláusula especifica que a linha com o número do funcionário 1056será atualizada.
  • A SETcláusula define o valor da emailcoluna para o novo email.

Terceiro, execute a SELECTinstruçã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 )
Exemplo de tabela UPDATE do MySQL

2) Usando MySQL UPDATEpara modificar valores em múltiplas colunas

Para atualizar valores em múltiplas colunas, você precisa especificar as atribuições na SETclá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 )
MySQL UPDATE múltiplas colunas

3) Usando MySQL UPDATEpara substituir exemplo de string

O exemplo a seguir atualiza as partes do domínio dos e-mails de todos Sales Repscom 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 UPDATEpara atualizar linhas retornadas por um SELECTexemplo de instrução

Você pode fornecer os valores da SETcláusula a partir de uma SELECTinstrução que consulta dados de outras tabelas.

Por exemplo, na customerstabela, alguns clientes não possuem nenhum representante comercial. O valor da coluna saleRepEmployeeNumberé NULLo seguinte:

SELECT 
    customername, 
    salesRepEmployeeNumber
FROM
    customers
WHERE
    salesRepEmployeeNumber IS NULL;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
MySQL UPDATE do exemplo SELECT

Podemos contratar um representante de vendas e atualizar esses clientes.

Para fazer isso, podemos selecionar um funcionário aleatório cujo cargo esteja Sales Repna   employeestabela e atualizá-lo para a   employeestabela.

Esta consulta seleciona um funcionário aleatório da tabela employeescujo 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 customerstabela, colocamos a consulta acima na SETcláusula do UPDATEextrato 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   employeestabela, 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 UPDATEa instrução MySQL para atualizar dados em uma tabela de banco de dados.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *