BANCO DE DADOS WEB AULA 12. manipulação de dados atualização e exclusão de registros. professor Luciano Roberto Rocha.

Documentos relacionados
DML: Conceitos Básicos INSERT UPDATE DELETE Atividade. Banco de Dados. Aula SQL (III) Bruno Neiva Moreno

S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A

Manipulação de Dados com SQL

BANCO DE DADOS WEB AULA 9. concessão e revogação de privilégios. professor Luciano Roberto Rocha.

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

Tabelas. Banco de Dados I MySQL

SQL (Tópicos) Structured Query Language

Banco de Dados I Introdução SQL

IMPLEMENTAÇÃO DE BANCO DE DADOS

Banco de Dados. Professora: Luciana Faria

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

SQL-99: Esquema de BD EMPRESA

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

MySql. Introdução a MySQL. Andréa Garcia Trindade

BANCO DE DADOS WEB AULA 7. criação de tabelas. professor Luciano Roberto Rocha.

Linguagem SQL Restrições, Triggers e Views

Oracle Comandos para Processamento de Transações

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

A linguagem SQL

SQL Básica. Andre Noel

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Bancos (Bases) de Dados

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Teste Exemplo Revisão da tentativa 1

Restrições do modelo relacional

Revisão de Bancos de Dados

MODELO DE BANCO DE DADOS RELACIONAL

BCD29008 Banco de dados

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

modelo introduzido por E. F. Codd Meados da década de 70: protótipos. INGRES (UC Berkeley, 73 77) System R (IBM Research at San Jose, 74 78)

Disciplina: Banco de Dados Tema: SQL Parte 2

Administração de Banco de Dados

PSI Linguagem de Definição de dados. Módulo 15

Linguagem de Definição de Dados (DDL)

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Subsistema de Integridade Semântica

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Oracle Database: Fundamentos de SQL e PL/SQL

Introdução ao PostgreSQL

Banco de Dados. Linguagem SQL

Triggers(Gatilhos) Tiago Alves de Oliveira

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

Controle de Transação

Modelo Relacional + SQL (DDL) Material elaborado pela Prof. Karin Becker

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql

Sumário. Motivação. Aplicações precisam acessar o BD Linguagens BD X Linguagens Programação. paradigmas diferentes (impedance mismatch)

Professor Leonardo Larback

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Subsistema de Integridade Semântica

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha.

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

Revisão Banco de Dados

FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS. Prof. Erinaldo Sanches Nascimento

Transacções. Vitor Vaz da Silva

Lista de Exercícios 12 Transações

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

Modelo Relacional Prof. Msc Denival A. dos Santos

Linguagem de Consulta Estruturada SQL- DML

Para criarmos um banco de dados no MySql, utilizamos à instrução:

EXEMPLO DE FLASHBACK VERSIONS QUERY E FLASHBACK TRANSACTION QUERY

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

Linguagem de Consulta Estruturada (SQL)

Sumário. Introdução a Transações

Bases de Dados. DDL Data Definition Language

Conexão com Banco de Dados, Inserção, exclusão e atualização de registros

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

Controle de transações em SQL

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Introdução em Banco de Dados

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha

SQL. Linguagem de Definição de Dados (DDL) Tipos em SQL. Tipos Data/Tempo em SQL (cont.)

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

[versão para impressão] Link original: comp=24763 Conhecendo o PL/SQL

Administração de BD. José Antônio da Cunha CEFET-RN

Comandos DDL. id_modulo = id_m odulo

Oracle Database 11g: Introdução à Linguagem SQL Novo

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Transcrição:

BANCO DE DADOS WEB AULA 12 manipulação de dados atualização e exclusão de registros professor Luciano Roberto Rocha www.lrocha.com

Atualização de dados A modificação dos dados armazenados no banco de dados é referida como atualização. Pode ser atualizada uma linha, todas as linhas, ou um subconjunto das linhas da tabela. Uma coluna pode ser atualizada separadamente; as outras colunas não são afetadas. Para realizar uma atualização são necessárias três informações: 1. O nome da tabela e da coluna a ser atualizada; 2. O novo valor para a coluna; 3. Quais linhas serão atualizadas. 2

Atualização de dados A linguagem SQL, de uma maneira geral, não fornece um identificador único para as linhas. Portanto, não é necessariamente possível especificar diretamente a linha a ser atualizada. Em vez disso, devem ser especificadas as condições que a linha deve atender para ser atualizada. Por exemplo, o comando mostrado abaixo atualiza todos os produtos com preço igual a 5, mudando estes preços para 10: UPDATE produtos SET preco = 10 WHERE preco = 5; 3

Atualização de dados UPDATE: atualiza linhas de uma tabela. Sinopse UPDATE [ ONLY ] tabela SET coluna = { expressão DEFAULT } [,...] [ FROM lista_do_from ] [ WHERE condição ] Descrição O comando UPDATE muda os valores das colunas especificadas em todas as linhas que satisfazem a condição. Somente precisam ser mencionadas na cláusula SET as colunas que serão modificadas; as colunas que não serão modificadas explicitamente manterão seus valores atuais. Por padrão, o comando UPDATE atualiza linhas na tabela especificada e nas suas tabelas descendentes. Se for desejado atualizar apenas a tabela especificada, deverá ser utilizada a cláusula ONLY. 4

Atualização de dados Parâmetros tabela O nome (opcionalmente qualificado pelo esquema) da tabela a ser atualizada. coluna O nome de uma coluna da tabela. O nome da coluna pode ser qualificado pelo nome de um subcampo ou índice de matriz, se for necessário. expressão Uma expressão a ser atribuída à coluna. A expressão pode usar o valor antigo desta e de outras colunas da tabela. DEFAULT Define o valor da coluna como o seu valor padrão (que será nulo se não tiver sido atribuído à coluna nenhuma expressão padrão específica). lista_do_from Uma lista de expressões de tabela, que permite aparecerem colunas de outras tabelas na condição WHERE e nas expressões de atualização. É semelhante à lista de tabelas que pode ser especificada na cláusula Cláusula FROM do comando SELECT. condição Uma expressão que retorna um valor do tipo boolean. Somente são atualizadas as linhas para as quais esta expressão retorna true. 5

Atualização de dados Exemplos Mudar a palavra Drama para Dramático na coluna tipo da tabela filmes: UPDATE filmes SET tipo = 'Dramático' WHERE tipo = 'Drama'; Ajustar as entradas de temperatura e redefinir a precipitação com seu valor padrão em uma linha da tabela clima: UPDATE clima SET temp_min = temp_min+1, temp_max = temp_min+15, precipitacao = DEFAULT WHERE cidade = 'São Francisco' AND data = '2003-07-03'; Incrementar o contador de vendas do vendedor que gerencia a conta da Corporação Acme, usando a sintaxe da cláusula FROM: UPDATE empregados SET contador_de_vendas = contador_de_vendas + 1 FROM contas WHERE contas.nome = 'ACME' AND empregados.id = contas.vendedor; Realizar a mesma operação utilizando uma subseleção na cláusula WHERE: UPDATE empregados SET contador_de_vendas = contador_de_vendas + 1 WHERE id = (SELECT vendedor FROM contas WHERE nome = 'Corporação Acme'); 6

Atualização em transações O comando UPDATE pode ser utilizado em transações SQL para garantir a integridade das informações. Exemplo: Tentar inserir um novo item no estoque junto com a quantidade em estoque. Se o item já existir, em vez inserir, atualizar o contador de estoque do item existente. Para fazer isto, sem interromper toda a transação, é utilizado um ponto de salvamento. BEGIN; -- outras operações SAVEPOINT sp1; INSERT INTO vinhos VALUES('Chateau Lafite 2003', '24'); -- Assumindo que o comando acima falhou devido à violação de chave única, -- serão submetidos os comandos abaixo: ROLLBACK TO sp1; UPDATE vinhos SET estoque = estoque + 24 WHERE nome_do_vinho = 'Chateau Lafite 2003'; -- prosseguir com as outras operações e, finalmente, COMMIT; 7

Exclusão de dados Até aqui foi mostrado como adicionar dados a tabelas, e como modificar estes dados. Está faltando mostrar como remover os dados que não são mais necessários. Assim como só é possível adicionar dados para toda uma linha, uma linha também só pode ser removida por inteiro da tabela. O SQL não fornece uma maneira para endereçar diretamente uma determinada linha. Portanto, a remoção das linhas só pode ser feita especificando as condições que as linhas a serem removidas devem atender. 8

Exclusão de dados Para se excluir um registro é utilizado o comando DELETE. A sintaxe deste comando é muito semelhante a do comando UPDATE. Por exemplo, para remover todas as linhas da tabela produtos possuindo preço igual a 10: DELETE FROM produtos WHERE preco = 10; Se uma qualificação não for fornecida, o comando DELETE remove todas as linhas da tabela, deixando-a vazia. ATENÇÃO: O sistema não solicita confirmação antes de realizar esta operação!: DELETE FROM produtos; 9

Exclusão de dados DELETE: exclui linhas de uma tabela. Sinopse DELETE FROM [ ONLY ] tabela [ WHERE condição ] Descrição O comando DELETE exclui da tabela especificada as linhas que satisfazem a cláusula WHERE. Se a cláusula WHERE estiver ausente, o efeito será excluir todas as linhas da tabela. O resultado será uma tabela válida, porém vazia. Por padrão, o comando DELETE exclui linhas da tabela especificada e de todas as suas tabelas descendentes. Se for desejado excluir linhas apenas da tabela especificada, deve ser utilizada a cláusula ONLY. É necessário possuir o privilégio DELETE na tabela para excluir linhas da mesma, assim como o privilégio SELECT para todas as tabelas cujos valores são lidos pela condição. 10

Exclusão de dados Parâmetros tabela O nome (opcionalmente qualificado pelo esquema) de uma tabela existente. condição Uma expressão retornando um valor do tipo boolean, que determina as linhas a serem excluídas. 11

Exclusão de dados Exemplos Excluir todos os filmes, exceto os musicais: DELETE FROM filmes WHERE tipo <> 'Musical'; Limpar a tabela filmes: DELETE FROM filmes; 12

Exclusão de dados Observações O PostgreSQL permite que se faça referência a colunas de outras tabelas na condição WHERE. Por exemplo, para excluir todos os filmes produzidos por um determinado produtor pode ser utilizado: DELETE FROM filmes WHERE filmes.id_produtor = produtores.id_produtor AND produtores.nome = 'foo'; Esta sintaxe não é padrão. Uma forma mais padrão de se fazer isto é: DELETE FROM filmes WHERE id_produtor IN (SELECT id_produtor FROM produtores WHERE nome = 'foo'); Dica: O comando TRUNCATE é uma extensão do PostgreSQL que fornece um mecanismo mais rápido para excluir todas as linhas da tabela. 13

Exclusão de dados (TRUNCATE) TRUNCATE: esvazia a tabela. Sinopse TRUNCATE [ TABLE ] nome [CASCADE] Descrição O comando TRUNCATE remove rapidamente todas as linhas da tabela. Possui o mesmo efeito do comando DELETE não qualificado (sem WHERE), mas como na verdade não varre a tabela é mais rápido. É mais útil em tabelas grandes. Parâmetros nome O nome (opcionalmente qualificado pelo esquema) da tabela a ser truncada. 14

Exclusão de dados (TRUNCATE) Observações O comando TRUNCATE não pode ser usado quando existe referência de chave estrangeira de outra tabela para a tabela. Neste caso podese utilizar a opção CASCADE, porém tendo a consciência de que a integridade referencial dos dados será comprometida. Exemplos Truncar a tabela tbl_grande: TRUNCATE TABLE tbl_grande; Obs: Não existe o comando TRUNCATE no padrão SQL. 15