Database
 sql >> Base de Dados >  >> RDS >> Database

ATUALIZAÇÃO SQL


ATUALIZAÇÃO SQL

A instrução SQL UPDATE é utilizada para atualizar e modificar os registros presentes em um banco de dados . É utilizado para alterar os registros já existentes armazenados nas tabelas do banco de dados. Este comando é trabalhado junto com WHERE cláusula. A condição especificada na instrução UPDATE é usada para decidir quais colunas ou linhas da tabela serão afetadas ou modificadas.

O comando UPDATE também pode ser usado para atualizar uma tabela por outra tabela. Ele também pode ser usado para atualizar a data e a hora de uma consulta SQL.

SQL UPDATE JOIN

A instrução SQL UPDATE também pode ser utilizada para atualizar uma tabela usando outra tabela conectada por uma junção. Isso é conhecido como a instrução SQL UPDATE JOIN.
UPDATE table1, table2,
 INNER JOIN table1
 ON table1.column1 = table2.column1 
 SET table1.column1 = table2.column2
 WHERE condition

A seguir está a sintaxe básica da instrução UPDATE usando a cláusula JOIN:

Exemplo:
CREATE TABLE TAE1 (Col1 INT, Col2 INT, Col3 VARCHAR (100))  
 INSERT INTO TAE1 (Col1, Col2, Col3)  
 SELECT 1, 11, 'FIRST'  
 UNION ALL  
 SELECT 11,12, 'SECOND'  
 UNION ALL   
 SELECT 21, 13, 'THIRD'  
 UNION ALL   
 SELECT 31, 14, 'FOURTH'   

Vamos primeiro criar a primeira tabela TAE1.
 CREATE TABLE TAE2 (Col1 INT, Col2 INT, Col3 VARCHAR (100))  
 INSERT INTO TAE2 (Col1, Col2, Col3)  
 SELECT 1, 21, 'TWO-ONE'  
 UNION ALL  
 SELECT 11,22, 'TWO-TWO'  
 UNION ALL   
 SELECT 21, 23, 'TWO-THREE'  
 UNION ALL   
 SELECT 31, 24, 'TWO-FOUR'   

Agora, vamos criar a segunda tabela TAE2.
SELECT *
 FROM TAE1 
Col1 Col2 Col3
1 11 Primeiro
11 12 Segundo
21 13 Terceiro
31 14 Quarto

Saída:

Agora vamos ver o conteúdo da tabela TAE2.
SELECT *
 FROM TAE2

Saída:
Col1 Col2 Col3
1 21 Dois-um
11 22 Dois e dois
21 23 Dois e três
31 24 Dois e quatro

Agora a seguinte consulta irá atualizar as linhas de TAE1 onde o valor de Col1 é 21 e 31 usando a tabela TAE2 onde existem linhas semelhantes e onde Col1 é 21 e 31. Somente os registros correspondentes de Col2 e Col3 da tabela TAE1 serão atualizados .
UPDATE TAE1
 SET Col2 = TAE2.Col2,  
 Col3 = TAE2.Col3  
 FROM TAE1  
 INNER JOIN TAE2 ON TAE1.Col1 = TAE2.Col1  
 WHERE TAE1.Col1 IN (21, 31); 

Saída:
Col1 Col2 Col3
1 11 Primeiro
11 12 Segundo
21 13 Dois e três
31 14 Dois e quatro

Agora, se o conteúdo da tabela TAE1 for verificado, a seguinte saída será obtida.

No entanto, o conteúdo do TAE2 permanece inalterado.
Col1 Col2 Col3
1 21 Dois-um
11 22 Dois e dois
21 23 Dois e três
31 24 Dois e quatro

Este é um exemplo de uso da cláusula JOIN com a instrução UPDATE. Ele fundiu as duas tabelas acima.

DATA DE ATUALIZAÇÃO DO SQL

A instrução SQL UPDATE DATE é usada para atualizar o campo de data e hora no SQL.
UPDATE table_name
 SET data_field = ‘data_value’ 
 WHERE conditions; 

Veja a seguir a sintaxe geral de atualizar o campo de data e hora em SQL :
UPDATE table_name
 SET data_field = getdate(); 

A seguir está a sintaxe de atualizar a data com a data atual em SQL :
UPDATE table_name
 SET data_field = CURRENT_TIMESTAMP; 

A seguir está a sintaxe de atualizar a data e hora com a data e hora atuais no SQL:
 UPDATE table_name
 SET data_field = ‘YYYY-MM-DD HH:MM:SS’;

A seguir está a sintaxe de atualizar a data e hora com uma data e hora específicas no SQL:
UPDATE table_name
 SET data_field = CAST(‘date_value’ AS DATETIME); 

A seguir está a sintaxe de atualizar a data com um valor específico quando o formato da data não é conhecido:

Exemplo:
UPDATE Employee
 SET DOJ = ‘2021-07-05’ 
 WHERE Dept_ID = 10; 

Veja a seguir um exemplo de atualização da data em várias linhas no determinado Funcionário tabela.
Emp_ID Emp_Name Designação Manager_ID DOJ Salário Dept_ID
1 Empre1 Diretor 2021-07-11 45.000 10
2 Emp2 Diretor 2021-07-11 40.000 20
3 Emp3 Gerente Empre1 2021-07-11 27.000 10
4 Emp4 Gerente Emp2 2021-10-08 25.000 20
5 Emp5 Analista Emp3 2021-07-11 20.000 10
6 Emp6 Analista Emp3 2021-10-08 18000 10
7 Emp7 Escriturário Emp3 2021-07-11 15.000 10
8 Emp8 Vendedor Emp4 2021-09-09 14.000 20
9 Emp9 Vendedor Emp4 2021-10-08 13.000 20

Consulta:

Saída:
Emp_ID Emp_Name Designação Manager_ID DOJ Salário Dept_ID
1 Empre1 Diretor 2021-07-05 45.000 10
3 Emp3 Gerente Empre1 2021-07-05 27.000 10
5 Emp5 Analista Emp3 2021-07-05 20.000 10
6 Emp6 Analista Emp3 2021-07-05 18000 10
7 Emp7 Escriturário Emp3 2021-07-05 15.000 10

Assim, a coluna DOJ para todos os funcionários com Dept_ID 10 foi atualizada.

Veja a seguir o exemplo de atualização da data de admissão em uma tabela de alunos usando a função CAST:
UPDATE student
SET admission_date = CAST(‘2021-04-10’ AS DATETIME)
WHERE id = 42;