Aula 11 banco de dados

677
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
677
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aula 11 banco de dados

  1. 1. Banco de Dados Jorge Ávila
  2. 2. Tabelas dos Exemplos  As tabelas a seguir serão usadas nos exemplos que se seguem:  CLIENTE (cod_cli, nome_cli, endereco, cidade, cep, uf)  VENDEDOR (cod_vend, nome_vend, sal_fixo, faixa_comiss)  PEDIDO ( num_ped, prazo_entr, cd_cli, cd_vend)  ITEM_PEDIDO (no_ped, cd_prod, qtd_ped)  PRODUTO (cod_prod, unid_prod, desc_prod, val_unit)
  3. 3. Criação de um Bando de Dados SQL  Para a criação de um banco de dados em SQL temos os seguintes comandos:  Creat Data Base;  Para conhecer quais os bancos de dados existentes dentro do MySQL basta usar o comando SHOW DATABASES. SHOW significa mostrar, apresentar, exibir e DATABASES significa bases de dados ou bancos de dados, ou seja, manda mostrar os bancos de dados existentes.
  4. 4. Criação e Destruição de Tabelas  O comando CREATE TABLE é usado para criar uma tabela. A sua forma geral é:  CREATE TABLE <nome_tabela> (<descrição das colunas>, <descrição das chaves>);  onde:  <nome_tabela> dever ser substituído pelo nome da tabela a ser criada.  <descrição das colunas> deve ser substituída pela relação das colunas da tabela e seus respectivos tipos de dados (por exemplo, smallint, char, varchar, integer, number, float e etc). <descrição das chaves> deve ser substituída pela lista das colunas que são tratadas como chaves estrangeiras.
  5. 5. Script de Criação das Tabelas dos Exemplos  Algumas colunas podem receber o valor NULL (nulo), e a coluna definida como chave primária, além de não poder receber NULL.
  6. 6. Script de Criação das Tabelas dos Exemplos
  7. 7. Criação e Destruição de Tabelas  Para excluirmos uma tabela existente devemos usar o comando DROP     TABLE. A sua forma geral é: DROP TABLE <nome_tabela>; onde: <nome_tabela> dever ser substituído pelo nome da tabela a ser excluída.  Exemplos  drop table item_pedido;  drop table pedido;  drop table vendedor;  drop table produto;  drop table cliente;
  8. 8. Executando Consultas sobre as Tabelas  Selecionando Colunas Específicas de uma Tabela  Problema:  Listar todos os produtos com as respectivas descrições, unidades e valores unitários.
  9. 9. Executando Consultas sobre as Tabelas  Problema:  Listar os nomes dos clientes, as cidade e os estados onde eles estão localizados.
  10. 10. EXERCICIO 1. Com base no que você já aprendeu sobre banco de dados faça uma produção textual de no mínimo 5 linhas descrevendo o diagrama abaixo:
  11. 11. EXERCICIO 2. Marque V para verdadeiro e F para falso: ( ) CREATE, DROP, ALTER são comandos da Linguagem de Definição de Dados (DDL); ( ) É possível usarmos o comando CREATE para alterar estruturas da base de dados. ( ) O comando UPDATE realiza a exclusão de registros em uma tabela; ( ) Para apagar linhas da tabela tanto faz usar o comando DROP como o DELETE. ( ) O comando INSERT realiza a inclusão de um ou mais registros em uma tabela; A sequência correta seria: a) V - V - F – V - F; b) V - F - F – V - V; c) F - V - V – F - F; d) V - F - F – F - V;
  12. 12. EXERCICIO 3. Relacione a primeira coluna com a segunda e no final, indique a resposta correta: 1 - CREATE ( ) Comando responsável por inserir valores em uma tabela; 2 – INSERT ( ) - Responsável por retornar registros de uma tabela; 3 – DROP ( ) - Remove registros de uma tabela; 4 – SELECT ( ) - Tem o poder de remover estruturas do banco de dados; 5 – DELETE ( ) - Responsável por criar estruturas no banco de dados; A sequência correta seria: a) 4 - 2 - 1 - 3 - 5; b) 2 - 4 - 5 - 3 - 1;
  13. 13. INTRODUÇÃO AO MySQL 1º Passo: Após a Instalação do MySQL no seu computador, abra o MySQL Command Line Client. No meu caso eu baixei a versão 5.5 e sempre deixo fixado no Menu Iniciar, mas qualquer coisa é só você seguir o caminho (Iniciar-> Todos os Programas-> MySQL-> MySQL Server).
  14. 14. INTRODUÇÃO AO MySQL  2º Passo:  Depois de Aberto o MySQL, ele pede para que você entre com o password, ou seja, com a senha que você definiu na hora da instalação.
  15. 15. INTRODUÇÃO AO MySQL  3º Passo:  Para conhecer quais os bancos de dados existentes dentro do MySQL basta usar o comando SHOW DATABASES. SHOW significa mostrar, apresentar, exibir e DATABASES significa bases de dados ou bancos de dados, ou seja, manda mostrar os bancos de dados existentes.
  16. 16. INTRODUÇÃO AO MySQL  TIPOS DE DADOS NUMÉRICO: TIPO DESCRIÇÃO BIT BOOL o mesmo que TINYINT o mesmo que TINYINT SMALLINT[(M)] inteiros pequenos INT[(M)] inteiros regulares INTEGER[(M)] o mesmo que INT BIGINT[(M)] inteiros grandes FLOAT(precisão) números de ponto flutuante de precisão simples ou dupla FLOAT[(M,D)] números de ponto flutuante de precisão simples. O mesmo que FLOAT(4) DOUBLE[(M,D)] números de ponto flutuante de precisão dupla. O mesmo que FLOAT(8) DOUBLE O mesmo que DOUBLE[(M,D)] PRECISION[(M,D)] O mesmo que DOUBLE[(M,D)] REAL[(M,D)] DECIMAL[(M,D)] O mesmo que DOUBLE[(M,D)] número de ponto flutuante armazenado como char NUMERIC[(M,D)] O mesmo que DECIMAL DEC[(M,D)] O mesmo que DECIMAL
  17. 17. INTRODUÇÃO AO MySQL  TIPOS DE DADOS DATA: TIPO DESCRIÇÃO DATE data. Exibido como YYYY-MM-DD TIME hora. Exibido como HH:MM:SS DATETIME data e hora. Exibido como YYYY-MM-DD HH:MM:SS TIMESTAMP[(M)] registro de data e hora útil para transações. Os formatos de exibição podem ser: TIMESTAMP YYYYMMDDHHMMSS TIMESTAMP(14) YYYYMMDDHHMMSS TIMESTAMP(12) YYMMDDHHMMSS TIMESTAMP(10) YYMMDDHHMM TIMESTAMP(8) YYYYMMDD TIMESTAMP(6) YYMMDD TIMESTAMP(4) YYMM TIMESTAMP(2) YY YEAR[(2)] ano YEAR[(4)] ano
  18. 18. INTRODUÇÃO AO MySQL  TIPOS DE DADOS STRING: TIPO CHAR [NATIONAL] DESCRIÇÃO string de comprimento fixo M. NATIONAL especifica que o conjunto de caracteres padrão (ANSI SQL) será utilizado. BINARY especifica que os dados devem ser tratados de modo a não haver distinção entre maiúsculas e minúsculas (o padrão é distinguir). o mesmo que CHAR(1) string de comprimento variável VARCHAR(M) [BINARY] string de tamanho variável. O mesmo que [BINARY]. TINYBLOB TINYTEXT BLOB pequeno TEXT pequeno BLOB BLOB normal TEXT TEXT normal MEDIUMBLOB BLOB médio MEDIUMTEXT TEXT médio LONGBLOB BLOB longo LONGTEXT TEXT longo ENUM('valor1','valor2',...) armazenam um dos valores listados ou NULL [NATIONAL] CHAR(M) [BINARY]
  19. 19. Atenção  Muito cuidado, pois o mysql tem como delimitador o ponto e vírgula (;), ou seja, se um ponto e vírgula (;) aparecer em meio a um código, o mysql entende que ali, o comando está encerrado e não há necessidade de continuidade.  Muitos erros acontecem por falta do (ponto e vírgula) no final do comando.  Outra dica. No linux, o mysql é case-sensitive por padrão. No windows não, tanto faz letras maiúsculas como minúsculas. Para desabilitar a sensibilidade do Linux, habilite o parâmetro "lower_case_table_names" no MySQL e pronto.
  20. 20. NOT NULL  São usados quando campo não pode ser nulo, ou seja, não pode estar em branco.  Tenha em mente que NULL é diferente de 0 (zero) e uma string vazia, ou seja, campos com valores NULL são aqueles que não possuem nenhum valor (NULL significa ausência de valor).
  21. 21. AUTO_INCREMENT  O atributo AUTO_INCREMENT pode ser usado para gerar uma identificação única para um novo registro:
  22. 22. PRIMARY KEY  define a chave primária da tabela, isto é, o campo que serve como chave da tabela e que não pode ser repetido. Exemplo: Vamos criar uma tabela para cadastro de clientes. CREATE TABLE clientes( codigo int(4) AUTO_INCREMENT, nome varchar(30) NOT NULL, email varchar(50), data_nascimento date, PRIMARY KEY (codigo) )
  23. 23. FOREIGN KEY  Os Bancos de Dados Relacionais são formados de várias tabelas e utilizam chaves como forma de referenciar outras tabelas.  Esse relacionamento entre as tabelas é feito através das chaves estrangeiras.  Quando falamos de chave estrangeira usamos a sigla FK referente à palavra FOREIGN KEY.  Por exemplo, poderíamos abaixo fazer a tabela CLIENTE com os campos „cliente_id, nome, endereço cidade‟ e a tabela PEDIDO com os campos „pedido_id, cliente_id, preço, data‟ para armazenar os pedidos.
  24. 24. FOREIGN KEY  Os campos com sublinhado simples são as chaves primárias (PK) que dão uma identificação única a cada item, e o campo com pontilhado é uma chave estrangeira através da qual a tabela CLIENTE se relaciona com a tabela PEDIDO.
  25. 25. FOREIGN KEY  Esse tipo de representação evita que para cada pedido precisemos colocar a toda a identificação do cliente, basta armazenarmos o id do cliente na tabela de pedidos e através dele podemos identificar de quem é o pedido.  Uma chave estrangeira sempre se relaciona com a chave primária da tabela do relacionamento.  Tratando de códigos, Vamos criar um banco de dados chamado VENDA e as duas tabelas CLIENTE e PEDIDO com os campos que foram definidos.  A definição da chave estrangeira segue o seguinte padrão: FOREIGN KEY<nome da FK> REFERENCES < tabela da PK>(<nome da PK>)
  26. 26. FOREIGN KEY  OBS: o nome e o tipo de dado da PK devem ser o mesmo da FK. A palavra REFERENCES é usada para dizer qual tabela a FK está referenciando.  Exemplo: create table recado ( id_recado INTEGER not null auto_increment, assunto VARCHAR(100), recado TEXT, datahora DATETIME id_user INTEGER not null, primary key (id_recado), FOREIGN KEY (id_usr) REFERENCES usuario (id_usr) )
  27. 27. EXERCICIO pg(88,89 e 90) 1) Comando SQL para criar um banco de dados chamado “locadora” a) create databases locadora; b) create locadora; c) create database locadora; d) use database locadora; 2) Comando SQL para apagar um banco de dados chamado "supermercado" a) delete database supermercado; b) drop table supermecado; c) drop supermercado; d) drop database supermercado; e) delete supermercado; 3) Comando SQL para entrar no banco de dados chamado "EEEP" a) use database EEEP; b) use table EEEP; c) create EEEP; d) usage EEEP; e) use EEEP; 4) Comando SQL para mostrar todos os bancos de dados existentes; a) show database; b) show tables; c) show databases; d) show BD;
  28. 28. EXERCICIO 5) Comando SQL para apagar a tabela "produtos" do BD "supermercado" a) drop table produtos; b) delete table produtos; c) drop supermercado; d) drop table supermercado; e) drop produtos; 6) Assinale a opção correta: O comando DESCRIBE gera o mesmo resultado do comando_____________ ___ . A opção que melhor completa a sentença é a) SHOW DETAILS FROM; b) SELECT DETAILS
  29. 29. EXERCICIO 7) Relacione a primeira coluna com a segunda, após, indique a sequência correta: 1 - ALTER TABLE ADD ( ) Usado para apagar uma tabela de um BD 2 - ALTER TABLE CHANGE ( ) Usado para trocar o nome e o tipo de uma coluna 3- DROP TABLE ( ) Usadas para adicionar uma coluna em uma tabela A sequência correta seria: a) 3 - 1 - 2; b) 2 - 3 - 1; c) 1 - 2 - 3; d) 3 - 2 - 1;
  30. 30. EXERCICIO 8) Marque a opção em que a criação da tabela "filmes" esta feito corretamente:
  31. 31. EXERCICIO 9) Com base no exemplo que criamos chave primária(PK) e chave estrangeira(FK), crie um banco de dados EMPRESA e as duas tabelas DEPTO e EMP descritas abaixo com suas respectivas colunas. Escreva o código da criação
  32. 32. EXERCICIO  Crie o banco de dados de locação de automóvel mediante a este diagrama:
  33. 33. 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
  34. 34. 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
  35. 35. 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".
  36. 36. 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 multiplicandose o orçamento mensal por 12. SELECT DEPNOME, DEPORCA * 12 FROM DEPT WHERE DEPORCA > 100000;
  37. 37. 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;
  38. 38. 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 >;
  39. 39. 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.
  40. 40. Exemplo  Como exemplo irei usar uma tabela que criei anteriormente chamada produto:
  41. 41. 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:
  42. 42. 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.
  43. 43. 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:
  44. 44. 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    
  45. 45. 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.
  46. 46. EXEMPLO
  47. 47. 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 > ;
  48. 48. Exemplo
  49. 49. 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ó.
  50. 50. 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 >;
  51. 51. 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.
  52. 52. 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.
  53. 53. 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.
  54. 54. 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:
  55. 55. EXEMPLO  SELECT * FROM contatos WHERE nome LIKE ' < condição > ' ;
  56. 56. EXEMPLO  SELECT * FROM contatos WHERE nome LIKE ' < condição > ' ;
  57. 57. jorgeavila11.wordpress.com
  58. 58. Gostou ? Compartilha...
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×