Bancos (Bases) de Dados

Documentos relacionados
SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT

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

SQL Linguagem de Definição de Dados

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

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

Álgebra Relacional e SQL

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

GBC043 Sistemas de Banco de Dados

Banco de Dados I Introdução SQL

Rápida revisão do Modelo Relacional

Introdução ao PostgreSQL

BCD29008 Banco de dados

A linguagem SQL

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

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

Banco de Dados. Professora: Luciana Faria

SQL (Tópicos) Structured Query Language

SQL. Prof. Roger Cristhian Gomes

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

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>

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

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

SQL Básica. Andre Noel

BANCO DE DADOS PARA NINJAS

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

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

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

Linguagem SQL Sub-linguagem DDL

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

GBC043 Sistemas de Banco de Dados

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Introdução ao Banco de Dados. Banco de Dados

Discussão exercício aula 18. SQL Linguagem de Manipulação de Dados. Discussão exercício aula 18. Discussão exercício aula 18 SQL.

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

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

A linguagem SQL

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Manipulação de Dados com SQL

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

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

Linguagem de Consulta Estruturada (SQL)

mod._1_teoria_sistemas de bancos de dados.doc

Marcelo Henrique dos Santos

IMPLEMENTAÇÃO DE BANCO DE DADOS

Bases de Dados. DDL Data Definition Language

Comandos de Manipulação

Banco de Dados. Linguagem SQL

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

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

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

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language

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

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

SQL-99: Esquema de BD EMPRESA

Linguagem de Consulta Estruturada SQL- DML

Introdução a Bancos de Dados

Utilizando o Postgres - comandos SQL para a manipulação de dados

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

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

Álgebra Relacional e SQL operações de interesse

Linguagem SQL. Comandos Básicos

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

Definição de Dados com SQL

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

- SQL Linguagem de Manipulação de Dados

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

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

Aula 06 Sistemas Embarcados LT38C

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

Teste Exemplo Revisão da tentativa 1

ANÁLISE E PROJETO DE BANCO DE DADOS

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

L Q S m e g a u g n Li A

SQL Structured Query Language

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

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

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

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

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

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:

Structured Query Language (SQL) Aula Prática

Linguagem de Definição de Dados (DDL)

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Tabelas. Banco de Dados I MySQL

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

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

Banco de Dados. Prof. Dr. Joel da Silva SQL - Introdução

Transcrição:

Bancos (Bases) de Dados Aula #8 SQL Prof. Eduardo R. Hruschka * Slides baseados no material elaborado pelas professoras: Cristina D. A. Ciferri Elaine P. M. de Souza

SQL (Structured Query Language) Linguagem relacional; Exemplos de SGBD que utilizam SQL: Oracle Informix Ingress SQL Server Interbase SyBase DB2 MySQL PostgreSQL 2

Composição da SQL Linguagem de Definição dos Dados DDL; comandos para definir, modificar e remover relações (tabelas), além de criar e remover índices. Linguagem Interativa de Manipulação dos Dados DML; comandos para consultar, inserir, remover e modificar tuplas. 3

Composição da SQL DML embutida pode ser utilizada a partir de linguagens de programação de propósito geral Definição de visões SQL DDL inclui comandos para a criação e a remoção de visões Restrições de integridade SQL DDL possui comandos para a especificação de restrições de integridade 4

Composição da SQL Autorização SQL DDL inclui comandos para a especificação de direitos de acesso a relações e visões Gerenciamento de transações introduz comandos para a especificação do início e do fim das transações Recuperação de falhas introduz comandos para utilização do arquivo de log 5

SQL DDL CREATE DATABASE SCHEMA cria um esquema de BD relacional DROP DATABASE SCHEMA remove um esquema de BD relacional 6

CREATE DATABASE CREATE {DATABASE SCHEMA} nome [USER `username` [PASSWORD `password`] ]... ; Cria um esquema de BD relacional agrupa tabelas/comandos que pertencem à aplicação identifica o proprietário do esquema esquema inicial não possui tabelas/dados 7

DROP DATABASE DROP {DATABASE SCHEMA} nome [CASCADE RESTRICT] ; Remove um esquema de BD relacional tabelas/dados índices arquivos de log Usuários autorizados proprietário do banco de dados DBA quaisquer elementos associados 8

DROP DATABASE CASCADE remove um esquema de BD, incluindo todas as suas tabelas e os seus outros elementos RESTRICT remove um esquema de BD somente se não existirem elementos definidos para esse esquema 9

SQL DDL CREATE TABLE cria uma nova tabela (relação) no BD nova tabela não possui dados DROP TABLE remove uma tabela e sua instância do BD ALTER TABLE altera a estrutura de uma tabela já existente no BD 10

CREATE TABLE CREATE TABLE nome_tabela ( A 1 D 1 R 1, A 2 D 2 R 2,... A n D n R n ) ; Cria uma nova tabela (relação) Cria os atributos da nova tabela, com nome do atributo: A i (1 i n) tipo de dado (domínio do atributo): D i restrições que atuam no atributo: R i 11

Exemplos de Tipos de Dados Numéricos Integer, float,... Hora/Data Date (YYYY-MM-DD), time (HH-MM-SS),... Strings Etc. 12

Restrições de Integridade Valor nulo representado por NULL membro de todos os domínios Restrição NOT NULL especificada quando NULL não é permitido proíbe que o atributo receba valor nulo 13

Restrições de Integridade Cláusula PRIMARY KEY identifica os atributos que formam a chave primária NOT NULL sintaxe PRIMARY KEY (atributo 1, atributo 2,..., atributo X ) Cláusula UNIQUE não permite valores duplicados para um atributo 14

Restrições de Integridade Cláusula DEFAULT associa um valor default para um atributo, caso nenhum outro valor seja especificado Cláusula CHECK especifica um predicado que precisa ser satisfeito por todas as tuplas de uma relação exemplos saldo int CHECK (saldo >= 0) nível char(15) CHECK (nível IN `Bacharelado`,`Mestrado`, `Doutorado`)) 15

Restrições de Integridade Integridade referencial dependência existente entre a chave estrangeira de uma relação R 1 (referência) e a chave primária da relação referenciada R 2 (relação referida). problemas atualização ou exclusão de elementos da chave primária sem fazer um ajuste coordenado nas chaves estrangeiras: Excluir tupla de Empregado que é gerente de Departamento. inclusão ou alteração de valores não nulos na chave estrangeira de R 1 que não existam na chave primária de R 2 16

Restrições de Integridade Cláusula FOREIGN KEY características elimina a possibilidade de violação da integridade referencial reflete nas chaves estrangeiras todas as alterações na chave primária sintaxe FOREIGN KEY (atributos) REFERENCES nome_relação (atributos) [ON UPDATE [NO ACTION CASCADE SET NULL SET DEFAULT]] [ON DELETE [NO ACTION CASCADE SET NULL SET DEFAULT]] 17

DROP TABLE DROP TABLE nome_tabela ; Remove uma tabela existente do BD dados índices, etc. Usuários autorizados proprietário do banco de dados DBA 18

ALTER TABLE ALTER TABLE nome_tabela; Altera o esquema de uma tabela do BD adiciona remove altera colunas ou restrições de integridade 19

Exemplos: ALTER TABLE ALTER TABLE nome_tabela ADD (A 1 D 1 R 1 ),... ADD (A n D n R n ) inclui novas colunas na tabela ALTER TABLE nome_tabela DROP A 1 elimina uma coluna já existente da tabela 20

Exemplos: ALTER TABLE ALTER TABLE nome_tabela ALTER [COLUMN] A 1 TO A 2 modifica o nome de uma coluna existente de A 1 para A 2 ALTER TABLE nome_tabela ALTER [COLUMN] A 1 TYPE INT modifica o tipo de dado de uma coluna 21

SQL DDL CREATE DOMAIN cria um domínio para um tipo de dados DROP DOMAIN remove um domínio existente do BD ALTER DOMAIN altera a definição de domínio 22

CREATE DOMAIN CREATE DOMAIN nome_domínio [AS] tipo_dado [DEFAULT... ] [NOT NULL] [CHECK...]... ; Cria um domínio para um tipo de dados restrições de integridade Característica a definição do domínio é global ao BD 23

DROP DOMAIN DROP DOMAIN nome_domínio ; Remove um domínio existente do BD falha caso o domínio esteja definindo o tipo de dado de alguma coluna Usuários autorizados proprietário do banco de dados DBA 24

ALTER DOMAIN ALTER DOMAIN nome_domínio... ; Altera um domínio existente do BD remove ou define restrições de integridade 25

Exemplo vinho é_de vinícola situada região vinho_id nome_vinho tipo_vinho ano_vinho descrição_vinho N 1 N 1 vinícola_id nome_vinícola descrição_vinícola fone_vinícola fax_vinícola região_id nome_região descrição_região mapa_região região (região_id, nome_região, mapa_região, descrição_região) vinícola (vinícola_id, nome_vinícola, descrição_vinícola, fone_vinícola, fax_vinícola, região_id) vinho (vinho_id, nome_vinho, tipo_vinho, ano_vinho, descrição_vinho, vinícola_id) 26

Exemplo... CREATE DATABASE loja_vinhos; CREATE TABLE região ( região_id int NOT NULL, nome_região varchar(100) NOT NULL, mapa_região blob, descrição_região blob, PRIMARY KEY (região_id), ); BLOB: Binary Long Objects (para armazenar áudio e vídeo) 27

Exemplo CREATE TABLE vinícola ( vinícola_id int NOT NULL, nome_vinícola varchar(100) NOT NULL, descrição_vinícola blob, fone_vinícola varchar(15), fax_vinícola varchar(15), região_id int DEFAULT 0 NOT NULL, PRIMARY KEY (vinícola_id), FOREIGN KEY (região_id) REFERENCES região (região_id) ON UPDATE SET DEFAULT, ON DELETE SET DEFAULT, ); 28

Exemplo CREATE TABLE vinho ( vinho_id int NOT NULL, nome_vinho varchar(50) DEFAULT NOT NULL, tipo_vinho varchar(10) DEFAULT NOT NULL, ano_vinho int DEFAULT 0 NOT NULL, descrição_vinho blob, vinícola_id int DEFAULT 0 NOT NULL, PRIMARY KEY (vinho_id), FOREIGN KEY (vinícola_id) REFERENCES vinícola (vinícola_id), ON UPDATE CASCADE ON DELETE CASCADE, ); 29

SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE FROM... WHERE... remove dados de tabelas já existentes UPDATE... SET... WHERE... altera dados específicos de uma tabela 30

SELECT SELECT <lista de atributos> FROM <lista de tabelas> [ WHERE predicado/condição ] [ GROUP BY <atributos de agrupamento> ] [ HAVING <condição para agrupamento> ] [ ORDER BY <lista de atributos> ] ; 31

SELECT Cláusula SELECT (lista de atributos) lista os atributos cujos valores serão recuperados. Cláusula FROM (lista de tabelas) especifica as relações necessárias para o processamento da consulta. Cláusula WHERE (condição) especifica as condições para a seleção das tuplas a serem recuperadas. pode ser omitida. 32

Exemplo: SELECT datanasc, endereco FROM Empregado WHERE Pnome=Eduardo AND Unome=Hruška Lembrar que, em princípio, SQL permite multiconjuntos. 33

SELECT Resultado de uma consulta ordem de apresentação dos atributos ordem dos atributos na cláusula SELECT ordem de apresentação dos dados (parte das tuplas) ordem ascendente ou descendente de acordo com a cláusula ORDER BY sem ordenação duas ou mais tuplas podem possuir valores idênticos de atributos para eliminação de tuplas duplicadas SELECT DISTINCT 34

Cláusula WHERE Operadores de comparação igual a = diferente de < > maior que > maior ou igual a >= menor que < menor ou igual a <= entre dois valores BETWEEN... AND de cadeias de caracteres LIKE ou NOT LIKE 35

Cláusula WHERE Operadores de comparação de cadeias de caracteres % (porcentagem): substitui qualquer string _ (underscore): substitui qualquer caractere Característica operadores sensíveis ao caso letras maiúsculas são consideradas diferentes de letras minúsculas 36

Relações Base vinho é_de vinícola situada região vinho_id nome_vinho tipo_vinho ano_vinho descrição_vinho n 1 n 1 vinícola_id nome_vinícola descrição_vinícola fone_vinícola fax_vinícola região_id nome_região descrição_região mapa_região região (região_id, nome_região, mapa_região, descrição_região) vinícola (vinícola_id, nome_vinícola, descrição_vinícola, fone_vinícola, fax_vinícola, região_id) vinho (vinho_id, nome_vinho, tipo_vinho, ano_vinho, descrição_vinho, vinícola_id) 37

Cláusula WHERE Exemplos WHERE nome_região LIKE Mar% qualquer string que se inicie com Mar WHERE nome_região LIKE Mar_ qualquer string de 4 caracteres que se inicie com Mar 38

Exemplos SELECT * FROM região; SELECT região_id, nome_região FROM região WHERE nome_região LIKE M% AND região_id >= 3 AND mapa_região IS NOT NULL; 39

Operações sobre conjuntos SQL UNION INTERSECT MINUS Álgebra Relacional União Intersecção Diferença Observações as relações participantes das operações precisam ser compatíveis. 40

Exemplo Liste os anos de fabricação dos vinhos tintos e brancos: SELECT ano_vinho FROM vinho WHERE tipo_vinho = tinto UNION ALL SELECT ano_vinho FROM vinho WHERE tipo_vinho = branco ; 41

Junção Usar SELECT e WHERE especificam atributos com mesmo nome usando nomes de tabelas e atributos (nome_tabela.nome_atributo) Cláusula FROM possui mais do que uma tabela Cláusula WHERE inclui as condições de junção 42

Exemplos SELECT nome_vinícola, nome_região FROM vinícola, região WHERE vinícola.região_id = região.região_id; SELECT nome_vinícola, nome_região, nome_vinho FROM vinícola, região, vinho WHERE vinícola.região_id = região.região_id AND vinho.vinícola_id = vinícola.vinícola_id; 43

Cláusula ORDER BY Ordena as tuplas resultantes de uma consulta asc: ordem ascendente (padrão) desc: ordem descendente Ordenação pode ser especificada em vários atributos Ordenação referente ao primeiro atributo é prioritária. Se houver valores repetidos, então é utilizada a ordenação referente ao segundo atributo, e assim por diante 44

Exemplo Liste os dados das vinícolas e suas regiões. Ordene o resultado pela região da vinícola em ordem ascendente. SELECT * FROM vinícola, região WHERE vinícola.região_id = região.região_id ORDER BY nome_região asc 45

Funções de Agregação Funções Média: AVG( ) Mínimo: MIN( ) Máximo: MAX( ) Total: SUM( ) Contagem: COUNT( ) Observação DISTINCT: não considera valores duplicados ALL: inclui valores duplicados 46

Funções de Agregação Características recebem uma coleção de valores como entrada; retornam um único valor. 47

Funções de Agregação vinho (vinho_id, nome_vinho, tipo_vinho, preço, vinícola_id) vinho_id nome_vinho tipo_vinho preço vinícola_id 10 Amanda tinto 100,00 1 09 Belinha branco 200,00 1 05 Camila rosê 300,00 1 15 Daniela branco 250,00 2 27 Eduarda branco 150,00 2 48 Fernanda tinto 7,00 2 13 Gabriela tinto 397,00 3 12 Helena branco 333,00 3 48

Exemplos Qual a média dos preços? SELECT AVG (preço) FROM vinho 217,125 Qual a soma dos preços? SELECT SUM (preço) FROM vinho 1.737,00 Qual o preço mais baixo? SELECT MIN (preço) FROM vinho 7,00 Qual o preço mais alto? SELECT MAX (preço) FROM vinho 397,00 49

Exemplos Quantos vinhos existem na relação vinho? SELECT COUNT (vinho_id) FROM vinho 8 Quantos tipos de vinho diferentes existem na relação vinho? SELECT COUNT (DISTINCT tipo_vinho) FROM vinho 3 50

Cláusula GROUP BY Funcionalidade: permite aplicar uma função de agregação não somente a um conjunto de tuplas, mas também a um grupo de um conjunto de tuplas; Grupo de um conjunto de tuplas: conjunto de tuplas que possuem o mesmo valor para os atributos de agrupamento; 51

Exemplo Qual o preço mais alto e a média dos preços por tipo de vinho? SELECT tipo_vinho, MAX (preço), AVG (preço) FROM vinho GROUP BY tipo_vinho tipo_vinho max avg branco 333 233,25 rosê 300 300 tinto 397 168 52

Cláusula HAVING Funcionalidade: especificar uma condição de seleção para grupos; Resposta: recupera os valores para as funções somente para aqueles grupos que satisfazem à condição imposta na cláusula HAVING; 53

Exemplo Qual o preço mais alto e a média dos preços por tipo de vinho, para médias de preços superiores a R$200,00 SELECT tipo_vinho, MAX (preço), AVG (preço) FROM vinho GROUP BY tipo_vinho HAVING AVG (preço) > 200 tipo_vinho max avg branco 333 233,25 rosê 300 300 54

Inserção Realizada através da especificação: de uma tupla particular; de uma consulta que resulta em um conjunto de tuplas a serem inseridas; Valores dos atributos das tuplas inseridas: devem pertencer ao domínio do atributo; Atributos sem valores: especificados por NULL ou valor DEFAULT; 55

INSERT INSERT INTO nome_tabela VALUES ( V 1, V 2,..., V N ) ; Ordem dos atributos deve ser mantida 56

INSERT INSERT INTO nome_tabela (A 1, A 2,..., A n ) VALUES ( V 1, V 2,..., V N ) ; Ordem dos atributos não precisa ser mantida 57

INSERT INSERT INTO nome_tabela SELECT... FROM... WHERE... ; Tuplas resultantes da cláusula SELECT serão inseridas na tabela nome_tabela 58

Exemplos INSERT INTO região VALUES (NULL, nome região, NULL, descrição ); INSERT INTO região (nome_região, descrição_região) VALUES nome região, descrição ; 59

DELETE DELETE FROM nome_tabela WHERE predicado ; Cláusula WHERE é opcional: todas as tuplas da tabela são eliminadas a tabela continua a existir 60

DELETE... Remove tuplas inteiras Opera apenas em uma relação Tuplas de mais de uma relação a serem removidas: um comando DELETE para cada relação A remoção de uma tupla de uma relação pode ser propagada para tuplas em outras relações devido às restrições de integridade referencial. 61

Exemplos DELETE FROM vinícola WHERE vinícola_id = 10; remove a tupla referente a vinícola_id = 10; tabela vinho (i.e., se CASCADE foi especificada na cláusula ON DELETE p/ vinícola_id desta tabela) DELETE FROM região remove todos os dados da tabela região 62

UPDATE UPDATE nome_tabela SET coluna = <valor> WHERE predicado ; Cláusula WHERE é opcional Exemplos de <valor> NULL string 63

UPDATE... Opera apenas em uma relação A atualização da chave primária pode ser propagada para tuplas em outras relações devido às restrições de integridade referencial 64

Exemplos Alterar os anos de produção de vinhos de 2005 para 2003. UPDATE vinho SET ano_vinho = 2003 WHERE ano_vinho = 2005; Suponha o atributo adicional preço na tabela vinho. Aumentar os preços dos vinhos em 10%. UPDATE vinho SET preço = preço * 1.10; 65

Exemplos UPDATE vinícola SET vinícola_id = 10 WHERE vinícola_id = 2; altera o valor de vinícola_id = 10 para vinícola_id = 2 tabela vinícola tabela vinho (i.e., se a opção CASCADE foi especificada na cláusula ON UPDATE do campo vinícola_id desta tabela) 66