Você está na página 1de 8

14/6/2012

Banco de Dados I – Aula 16


Insert
Alter
Delete
Update

Correção para algumas turmas


• A coluna data na tabela CREATE TABLE IF NOT EXISTS loc_21t.EMPRESTIMO
EMPRESTIMO deve ser parte da (
chave primária composta. ticket INT NOT NULL ,
data DATE NOT NULL ,
• Com isso, um cliente pode locar idunidade INT NOT NULL ,
uma mesma unidade, desde que idcliente INT NOT NULL ,
seja em outra data. PRIMARY KEY (idunidade, idcliente, data) ,
INDEX fk_idcliente2 (idcliente ASC) ,
CONSTRAINT fk_idunidade1
• Caso não seja deve-se:
FOREIGN KEY (idunidade )
REFERENCES loc_21t.UNIDADE (idunidade )
• Excluir a tabela EMPRESTIMO: ON DELETE RESTRICT
▫ DROP emprestimo; ON UPDATE RESTRICT,
CONSTRAINT fk_idcliente2
• Em seguida recriar a tabela FOREIGN KEY (idcliente)
EMPRESTIMO: REFERENCES loc_21t.CLIENTE (idcliente)
▫ Comandos ao lado. ON DELETE RESTRICT
ON UPDATE RESTRICT
)
ENGINE = InnoDB;

1
14/6/2012

Manipular tabela

Alterar colunas e estrutura da tabela


• ALTER TABLE é usado para alterar uma tabela e suas colunas. As alterações mais
importantes são quando alteramos colunas:
▫ inserir colunas,
▫ remover colunas,
▫ alterar o tipo de uma coluna,
▫ alterar os extras (AI, NN, defaul).

ALTER TABLE nome novas_opções;

2
14/6/2012

Inserir colunas
• Usa-se o ADD COLUMN

ALTER TABLE banco.tabela ADD COLUMN


nova_coluna tipo_dado opções FIRST / AFTER coluna_existente.

• Exemplo para executar:

ALTER TABLE locadora.info ADD COLUMN


data DATE NULL AFTER informe ;

ALTER TABLE locadora.ator ADD COLUMN


iniciais VARCHAR(45) NULL AFTER data ;

Remover coluna
• Usa-se o DROP COLUMN

ALTER TABLE banco.tabela DROP COLUMN nome_coluna_existente.

• Exemplo para executar:

ALTER TABLE locadora.info DROP COLUMN data;

ALTER TABLE locadora.ator DROP COLUMN iniciais;

3
14/6/2012

Alterar a estrutura da coluna


• Usa-se o CHANGE COLUMN
• Alterar o nome e/ou as características da coluna
▫ domínio, alterar os extras (AI, NN, defaul).

ALTER TABLE banco.tabela CHANGE COLUMN


nome_coluna novo_nome tipo_dado null/notnull defaul ...

• Exemplo para executar:

Alterar o nome da coluna e o tipo de dados (45 > 5):

ALTER TABLE locadora.ator CHANGE COLUMN


iniciais iniciais_nome VARCHAR(5) NULL ;

Renomear uma tabela


• Usa-se Para renomear a TABELA e não a COLUNA.p

ALTER TABLE banco.tabela RENAME TO banco.novo_nome_tabela;

• Exemplo para executar:

ALTER TABLE locadora.info RENAME TO locadora.informe;

4
14/6/2012

Manipular os registos

Inserindo linhas com o INSERT


• Inserir dados nas linhas. Cada comando insere dados em apenas uma linha.
• Colunas devem ser separadas por vírgula.
• Textos devem ser delimitados por aspas ou plicas e separados por vírgula.
• Ponto e vírgula encerra o comando.
• Linhas indicando colunas e valores devem ser delimitadas por parênteses.

INSERT INTO banco.tabela


(coluna1, coluna2, coluna3, colunaN)
VALUES
('valor1', 'valor2', 'valor3', ‘valorN');

Exemplo para executar:

INSERT INTO locadora.cliente


(nome, nascimento, usuario, senha, casa, rua, idbairro)
VALUES
('Paulo Jorge Assis','1984-01-02','paulojorge',23456789,'20','G',9);

5
14/6/2012

Deletar linha (rowm)


• Deletar significa excluir uma linha da tabela.
• Necessário indicar a linha por meio de sua chave.

• Exemplo para executar:

DELETE FROM locadora.cliente WHERE idcliente='1';

▫ Será excluída a linha cuja coluna idcliente possui valor "1".

Actualizar registos
• Utiliza o comando UPDATE.

UPDATE banco.tabela SET coluna='novo registo' WHERE chave_primária = 'valor';

• Exemplo:

UPDATE locadora.cliente SET nome='Carla Santos Veiga' WHERE idcliente='10';

6
14/6/2012

Exercício INSERT INTO


• Insira 8 categorias.
• Insira 20 filmes.
• Insira 10 municipios
• Insira 20 bairros,
• Insira 15 clientes.
• Tente inserir duas vezes o mesmo dado na tabela cliente e leia a mensagem de erro
gerada.
• Tente inserir uma linha de dados na tabela cliente com a data '2011-13-01'.
• Insira 10 telefones na tabela telefone, sendo que 4 clientes deverão ter 3 telefones.
• Tente inserir um telefone fornecendo um idcliente que não exista.
• Insira 25 unidades, sendo que 5 unidades possuem o mesmo filme.
• Insira 5 atores.
• Na tabela estrela associe 10 filmes com atores, sendo que pelo menos 3 atores deve
estar em 2 filmes.
• Na tabela empréstimo associe 8 empréstimos, sendo: três com 4 unidades, dois com 5,
um com 3 unidades e os demais com uma unidade.

Exercícios ALTER
• Inserir uma coluna data na tabela info.
• Alterar na tabela cliente o nome da coluna usuário para username.
• Alterar o nome da tabela info para informes.
• Alterar novamente a tabela cliente o nome da coluna username para usuário.
• Remover coluna data na tabela info.
• Alterar o nome da tabela locadora para empresa.
• Adicionar na tabela locadora a coluna contribuinte antes da coluna nome.
• Adicionar na tabela locadora a coluna estatistica após a coluna nome.
• Alterar na tabela locadora o nome da coluna nome para razao.
• Alterar o tipo de dado da coluna razão para varchar[60].

7
14/6/2012

Exercícios UPDATE e DELETE


• Deletar um cliente com id 2 (por exemplo).
• Deletar o cliente com nome joão gonçalves (por exemplo).
• Deletar um cliente que tenha telefone.
• Deletar um registo de telefone. SQL deve receber o numero para executar o DELETE.
▫ Qual o cuidado a se ter nestes dois casos? Qual o problema nestas execuções?

• Alterar o nome de um cliente com indicação do id 3 (por exemplo).


• Alterar a data de nascimento de um cliente com nome Carlos Santos (por exemplo).
• Alterar o nome de um filme qualquer.
• Alterar a categoria de um filme na tabela filme (FK).
▫ Qual o cuidado a se ter neste caso?
• Alterar o numero de telefone de um cliente. Utilizar as duas colunas para o comando
WHERE localizar a linha.
• Alterar um dos atores relacionados ao filme Avatar.
▫ Em que tabela tenho que fazer o UPDATE?

Você também pode gostar