Você está na página 1de 79

Banco de Dados I

SQL DDL Frederico D. Bortoloti freddb@ltc.ufes.br

Introduo
Modelo relacional encontra-se padronizado pela indstria de informtica. Ele chamado de padro SQL (Structured Query Language) SQL usa uma combinao de construtores em lgebra relacional e clculo relacional Embora o prprio nome se refira a SQL como uma linguagem de consulta, ela possui outros recursos

Introduo
O padro SQL define precisamente uma interface SQL para a definio de tabelas, para as operaes sobre as mesmas (seleo, projeo, juno e outras) e para a definio de regras de integridade de bancos de dados A interface SQL implementada em todos os sistemas de bancos de dados relacionais existentes A existncia de padres facilita a interoperabilidade

Introduo
Um SGBD necessita possuir duas linguagens
DDL (Data Definition Language) - Usada para definir os esquemas, atributos, vises, regras de integridade, ndices, etc. DML (Data Manipulation Language) - Usada para se ter acesso aos dados armazenados no BD

Exemplos de linguagens de consulta


QUEL QBE SQL

Histrico
A verso original de SQL foi desenvolvida pela IBM
Originalmente chamada de SEQUEL Parte do projeto System R

Tornou-se a linguagem padro para SGBDs relacionais Existem diversos padres para SQL
ANSI-SQL (SQL-86) IBM SQL (SQL-89) ANSI/ISO SQL (SQL 92) SQL-3 (SQL 99)

Partes do SQL
SQL dividido em diversas partes
Linguagem de definio de dados (DDL) proporciona comandos para a definio, excluso e modificao de esquemas de relaes e criao de ndices Linguagem interativa de manipulao de dados (DML) linguagem de consulta baseada na lgebra e no clculo relacional de tuplas, incluindo insero, excluso e modificao de tuplas

Partes do SQL
Incorporao DML (Embedded DML) projetada para aplicao em linguagens de programao de uso geral, como Cobol, Pascal, Fortran e C Definio de vises Autorizao definio de direitos de acesso a relaes e vises Integridade especificao de regras de integridade que os dados que sero armazenados devero satisfazer Controle de transaes comandos para especificao de iniciao e finalizao de transaes

Domnios
Tipos de Domnios em SQL-92 Tipo Descrio Char(n) ou character String de tamanho fixo n Varchar(n) ou String de tamanho varivel com Character varying tamanho mximo n int ou integer Nmero inteiro Smallint Inteiro pequeno Numeric(p,d) Nmero ponto fixo com preciso definida pelo usurio. Com p indicando o nmero de dgitos e d indicando dos p dgitos os que esto direita do ponto decimal real, Ponto flutuante e ponto flutuante double precision de preciso dupla Float(n) Ponto flutuante com preciso definida pelo usurio Date Data: aaaa/mm/dd Time Hora: hh:mm:ss

Comandos SQL DDL


Os comandos SQL para definio de dados so:
CREATE DROP ALTER

SQL permite a criao de domnios


CREATE DOMAIN nome_pessoa char(20)

depois nome_pessoa pode ser usado como domnio de um atributo qualquer

Comandos SQL DDL


CREATE TABLE: especifica uma nova tabela (relao), dando o seu nome e especificando as colunas (atributos), cada uma com seu nome, tipo e restries Sintaxe: CREATE TABLE r (A1D1, A2D2, ..., ANDN, <regra de integridade1>, ..., <regra de integridadeK> ) Onde r o nome da relao, Ai um nome de atributo e Di o domnio do atributo Ai

As definies dos atributos tm o seguinte formato:


atributo tipo [NOT NULL [UNIQUE]] [DEFAULT valor]

Comandos SQL DDL

Onde:
atributo: nome do atributo que est sendo definido tipo_dado: domnio do atributo NOT NULL: expressa que o atributo no pode receber valores nulos UNIQUE: indica que o atributo tem valor nico na tabela. Qualquer tentativa de se introduzir uma linha na tabela contendo um valor igual ao do atributo ser rejeitada. DEFAULT valor: indica um valor a ser atribudo ao atributo caso no seja determinado um valor na insero

Comandos SQL DDL


Regras de integridade (constraints)
Integridade de chave
PRIMARY KEY (atributos chave)

Integridade referencial
FOREIGN KEY (atributos) REFERENCES tabela_base(atributos)

Integridade de domnio
CHECK (condio)

Comandos SQL DDL


CREATE TABLE empregado ( nome VARCHAR(15) NOT NULL, matricula char(9) NOT NULL, dataNasc DATE, endereco VARCHAR(30), sexo CHAR, salario NUMERIC(10,2), supervisor CHAR(9), depto INT NOT NULL, PRIMARY KEY (matricula), CHECK (salario >= 0), FOREIGN KEY (supervisor) REFERENCES empregado(matricula), FOREIGN KEY (depto) REFERENCES departamento(codDep) );

Comandos SQL DDL


CREATE TABLE departamento ( nomeDep VARCHAR(15) NOT NULL, codDep INT NOT NULL, gerente CHAR(9) NOT NULL, dataInicioGer DATE, PRIMARY KEY(codDep), UNIQUE (nomeDep), FOREIGN KEY (gerente) REFERENCES empregado(matricula) );

Comandos SQL DDL


CREATE TABLE estudante ( nome char(15) NOT NULL, id-estudante char(10) NOT NULL, nivel char(15) NOT NULL, PRIMARY KEY (id-estudante), CHECK (nivel IN (Bacharelado, Mestrado, Doutorado)))

Comandos SQL DDL


O valor NULL um valor vlido para todos os tipos em SQL, salvo se o tipo for definido como NOT NULL Sabemos que uma chave primria no pode conter valores nulos e repeties
O SQL-89 obrigava os atributos da chave primria a serem declarados como NOT NULL e UNIQUE SQL-92 j assume essas condies, sua declarao redundante

Comandos SQL DDL


Exerccio: Defina as tabelas abaixo usando SQL
Fornecedor (codigo, nome, cidade) Venda (codForn, codPeca, quantidade, data) Peca (codPeca, nome, descricao)

obrigatrio que:
quantidade seja maior que zero nome da pea no seja nulo

Comandos SQL DDL


CREATE TABLE Fornecedor ( codigo CHAR(10) NOT NULL, nome VARCHAR(50) NOT NULL, cidade VARCHAR(80), PRIMARY KEY(codigo));

Comandos SQL DDL


CREATE TABLE Venda ( codForn CHAR(10) NOT NULL, codPeca CHAR(10) NOT NULL, quantidade INT NOT NULL, data DATE NOT NULL, PRIMARY KEY (codForn,codPeca), FOREIGN KEY (codForn) REFERENCES Fornecedor(codigo), CHECK (quantidade > 0));

Comandos SQL DDL


CREATE TABLE Peca ( codPeca CHAR(10) NOT NULL, nome VARCHAR(50) NOT NULL, descricao VARCHAR(100), PRIMARY KEY (codPeca))

Comandos SQL DDL


Chave estrangeira
definida com a clusula FOREIGN KEY Alguns SGBDs permitem que se use uma notao abreviada para chave estrangeira quando esta formada por um nico atributo CREATE TABLE Empregado ( matricula CHAR(9) NOT NULL, nome VARCHAR(15) NOT NULL, supervisor CHAR(9) REFERENCES Empregado(matricula), codDep INT NOT NULL REFERENCES Departamento(codigo), );

Comandos SQL DDL


Uma clusula FOREIGN KEY inclui regras de remoo / atualizao: FOREIGN KEY (coluna) REFERENCES tabela [ON DELETE {RESTRICT|CASCADE|SET NULL| SET DEFAULT}] [ON UPDATE {RESTRICT|CASCADE|SET NULL| SET DEFAULT}] Supondo que T2 tem uma chave estrangeira para T1, vejamos as clusulas ON DELETE e ON UPDATE

Comandos SQL DDL


ON DELETE
RESTRICT: (default) significa que uma tentativa de se remover uma linha de T1 falhar se alguma linha em T2 combina com a chave CASCADE: remoo de uma linha de T1 implica em remoo de todas as linhas de T2 que combina com a chave de T1 SET NULL: remoo de T1 implica em colocar NULL em todos os atributos da chave estrangeira de cada linha de T2 que combina SET DEFAULT: remoo de linha em T1 implica em colocar valores DEFAULT nos atributos da chave estrangeira de cada linha de T2 que combina

Comandos SQL DDL


ON UPDATE
RESTRICT: (default) update de um atributo de T1 falha se existem linhas em T2 combinando CASCADE: update de atributo em T1 implica que linhas que combinam em T2 tambm sero atualizadas SET NULL: update de T1 implica que valores da chave estrangeira em T2 nas linhas que combinam so postos para NULL SET DEFAULT: update de T1 implica que valores da chave estrangeira de T2 nas linhas que combinam tero valores default aplicados

Comandos SQL DDL


As restries de integridade podem ter um nome e serem especificadas com a clusula CONSTRAINT Isto permite que possamos no futuro eliminar (DROP) ou alterar (ALTER) o constraint O exemplo a seguir mostra o uso de CONSTRAINT, DEFAULT, ON DELETE e ON UPDATE

Comandos SQL DDL


CREATE TABLE empregado ( depto INT NOT NULL DEFAULT 1, CONSTRAINT empPK PRIMARY KEY(matricula), CONSTRAINT empSuperFK FOREIGN KEY(supervisor) REFERENCES empregado(matricula) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT deptoFK FOREIGN KEY (depto) REFERENCES departamento(codigo) ON DELETE SET DEFAULT ON UPDATE CASCADE )

Comandos SQL DDL


ALTER TABLE
Permite que se altere os atributos de uma determinada tabela ou que se adicione novos atributos (evoluo de esquemas) Os novos atributos tero valores nulos em todas as linhas Ao incluirmos uma coluna devemos especificar o seu tipo de dado, no podendo esta coluna ser NOT NULL

Comandos SQL DDL


Sintaxe:
ALTER TABLE tabela_base ADD atributo tipo_dado

Exemplo:
ALTER TABLE Peca ADD espessura INT

Comandos SQL DDL


Podemos remover um atributo usando a sintaxe ALTER TABLE tabela_base DROP atributo [CASCADE|RESTRICT] CASCADE: remove todas as restries relativas ao atributo e vises que contm o atributo RESTRICT: no permite a remoo do atributo se este usado numa viso ou como chave estrangeira numa outra tabela

Comandos SQL DDL


Exemplos:
ALTER TABLE empregado DROP endereco CASCADE; ALTER TABLE departamento ALTER gerente DROP DEFAULT ALTER TABLE departamento ALTER gerente SET DEFAULT 333444555 ALTER TABLE empregado DROP CONSTRAINT empsuperFK; ALTER TABLE empregado ADD CONSTRAINT empsuperFK FOREIGN KEY (supervisor) REFERENCES empregado (matricula)

Comandos SQL DDL


DROP TABLE
Remove uma tabela-base do BD. Remove tanto os dados quanto a definio da tabela

Sintaxe
DROP TABLE <nomeTabela>

Exemplo
DROP TABLE Peca

Comandos SQL DDL


Especificando ndices em SQL
SQL possui comandos para criar e remover ndices em atributos de relaes base (faz parte da SQL DDL) Um ndice uma estrutura de acesso fsico que especificado em um ou mais atributos de um arquivo, permitindo um acesso mais eficiente aos dados Se os atributos usados nas condies de seleo e juno de uma query so indexados, o tempo de execuo da query melhorado

Comandos SQL DDL


Ex.: Criar um ndice no atributo nome da relao Empregado
CREATE INDEX nomeEmpIndex ON Empregado(nome)

O default ordem ascendente, se quisermos uma ordem descendente adicionamos a palavra chave DESC depois do nome do atributo

Comandos SQL DDL


Para especificar a restrio de chave usamos a palavra UNIQUE
CREATE UNIQUE INDEX matrEmpIndex ON Empregado(matricula)

Para eliminarmos um ndice usamos o comando DROP


Ex. DROP INDEX nome-indice

Comandos SQL DDL


Restries de domnios
Na criao de domnios, possvel aplicar constraints para realizar algumas restries Exemplos CREATE DOMAIN turno_trabalho NUMERIC(5,2) CONSTRAINT valor_teste_turno CHECK (VALUE >= 4,00) CREATE DOMAIN numero_conta CHAR(10) CONSTRAINT teste_nulo_numero_conta CHECK (VALUE NOT NULL) CREATE DOMAIN tipo_conta CHAR(10) CONSTRAINT teste_tipo_conta CHECK (VALUE IN (Corrente, Poupana))

Banco de Dados I
SQL DML
Frederico D. Bortoloti freddb@ltc.ufes.br

SQL - DML
Os exemplos da aula sero elaborados para o esquema de dados a seguir:
Empregado(matricula, nome, endereco, salario, supervisor, depto) Departamento(coddep, nome, gerente, dataini) Projeto(codproj, nome, local, depart) Alocacao(matric,codigop, horas) Dependente(coddepend, matricula, nome, sexo)

SQL - DML
As operaes de manipulao sem cursor so
SELECT INSERT UPDATE DELETE

SQL - DML
O comando SELECT: forma bsica
SELECT <lista atributos> FROM <lista tabelas> WHERE <condio>

O resultado de qualquer comando SELECT uma tabela


O campo FROM realiza produto cartesiano das tabelas relacionadas WHERE deve trazer as condies de juno

SQL - DML: Exemplos


Q1. Obtenha todos os atributos de todos os empregados Select * From Empregado Q2. Selecione as matrculas dos empregados Select matricula From empregado

SQL - DML: Exemplos


Q3. Obtenha o salrio do empregado Jos Select salario From Empregado Where nome = Jos Q4. Selecione todos os atributos de todos os empregados do departamento d5 Select * From Empregado Where depto = d5

SQL - DML: Exemplos


Q5. Faa o produto cartesiano, seguido de projeo de Empregados X Departamento retornando a matrcula do empregado e o nome do departamento Select matricula, Departamento.nome From Empregado, Departamento A clusula FROM j realiza o produto cartesiano Departamento.nome especificado para no haver confuso com o atributo nome de empregado Empregados so relacionados com outros departamentos alm daquele em que trabalham

SQL - DML: Exemplos


Q6. Selecione o nome e o endereo de todos os empregados que trabalham no departamento de produo Select e.nome, e.endereco From empregado e, departamento d Where d.nome = Produo and d.coddep = e.depto

SQL - DML: Exemplos


Q7. Para cada projeto em Fortaleza, liste o cdigo do projeto, o departamento que controla o projeto e o nome do gerente com endereo e salrio Select p.codproj, d.nome, e.nome, e.endereco, e.salario From Projeto p, Departamento d, Empregado e Where p.depart = d.coddep and d.gerente = e.matricula and p.local = Fortaleza

SQL - DML: Exemplos


Q8. Para cada empregado, recupere seu nome e o nome do seu supervisor
Select e.nome, s.nome From Empregado e s Where s.matricula = e.supervisor

SQL - DML: Exemplos


Q9. Selecione todos os atributos de todos os empregados do departamento pessoal Select * From Empregado e, Departamento d Where d.nome = Pessoal and d.coddep = e.depto Q10. Recupere os salrios dos empregados Select salario From empregado

SQL - DML: Exemplos


Algumas vezes surgem duplicatas como resposta a uma query. Podemos eliminlas usando o comando DISTINCT na clusula SELECT
Q11. Selecione os diferentes salrios pagos pela empresa aos empregados Select distinct salario From empregado

SQL - DML: Exemplos


SQL implementa a operao UNIO da lgebra relacional. requerido que as relaes sejam compatveis de unio
Q12. Liste todos os nomes de projetos que envolvem o empregado Silva como trabalhador ou como gerente do departamento que controla o projeto

SQL - DML: Exemplos


(SELECT p.nome FROM Projeto P, Departamento d, Empregado e WHERE d.coddep = p.depart and d.gerente = e.matricula and e.nome = Silva) UNION (SELECT p.nome FROM Projeto p, Alocao a, Empregado e WHERE p.codproj = a.codproj and e.matricula = a.matricula and e.nome = Silva)

SQL - DML: Exemplos


Alm da operao UNIO, o SQL implementa as operaes INTERSEO e DIFERENA ( e - )
INTERSECT EXCEPT

A sintaxe para os dois comandos a mesma da UNIO

SQL - DML: Exemplos


Consultas Aninhadas: consultas que possuem consultas completas dentro de sua clusula WHERE
Motivao: Algumas queries requerem que valores do BD sejam buscados e ento usados numa condio Q13. A consulta Q12 poderia ser reescrita da seguinte forma:

SQL - DML: Exemplos


SELECT DISTINCT nome FROM Projeto WHERE codproj in (SELECT p.codproj FROM Projeto p, Departamento d, Empregado e WHERE p.depart = d.coddep and d.gerente = e.matricula and e.nome = Silva) or codproj in (SELECT a.codigop FROM Alocao a, Empregado e WHERE a.matric = e.matricula and e.nome = Silva)

SQL - DML: Exemplos


Q14. Recupere o nome de cada empregado que tem um dependente com o mesmo nome e mesmo sexo SELECT e.nome FROM empregado e WHERE e.matricula in (SELECT matricula FROM dependente WHERE matricula = e.matricula and e.nome = nome and e.sexo = sexo) Obs.: Veja que e.matricula, e.nome e e.sexo so atributos de empregado da consulta externa

SQL - DML: Exemplos


Q15. Re-escrevendo a Q14 sem usar aninhamento SELECT e.nome FROM empregado e, dependente d WHERE e.matricula = d.matricula and e.nome = d.nome and e.sexo = d.sexo

SQL - DML: Exemplos


A funo EXISTS
usada para verificar se o resultado de uma consulta aninhada vazio ou no. sempre usado em conjunto com um query aninhada A consulta Q14 poderia ser: SELECT e.nome FROM empregado e WHERE EXISTS (SELECT * FROM dependente WHERE e.matricula = matricula and e.nome = nome and e.sexo = sexo)

SQL - DML: Exemplos


Podemos usar o NOT EXISTS(Q)
Q16. Recupere os nomes dos empregados que no tm dependentes SELECT e.nome FROM empregado e WHERE NOT EXISTS (SELECT * FROM dependente WHERE e.matricula = matricula)

SQL - DML: Exemplos


Podemos usar um conjunto de valores explcitos
Q17. Selecione a matricula de todos os empregados que trabalham nos projetos 10, 20 ou 30 SELECT DISTINCT matric FROM alocacao WHERE codigop in (10,20,30)

SQL - DML: Exemplos


Podemos verificar valores nulos atravs de IS NULL e IS NOT NULL
Q18. Selecione os nomes de todos os empregados que no tm supervisores SELECT nome FROM empregado WHERE supervisor IS NULL

SQL - DML: Funes


SQL fornece 5 funes embutidas
COUNT: retorna o nmero de tuplas ou valores especificados numa query SUM: retorna a soma os valores de uma coluna AVG: retorna a mdia dos valores de uma coluna MAX: retorna o maior valor de uma coluna MIN: identifica o menor valor de uma coluna
Estas funes s podem ser usadas numa clusula select ou numa clusula HAVING (a ser vista depois)

SQL - DML: Exemplos


Q19. Encontre o total de salrios, o maior e o menor salrio e a mdia salarial da relao empregados SELECT SUM(salario), MAX(salario), MIN(salario), AVG(salario) FROM Empregado

SQL - DML: Exemplos


Q20. Encontre o maior e menor salrio do departamento de Produo SELECT MAX(salario), MIN(salario) FROM Empregado e, Departamento d WHERE e.depto = d.coddep and d.nome = Produo Q.21 Obtenha o nmero de empregados da empresa SELECT COUNT(*) FROM empregado

SQL - DML: Exemplos


Q.22 Obter o nmero de salrios distintos do departamento de Contabilidade SELECT COUNT(DISTINCT salario) FROM empregado e, departamento d WHERE (e.depto = d.coddep and d.nome = Contabilidade) O que aconteceria se escrevssemos COUNT(salario) ao invs de COUNT(DISTINCT salario)?

SQL - DML: Exemplos


Q23. Obter o nome dos empregados que tenham 2 ou mais dependentes SELECT e.nome FROM empregado e WHERE (SELECT COUNT(*) FROM Dependente d WHERE e.matricula = d.matricula) >= 2

SQL - DML: Exemplos


Clusulas GROUP BY e HAVING
Usadas para lidar com grupos Q24. Para cada departamento, obter o cdigo do departamento, o nmero de empregados e a mdia salarial SELECT depto, COUNT(*), AVG(salario) FROM Empregado GROUP BY depto As tuplas de empregados so separadas em grupos (departamento) e as funes COUNT e AVG so aplicadas a cada grupo separadamente

SQL - DML: Exemplos


Q25. Para cada projeto, obter o cdigo do projeto, seu nome e o nmero de empregados que trabalham nele SELECT codigop, nome, COUNT(*) FROM Projeto p, Alocacao a WHERE p.codproj = a.codigop GROUP BY p.codproj, p.nome
O agrupamento e as funes so aplicadas aps a juno

SQL - DML: Exemplos


HAVING
Clusula usada em conjunto com GROUP BY para permitir a incluso de condies nos grupos

Q26. Para cada projeto que possui mais de 2 empregados trabalhando, obter o cdigo do projeto, nome do projeto e nmero de empregados que trabalha neste projeto

SQL - DML: Exemplos


SELECT p.codproj, p.nome, COUNT(*) FROM Projeto p, Alocacao a WHERE p.codproj = a.codigop GROUP BY p.codproj, p.nome HAVING COUNT(*) > 2

SQL - DML: Exemplos


Operadores de comparao e aritmticos BETWEEN
Sintaxe: expresso [NOT] BETWEEN expresso AND expresso Ex.: y BETWEEN x AND z equivale a x <= y <= z Q27. Selecione os nomes dos empregados que ganham mais de 1000 e menos de 2000 reais SELECT nome FROM Empregado WHERE salario BETWEEN 1000 AND 2000

SQL - DML: Exemplos


LIKE
Permite comparaes de substrings. Usa dois caracteres reservados % (substitui um nmero arbitrrio de caracteres) e _ (substitui um nico caracter) Q.28 Obter os nomes de empregados cujos endereos esto em Natal, RN SELECT nome FROM empregado WHERE endereco LIKE %Natal,RN%

SQL - DML: Exemplos


Q29. Queremos ver o efeito de dar aos empregados que trabalham no ProdutoX um aumento de 10% SELECT e.nome, 1.1*salario FROM empregado e, alocacao a, projeto p WHERE e.matricula = a.matricula and a.codigop = p.codproj and p.nome = ProdutoX

SQL - DML: Exemplos


Ordenao
O operador ORDER BY permite ordenar o resultado de uma query por um ou mais atributos Q.30 Obter uma lista de empregados e seus respectivos departamentos e projetos, listando ordenado pelo nome do departamento SELECT d.nome, e.nome, p.nome FROM departamento d, empregado e, projeto p WHERE d.coddep = e.depto and e.matricula = a.matricula and a.codigop = p.codproj ORDER BY d.nome, e.nome

SQL - DML: Exemplos


Ordenao
A ordem default ascendente (ASC) caso queiramos ordem decrescente usamos DESC ORDER BY d.nome DESC, e.nome ASC

Insero de Dados
O comando Insert
Usado para adicionar uma tupla a uma relao Sintaxe: INSERT INTO tabela [ (lista colunas)] fonte Onde fonte pode ser uma especificao de pesquisa (Select) ou uma clusula VALUES da forma
VALUES (lista de valores atmicos)

Obs.: Se o comando INSERT incluir a clusula VALUES ento uma nica tupla inserida na relao Ex. INSERT INTO Empregado (matricula, nome) VALUES (9491,Ana)

Insero de Dados
Obs.: A insero ser rejeitada se tentarmos omitir um atributo que no permite valores nulos (NOT NULL) Ex.: INSERT INTO Empregado (nome, salario) VALUES(Flvia, 960) Podemos inserir vrias tuplas numa relao atravs de uma query

Insero de Dados
CREATE TABLE DEPTO_INFO (nome character(15), numemp integer, totsal real); INSERT INTO DEPTO_INFO(nome, numemp, totsal) SELECT d.nome, COUNT(*), SUM(salario) FROM Departamento d, Empregado e WHERE d.coddep = e.depto GROUP BY d.nome

Remoo de Dados
O comando DELETE
Remove tuplas de uma relao Sintaxe DELETE FROM tabela [WHERE condio] Obs.: Se omitirmos a clusula WHERE, ento o DELETE deve ser aplicado a todas as tuplas da relao. Porm, a relao permanece no BD como uma relao vazia

Modificao de Dados
O comando UPDATE
Modifica o valor de atributos de uma ou mais tuplas. Sintaxe UPDATE tabela SET lista_atributos com atribuies de valores [WHERE condio] Obs.: omitir a clusula WHERE implica que o UPDATE deve ser aplicado a todas as tuplas da relao

Modificao de Dados
O comando UPDATE
Ex. Modifique o nome do Departamento de Computao para Departamento de Informtica UPDATE Departamento SET nome = Informtica WHERE nome = Computao

Modificao de Dados
O comando UPDATE
Ex. D um aumento de 10% a todos os empregados do departamento de Pesquisa UPDATE Empregado SET salario = salario * 1.1 WHERE depto in (SELECT coddep FROM Departamento WHERE nome =Pequisa)

Você também pode gostar