aula 12 banco de dados

63
Jorge Ávila Banco de Dados

Upload: jorge-avila-miranda

Post on 07-Jul-2015

662 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Aula 12   banco de dados

Jorge Ávila

Banco de Dados

Page 2: Aula 12   banco de dados

Insert Já demonstramos como criar uma tabela no

banco de dados, agora mostraremos as maneiras básicas de se inserir dados nessa tabela. O comando usado para inserir dados é o INSERT.

A síntese básica do comando INSERT é a seguinte:INSERT INTO <nome da tabela> (campo1, campo2) VALUES (valor1, valor2);

Cada valor é inserido no campo que corresponde à posição do valor na lista:

valor1 é inserido no campo1, valor2 no campo2 e assim por diante.

Page 3: Aula 12   banco de dados

Insert

OBS:

Os valores devem ser separados com uma

vírgula e se o tipo do campo for texto deve está

entre aspas duplas ou simples.

EX:

Vamos usar como exemplo a tabela “cliente” que

criamos no banco de dados “venda”, se você não

criou essa tabela volte para página antes do

exercício onde estão os códigos da criação. Mas

antes de inserir os dados na tabela é bom ver

quais os campos existentes, o comando usado

pode ser o DESCRIBE.

Page 4: Aula 12   banco de dados

Insert

Agora vamos inserir na coluna nome “Francisco”

no endereço “Rua: 24 de Maio nº 324” e na

cidade “Fortaleza”.

Observe que não é preciso inserir dados no

campo “cliente_id”, pois ele foi definido como

AUTO_INCREMENT.

Page 5: Aula 12   banco de dados

Insert

Page 6: Aula 12   banco de dados

Insert

Temos também a opção de omitir as declarações

dos campos. Essa sintaxe funciona somente se

forem repassados valores para todas as colunas.

INSERT INTO <nome da tabela> VALUES

(valor1, valor2, valor3,…);

Cada valor é inserido no campo que corresponde

a sequência das colunas na tabela, se a primeira

coluna, por exemplo, for o nome então o valo1

deve ser o nome, se a segunda coluna, por

exemplo, for idade então o valor2 deve ser a

idade e assim por diante.

Page 7: Aula 12   banco de dados

Insert

OBS:

Se a coluna for declarada como

AUTO_INCREMENT basta você colocar o valor

que corresponde a essa coluna como sendo

zero(0). O valor zero(0) não influencia em nada

porem se ele for esquecido vai ser gerado um

erro.

EX:

Vamos usar como exemplo a mesma tabela que

usamos no exemplo anterior do banco de dados

“venda” que é a tabela “cliente”, porém não vai ser

preciso mencionar os nomes dos campos basta

repassar valores para todas as colunas.

Page 8: Aula 12   banco de dados

Insert Vamos inserir o cliente “Pedro” que mora na “Av.

Augusto dos Anjos nº 2674” na cidade de

“Fortaleza”. Observe que o primeiro valor que

iremos inserir será zero(0), isso porque a primeira

coluna é “cliente_id” que foi declarada como

AUTO_INCREMENT.

Page 9: Aula 12   banco de dados

Select

O comando SQL que nos permite realizar

consultas ao banco de dados é o comando

SELECT.

EX:

SELECT * FROM DEPT;

O exemplo utiliza o coringa "*" para

selecionar as colunas na ordem em que

foram criadas.

A instrução Select, como pudemos observar

seleciona um grupo de registros de uma (ou

mais) tabela(s).

No caso a instrução From nos indica a

necessidade de pesquisarmos tais dados

Page 10: Aula 12   banco de dados

Select Where como base das Restrição de tuplas. A cláusula "where" corresponde ao operador restrição

da álgebra relacional. Contém a condição que as tuplas devem obedecer a fim

de serem listadas. Ela pode comparar valores em colunas, literais, expressões aritméticas ou funções.

Operadores lógicos:operador significado= igual a> maior que>= maior que ou igual a< menor que<= menor que ou igual a

Page 11: Aula 12   banco de dados

Select

Exemplos:

SELECT EMPNOME, EMPSERV

FROM EMP

WHERE DEPNUME > 10;

SELECT EMPNOME, EMPSERV

FROM EMP

WHERE EMPSERV = 'GERENTE';

O conjunto de caracteres ou datas devem estar entre

apóstrofes („) na cláusula "where".

Page 12: Aula 12   banco de dados

Select

Selecione todos os departamentos cujo

orçamento mensal seja maior que 100000.

Apresente o Nome de tal departamento e seu

orçamento anual, que será obtido multiplicando-

se o orçamento mensal por 12.

SELECT DEPNOME, DEPORCA * 12

FROM DEPT

WHERE DEPORCA > 100000;

Page 13: Aula 12   banco de dados

Select

Apresente todos os salários existentes na

empresa, porém omita eventuais duplicidades.

A cláusula Distinct elimina

duplicidades, significando que somente relações

distintas serão apresentadas como resultado de

uma pesquisa.

SELECT DISTINCT EMPSERV

FROM EMP;

Page 14: Aula 12   banco de dados

Select

ORDER BY:

Até o momento vimos como obter dados de uma

tabela utilizando os comandos SELECT e WHERE.

Porém, frequentemente precisamos listar os dados

por uma ordem em particular. Pode ser por ordem

ascendente ou descendente. Para isso podemos

utilizar a cláusula ORDER BY para ordenar os

dados. A sintaxe básica da cláusula ORDER BY é a

seguinte:

SELECT < coluna > FROM < tabela > ORDER BY < coluna

>;

Page 15: Aula 12   banco de dados

OBS

Por padrão o ORDER BY vem como ASC

significa que os resultados serão

apresentados por ordem ascendente, ou seja,

do menor para o maior.

Mais também pode ser DESC significa que os

resultados serão apresentados por ordem

descendente, para isso acontecer você

precisa declara-lo.

Page 16: Aula 12   banco de dados

Exemplo

Como exemplo irei usar uma tabela que criei

anteriormente chamada produto:

Page 17: Aula 12   banco de dados

Exemplo

Perceba que a tabela possui 8 produtos

cadastrados, suponhamos que eu preciso ver os

preços de forma ascendente, então iremos

selecionar o nome e o preço ordenado pelo

próprio preço, veja como ficou:

Page 18: Aula 12   banco de dados

Exemplo

Podemos também ordenar os dados de outras

maneiras, se eu quero ver os nomes e o preço

dos produtos em ordem alfabética basta ordenar

pelo nome de forma ascendente.

Page 19: Aula 12   banco de dados

Exemplo

Também posso em vez de colocar o nome da

coluna que eu quero ordenar basta colocar o

numero dela na sequencia selecionada, por

exemplo, se eu selecionei nome e preço então

nome é 1 e preço é 2 e assim por diante:

Page 20: Aula 12   banco de dados

INSTRUÇÕES DML – UPDATE O comando para atualizar os dados é

UPDATE, ele possui a seguinte sintaxe:

UPDATE < tabela > SET < campo > = “novo valor” WHERE < condição > ; tabela: nome da tabela que será modificada

set: define qual campo será alterado

campo: campo que terá seu valor alterado

novo valor: valor que substituirá o antigo dado cadastrado em campo

where: se não for informado, a tabela inteira será atualizada

condição: regra que impõe condição para execução do comando

Page 21: Aula 12   banco de dados

EXEMPLO

Como exemplo usaremos a tabela cliente que foi

usada nos exemplos anteriores.

Suponhamos que o cliente de nome Francisco se

mudou, então precisamos atualizar o seu registro

colocando o seu novo endereço.

Page 22: Aula 12   banco de dados

EXEMPLO

Page 23: Aula 12   banco de dados

UPDATE

Também podemos alterar mais de um campo de

uma vez. Suponhamos que o cliente Pedro se

mudou para outra cidade, precisamos alterar o

endereço e a cidade atual, não precisamos criar

dois UPDATES basta separa-los por vírgula.

UPDATE < tabela > SET < campo1 > =

“valor1”, < campo2 > = “valor2” WHERE <

condição > ;

Page 24: Aula 12   banco de dados

Exemplo

Page 25: Aula 12   banco de dados

ALTER Começamos com a tabela hipotética clientes, criada com

os seguintes parâmetros:

create table clientes(

id int unsigned not null auto_increment primary key,nome char(80) not null,fone int not null,endereco char(160) not null);

O comando básico para se alterar colunas é o ALTER TABLE, seguido do nome da tabela. Então, qualquer query de alteração da nossa tabela clientes começará da seguinte forma:

ALTER TABLE clientes

Page 26: Aula 12   banco de dados

ALTER Adicionando colunas:

Para adicionar colunas a uma tabela MySQL use o comando ADD, seguido do nome e dos atributos da coluna que será adicionada, e da sua posição dentro da tabela, com o auxílio do parâmetro AFTER. Considerando que adicionaremos a coluna email à tabela clientes, nosso código fica assim:

ALTER TABLE clientes ADD email char(80) not nullAFTER fone;

Para ver o resultado das alterações, dê o comando DESCRIBE clientes.

Page 27: Aula 12   banco de dados

ALTER

Eliminando colunas:

O comando básico para se eliminar colunas de

uma tabela é DROP, seguido do nome da coluna.

Use este comando com cuidado, pois todas

as informações contidas dentro da coluna serão

perdidas. Assim, para eliminar nossa recém

criada coluna email, usaremos a seguinte query:

ALTER TABLE clientes DROP email;

Page 28: Aula 12   banco de dados

ALTER Alterando colunas:

O comando básico para alteração de atributos e nome de colunas é

CHANGE, seguida da denominação da coluna a ser alterada e dos

novos atributos. Para mudar os atributos da coluna fone, utilizaremos a

seguinte query:

ALTER TABLE clientes CHANGE fone fone char(30) not null;

Vocês devem ter percebido que a palavra 'fone' foi utilizada duas vezes.

Isso ocorre porque se indica primeiro a coluna e depois seus novos

atributos, e o nome da coluna é um de seus atributos.

Supomos que queiramos agora somente mudar o nome da coluna, e

manter seus demais atributos:

ALTER TABLE clientes CHANGE fone telefone char(30) not null;

Veja as alterações com DESCRIBE clientes;

Muito cuidado ao se alterar atributos de colunas, especialmente

datatypes, pois todas as informações que não podem ser interpretadas

como características do novo datatype serão perdidas.

Page 29: Aula 12   banco de dados

Como excluir ou limpar tabelas

com Foreign Keys no MySQL Esta é uma dica rápida para quem tiver problemas

em excluir ou limpar tabelas no MySQL que possuam chaves estrangeiras.

obterá os respectivos erros:

Solução: adicionar a seguinte linha antes do comanto DROP ou TRUNCATE:

SET FOREIGN_KEY_CHECKS=0;

Exemplo:

SET FOREIGN_KEY_CHECKS=0;TRUNCATE `user`;

ou

SET FOREIGN_KEY_CHECKS=0;DROP TABLE `user`;

Page 30: Aula 12   banco de dados

OBS

Devemos passar sempre o WHERE, que é

uma espécie de filtro em nossa tabela, porque

senão o passarmos atualizaremos TODOS os

dados da tabela e isso pode acarretar

diversos problemas, dependendo do tamanho

e da complexidade da sua tabela.

Imagina se esquecermos de colocar uma

condição em uma tabela de 1.000 registros e

alterarmos todos os endereços dos clientes

para um só.

Page 31: Aula 12   banco de dados

INSTRUÇÕES DML – DELETE

A forma mais simples de se fazer um DELETE é

excluindo todos os dados de uma tabela. A

síntese básica é:

DELETE FROM < nome da tabela >;

Se não for especificada nenhuma condição então

serão excluídos todos os dados da tabela, porém

se você quer excluir somente um registro é

preciso usar a cláusula WHERE informando qual

será a condição para deletar.

DELETE FROM < nome da tabela > WHERE <

condição >;

Page 32: Aula 12   banco de dados

OBS

Lembre-se que este comando, assim como o

UPDATE, pode ser perigoso em algumas

situações, já que, uma vez executado esses

comandos, não será possível desfazer a ação

realizada.

Portanto, devemos ficar atentos ao usar esses

comandos em tabelas complexas.

Page 33: Aula 12   banco de dados

EXEMPLO

Como exemplo vamos usar a mesma tabela que

usamos nos comandos INSERT, SELECT e

UPDATE, que é a tabela cliente do banco de

dados venda.

Suponhamos que o Francisco não é mais o

nosso cliente, então devemos exclui-lo da nossa

tabela, para isso usamos o comando DELETE.

Page 34: Aula 12   banco de dados

EXEMPLO

Perceba que usei a condição referenciando o

cliente-id. Em banco de dados todo registro deve

possuir o seu código, quando vamos alterar ou

excluir um registro é bom que coloquemos como

condição o código do registro, porque o nome

pode ser que apareça outro igual, mais o código

não.

Page 35: Aula 12   banco de dados

INSTRUÇÕES DDL – DROP

O comando DROP é usado para excluir tabelas

ou banco de dados, ele é bastante simples de se

escrever, porém deve ser usado com

prudência, pois uma vez excluído uma tabela ou

um banco de dados a ação não pode ser

desfeito.

Por isso aconselho somente ser usado por quem

criou o banco de dados.

Page 36: Aula 12   banco de dados

INSTRUÇÕES DDL – DROP

Com o comando DROP é possível, por

exemplo:

Excluir Tabelas:

Para que você possa excluir uma tabela é preciso

que ela exista dentro do banco de dados.

Normalmente primeiro usamos o comando

SHOW TABLES, para saber as tabelas que

existem dentro do BD. Após usamos o comando

DROP TABLE <nome da tabela>;

Muitos se confundem entre o DELETE e o DROP. O

comando DELETE éusado para manipulação e não para

definição dos dados, ou seja, o DELETE remove os

registros enquanto que o DROP remove a estrutura.

Page 37: Aula 12   banco de dados

Exemplo

Vamos usar como exemplo o BD escola. Perceba

que criamos duas tabelas uma se chama aluno e

a outra novo_aluno, não é preciso que tenhamos

essas duas tabelas em nosso banco então

vamos excluir a tabela novo_aluno.

Page 38: Aula 12   banco de dados

Excluir Banco de Dados Assim como para excluir tabelas é preciso ver

quais existem no BD, para excluir banco de dados é bom ver quais os bancos de dados existentes dentro do SGBD, o comando usado é SHOW DATABASES.

Mas se você não quer perder tempo olhando os bancos de dados existentes é só acrescentar IF EXISTS após o comando DROP DATABASE. Assim:

DROP DATABASE IF EXISTS <nome do banco de dados>;

OBS: IF EXISTS é utilizado para impedir a ocorrência de erros, se o banco de dados ou a tabela não existirem. Porém não é obrigatório o seu uso.

Page 39: Aula 12   banco de dados

Exemplo

Vamos usar como

exemplo o banco de

dados test que veio junto

da instalação.

Esse BD é geralmente

fornecido como um

espaço de trabalho para

usuários fazerem testes

como não precisamos

dele posso exclui-lo.

Page 40: Aula 12   banco de dados
Page 41: Aula 12   banco de dados

Exemplo

Como exemplo usaremos a tabela produto do

banco de dados venda, que criamos em

exemplos anteriores.

Page 42: Aula 12   banco de dados

Exemplo Contagem (COUNT)

SELECT COUNT(campo) FROM < nome da

tabela > ;

Page 43: Aula 12   banco de dados

Exemplo SOMA (SUM)

SELECT SUM(campo) FROM < nome da tabela

> ;

Page 44: Aula 12   banco de dados

Exemplo Máximo (MAX)

SELECT MAX(campo) FROM < nome da tabela

> ;

Page 45: Aula 12   banco de dados

Exemplo Mínimo (MIN)

SELECT MIN(campo) FROM < nome da tabela

> ;

Page 46: Aula 12   banco de dados

Exemplo Média (AVG)

SELECT AVG(campo) FROM < nome da tabela

> ;

Page 47: Aula 12   banco de dados
Page 48: Aula 12   banco de dados
Page 49: Aula 12   banco de dados

Exemplo LIKE

Com este operador, podemos comparar Strings.

O percentual (%) substitui nenhum, um ou mais

caracteres, já a sublinha (_) substitui somente um

caractere.

Utilizando a combinação desses caracteres

especiais com o que se quer localizar, pode-se

conseguir uma variedade muito grande de

expressões.

Veja na tabela a seguir algumas possíveis

combinações:

Page 50: Aula 12   banco de dados
Page 51: Aula 12   banco de dados

EXEMPLO

SELECT * FROM contatos WHERE nome LIKE

' < condição > ' ;

Page 52: Aula 12   banco de dados

EXEMPLO

SELECT * FROM contatos WHERE nome LIKE

' < condição > ' ;

Page 53: Aula 12   banco de dados

Utilizando AND / OR

O operador AND exibe os registros se tanto a

primeira condição como a segunda condição for

verdadeira.

O operador OR exibe os registros se a primeira

condição ou a segunda for verdadeira.

Esses operadores são usados para filtrar

registros com base em mais de uma condição.

Page 54: Aula 12   banco de dados

Exemplo

Page 55: Aula 12   banco de dados

AND

Page 56: Aula 12   banco de dados

OR

Page 57: Aula 12   banco de dados

Exemplo BETWEEN O comando BETWEEN permite fazer a seleção

de um intervalo, entre um e outro. A sintaxe da cláusula BETWEEN é a seguinte:

SELECT * FROM alunos WHERE idadeBETWEEN 10 AND 20;

Este comando irá selecionar todas as linhas cuja coluna tiver um valor entre 10 e 20. Os valores podem ser números, texto ou datas. Poderíamos de outra forma obter o mesmo resultado que seria:

SELECT * FROM alunos WHERE idade > = 10 AND idade < = 20;

Page 58: Aula 12   banco de dados

Exemplo

Page 59: Aula 12   banco de dados

Exemplo

Page 60: Aula 12   banco de dados

EXERCICIO PG(110,111,112)

Page 61: Aula 12   banco de dados
Page 62: Aula 12   banco de dados

jorgeavila11.wordpress.com

Page 63: Aula 12   banco de dados

Gostou ?

Compartilha...