daniel paulo [email protected]. atualizando e excluindo dados comando update – altera...

18
Daniel Paulo [email protected]

Upload: isis-castelhano-de-andrade

Post on 07-Apr-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

Daniel [email protected]

Page 2: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

Atualizando e excluindo Dados

Comando UPDATE – Altera registros da tabela

UPDATE tabelaSET nome_coluna = expressao [, nome_coluna =

expressao,..][FROM tabela1 JOIN tabela2 ON expressaoJoin [JOIN tabela3 ON expressaoJoin, ...][WHERE condição]

Page 3: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

Operador Descrição+ Adição- Subtração* Multiplicação/ Divisão% Retorna o resto inteiro de uma divisão= Atribuição

+= Soma e atribui-= Subtrai e atribui*= Multiplica e atribui/= Divide e atribui%= Obtém o resto da divisão e atribui

Page 4: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

-- OperadoresDECLARE @AINT =10SET @A += 5 -- O mesmo que SET @A = @A + 5PRINT @ASET @A -= 2 -- O mesmo que SET @A = @A -2PRINT @ASET @A *= 4 -- O mesmo que SET @A = @A * 4PRINT @ASET @A /= 2 -- O mesmo que SET @A = @A / 2PRINT @ASET @A %= 5 -- O mesmo que SET @A = @A % 5PRINT @A

Page 5: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

Alterando dados de uma coluna-- Aumenta o salário de todos os funcionários em 20%UPDATE EMPREGADOSSET SALARIO = SALARIO * 1.2;-- OUUPDATE EMPREGADOSSET SALARIO *= 1.2;-- Soma 2 na quantidade de dependentes do funcionário código 5UPDATE EMPREGADOSSET NUM_DEPEND = NUM_DEPEND + 2WHERE CODFUN = 5;-- OUUPDATE EMPREGADOSSET NUM_DEPEND += 2WHERE CODFUN = 5;

Page 6: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

Alterando dados de diversas colunas

-- Corrigindo o endereço do cliente de código 5SELECT * FROM CLIENTES WHERE CODCLI = 5

-- Alterando os dados do cliente de código 5UPDATE CLIENTESSET ENDERECO = 'AV. PAULISTA, 1009 - 10 AND', BAIRRO = 'CERQUEIRA CESAR', CIDADE = 'SÃO PAULO'WHERE CODCLI = 5;-- A linha a seguir confere o resultado da alteraçãoSELECT * FROM CLIENTES WHERE CODCLI = 5

Page 7: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

-- Corrigindo dados de um grupo de produtosSELECT * FROM PRODUTOSWHERE COD_TIPO = 5

-- Alterando os dados do grupo de produtosUPDATE PRODUTOS SET QTD_ESTIMADA = QTD_REAL, CLAS_FISC = '96082000', IPI = 8WHERE COD_TIPO = 5;

-- A linha a seguir confere o resultado da alteraçãoSELECT * FROM PRODUTOSWHERE COD_TIPO = 5

Page 8: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

Utilizando TOP com UPDATE

-- ConsultarSELECT * FROM EMPPEGADOS;

-- Multiplicar por 10 o valor do SALARIO de 15 registros da tabelaUPDATE TOP(15) EMPREGADOS SET SALARIO = 10*SALARIO;

-- ConsultarSELECT * FROM EMPPEGADOS;

Page 9: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

DELETE – Comando para excluir registrosDELETE [FROM] tabela[FROM tabela1 JOIN tabela2 ON expressaoJoin [JOIN tabela3 ONexpressaoJoin, ...][WHERE condicao]

TRUNCATE – Comando que elimina todas as linhas da tabela- Não realiza LOG de exclusão de cada uma das linhas- A tabela não terá páginas de dados vazias- Os valores originais das colunas autonumeráveis serão restabelecidos

TRUNCATE TABLE <nome da tabela>

Page 10: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

-- Criação de uma cópia da tabela EmpregadosSELECT * INTO EMPREGADOS_TMP FROM EMPREGADOS-- Mostra os empregados que ganham mais de 5000SELECT * FROM EMPREGADOS_TMP WHERE SALARIO > 5000-- Excluir os empregados que ganham mais de 5000DELETE FROM EMPREGADOS_TMP WHERE SALARIO > 5000-- Verifica se os empregados foram excluídosSELECT * FROM EMPREGADOS_TMP WHERE SALARIO > 5000

Page 11: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

-- Excluir os empregados de código 3, 5 e 7-- Lista os empregadosSELECT * FROM EMPREGADOS_TMP WHERE CODFUN IN

(3,5,7)-- Exclui os empregadosDELETE FROM EMPREGADOS_TMP WHERE CODFUN IN (3,5,7)-- Verifica se os empregados foram excluídosSELECT * FROM EMPREGADOS_TMP WHERE CODFUN IN

(3,5,7);

Page 12: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

Excluindo todos os registros da tabela

DELETE FROM EMPREGADOS_TMP-- OUTRUNCATE TABLE EMPREGADOS_TMP

--Verifica se existe empregados cadastrados

SELECT * FROM EMPREGADOS_TMP

Page 13: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

Utilizando TOP com DELETE

-- Criar a tabela a partir do comando SELECT INTOSELECT * INTO CLIENTE_MG FROM CLIENTES;-- Consultar CLIENTE_MGSELECT * FROM CLIENTE_MG;-- Apagar somente 10 registrosDELETE TOP(10) FROM CLIENTE_MG;-- ConsultarSELECT * FROM CLIENTE_MG;

Page 14: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

Cláusula OUTPUT é responsável por retornar resultados com base em linhas que tenham sido afetadas por uma instrução INSERT, UPDATE, DELETE e MERGE.

@ACTION retorna a ação executada pela instrução MERGE em cada registro

Exemplo

Operação INSERTED DELETED

INSERT XDELETE XUPDATE X X

Page 15: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

-- Gera uma cópia da tabela EMPREGADOS chamada EMP_TEMP

CREATE TABLE EMP_TEMP( CODFUN INT PRIMARY KEY, NOME VARCHAR(30), COD_DEPTO INT, COD_CARGO INT, SALARIO NUMERIC(10,2) );

-- Inserir dados e exibir os registros inseridosINSERT INTO EMP_TEMP OUTPUT inserted.*SELECT CODFUN, NOME, COD_DEPTO, COD_CARGO, SALARIOFROM EMPREGADOS;

Page 16: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

-- Deleta registros e mostra os registros deletadosDELETE FROM EMP_TEMP OUTPUT DELETED.*WHERE COD_DEPTO = 2;

-- Altera registros e mostra os dados antes e depois da alteração

UPDATE EMP_TEMP SET SALARIO *= 1.5OUTPUT INSERTED.CODFUN, INSERTED.NOME,

INSERTED.COD_DEPTO, DELETED.SALARIO, INSERTED.SALARIOWHERE COD_DEPTO = 3;

Page 17: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

TransaçõesMarca o ponto inicial de uma transação local explícita. A duração é o tempo até o encerramento da transação.

BEGIN TRANSACTIONComando que inicia uma transação explícita

COMMIT TRANSACTION E COMMIT WORKComando para encerramento com êxito da transação

ROLLBACK TRANSACTION E ROLLBACK WORKComando para encerramento sem êxito da transação

Page 18: Daniel Paulo dptsalvador@hotmail.com. Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao

Laboratório Página 210 até 215