Aula 11 banco de dados

Click here to load reader

download Aula 11   banco de dados

of 63

Transcript of Aula 11 banco de dados

Banco de Dados

Jorge vilaBanco de Dados

Tabelas dos Exemplos As tabelas a seguir sero 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)

Criao de um Bando de Dados SQLPara a criao 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.

Criao e Destruio de TabelasO comando CREATE TABLE usado para criar uma tabela. A sua forma geral : CREATE TABLE (, ); onde: dever ser substitudo pelo nome da tabela a ser criada. deve ser substituda pela relao das colunas da tabela e seus respectivos tipos de dados (por exemplo, smallint, char, varchar, integer, number, float e etc). deve ser substituda pela lista das colunas que so tratadas como chaves estrangeiras.

Script de Criao das Tabelas dos ExemplosAlgumas colunas podem receber o valor NULL (nulo), e a coluna definida como chave primria, alm de no poder receber NULL.

Script de Criao das Tabelas dos Exemplos

Criao e Destruio de TabelasPara excluirmos uma tabela existente devemos usar o comando DROPTABLE. A sua forma geral :DROP TABLE ;onde: dever ser substitudo pelo nome da tabela a ser excluda.Exemplosdrop table item_pedido;drop table pedido;drop table vendedor;drop table produto;drop table cliente;

Executando Consultas sobre as TabelasSelecionando Colunas Especficas de uma Tabela

Problema:Listar todos os produtos com as respectivas descries, unidades e valores unitrios.

Executando Consultas sobre as TabelasProblema:Listar os nomes dos clientes, as cidade e os estados onde eles esto localizados.

EXERCICIO1. Com base no que voc j aprendeu sobre banco de dados faa uma produo textual de no mnimo 5 linhas descrevendo o diagrama abaixo:

EXERCICIO2. Marque V para verdadeiro e F para falso:( ) CREATE, DROP, ALTER so comandos da Linguagem de Definio deDados (DDL);( ) possvel usarmos o comando CREATE para alterar estruturas da base de dados.( ) O comando UPDATE realiza a excluso de registros em uma tabela;( ) Para apagar linhas da tabela tanto faz usar o comando DROP como o DELETE.( ) O comando INSERT realiza a incluso de um ou mais registros em uma tabela;A sequncia 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;

EXERCICIO3. Relacione a primeira coluna com a segunda e no final, indique a respostacorreta:1 - CREATE ( ) Comando responsvel por inserir valores em uma tabela;2 INSERT ( ) - Responsvel 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 ( ) - Responsvel por criar estruturas no banco de dados;A sequncia correta seria:a) 4 - 2 - 1 - 3 - 5;b) 2 - 4 - 5 - 3 - 1;c) 3 - 5 - 4 - 2 - 1;d) 2 - 1 - 3 - 4 - 5;

INTRODUO AO MySQL1 Passo:Aps a Instalao do MySQL no seu computador, abra o MySQL Command Line Client. No meu caso eu baixei a verso 5.5 e sempre deixo fixado no Menu Iniciar, mas qualquer coisa s voc seguir o caminho (Iniciar-> Todos os Programas-> MySQL-> MySQL Server).

INTRODUO AO MySQL2 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 instalao.

INTRODUO AO MySQL3 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.

INTRODUO AO MySQLTIPOS DE DADOS NUMRICO:

TIPODESCRIOBITo mesmo que TINYINTBOOLo mesmo que TINYINTSMALLINT[(M)]inteiros pequenosINT[(M)]inteiros regularesINTEGER[(M)]o mesmo que INTBIGINT[(M)]inteiros grandesFLOAT(preciso)nmeros de ponto flutuante de preciso simples ou duplaFLOAT[(M,D)]nmeros de ponto flutuante de preciso simples. O mesmo que FLOAT(4)DOUBLE[(M,D)]nmeros de ponto flutuante de preciso dupla. O mesmo que FLOAT(8)DOUBLEO mesmo que DOUBLE[(M,D)]PRECISION[(M,D)]O mesmo que DOUBLE[(M,D)]REAL[(M,D)]O mesmo que DOUBLE[(M,D)]DECIMAL[(M,D)]nmero de ponto flutuante armazenado comocharNUMERIC[(M,D)]O mesmo que DECIMALDEC[(M,D)]O mesmo que DECIMAL

INTRODUO AO MySQLTIPOS DE DADOS DATA:

TIPODESCRIODATEdata. Exibido como YYYY-MM-DDTIMEhora. Exibido como HH:MM:SSDATETIMEdata e hora. Exibido como YYYY-MM-DD HH:MM:SSTIMESTAMP[(M)]registro de data e hora til para transaes. Os formatos de exibio 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)]anoYEAR[(4)]ano

INTRODUO AO MySQLTIPOS DE DADOS STRING:

TIPODESCRIO[NATIONAL] CHAR(M)[BINARY]string de comprimento fixoM.NATIONALespecifica que o conjunto de caracteres padro (ANSI SQL) ser utilizado.BINARYespecifica que os dados devem ser tratados de modo a no haver distino entre maisculas e minsculas (o padro distinguir).CHARo mesmo que CHAR(1)[NATIONAL]string de comprimento varivelVARCHAR(M) [BINARY]string de tamanho varivel. O mesmo que [BINARY].TINYBLOBBLOB pequenoTINYTEXTTEXT pequenoBLOBBLOB normalTEXTTEXT normalMEDIUMBLOBBLOB mdioMEDIUMTEXTTEXT mdioLONGBLOBBLOB longoLONGTEXTTEXT longoENUM('valor1','valor2',...)armazenam um dos valores listados ou NULLSET('valor1','valor2',...)armazenam um ou mais dos valores listados ou NULL

AtenoMuito cuidado, pois o mysql tem como delimitador o ponto e vrgula (;), ou seja, se um ponto e vrgula (;) aparecer em meio a um cdigo, o mysql entende que ali, o comando est encerrado e no h necessidade de continuidade. Muitos erros acontecem por falta do (ponto e vrgula) no final do comando.Outra dica. No linux, o mysql case-sensitive por padro. No windows no, tanto faz letras maisculas como minsculas. Para desabilitar a sensibilidade do Linux, habilite o parmetro "lower_case_table_names" no MySQL e pronto.

NOT NULLSo usados quando campo no pode ser nulo, ou seja, no pode estar em branco.Tenha em mente que NULL diferente de 0 (zero) e uma string vazia, ou seja, campos com valores NULL so aqueles que no possuem nenhum valor (NULL significa ausncia de valor).

AUTO_INCREMENTO atributoAUTO_INCREMENTpode ser usado para gerar uma identificao nica para um novo registro:

PRIMARY KEYdefine a chave primria da tabela, isto , o campo que serve como chave da tabela e que no 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))

FOREIGN KEYOs Bancos de Dados Relacionais so formados de vrias tabelas e utilizam chaves como forma de referenciar outras tabelas. Esse relacionamento entre as tabelas feito atravs das chaves estrangeiras. Quando falamos de chave estrangeira usamos a sigla FK referente palavra FOREIGN KEY.Por exemplo, poderamos abaixo fazer a tabela CLIENTE com os campos cliente_id, nome, endereo cidade e a tabela PEDIDO com os campos pedido_id, cliente_id, preo, data para armazenar os pedidos.

FOREIGN KEYOs campos com sublinhado simples so as chaves primrias (PK) que do uma identificao nica a cada item, e o campo com pontilhado uma chave estrangeira atravs da qual a tabela CLIENTE se relaciona com a tabela PEDIDO.

FOREIGN KEYEsse tipo de representao evita que para cada pedido precisemos colocar a toda a identificao do cliente, basta armazenarmos o id do cliente na tabela de pedidos e atravs dele podemos identificar de quem o pedido. Uma chave estrangeira sempre se relaciona com a chave primria da tabela do relacionamento.Tratando de cdigos, Vamos criar um banco de dados chamado VENDA e as duas tabelas CLIENTE e PEDIDO com os campos que foram definidos.A definio da chave estrangeira segue o seguinte padro:FOREIGN KEY REFERENCES < tabela da PK>()

FOREIGN KEYOBS: 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 DATETIMEid_user INTEGER not null,primary key (id_recado),FOREIGN KEY (id_usr) REFERENCES usuario (id_usr))

EXERCICIO pg(88,89 e 90)1) Comando SQL para criar um banco de dados chamado locadoraa) 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;

EXERCICIO5) 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 opo correta:O comando DESCRIBE gera o mesmo resultado do comando________________ .A opo que melhor completa a sentena a) SHOW DETAILS FROM;b) SELECT DETAILS FROM;c) SHOW FIELDS FROM;d) SELECT FIELDS FROM;

EXERCICIO7) Relacione a primeira coluna com a segunda, aps, indique a sequncia correta:1 - ALTER TABLE ADD ( ) Usado para apagar uma tabela de um BD2 - ALTER TABLE CHANGE ( ) Usado para trocar o nome e o tipo de uma coluna3- DROP TABLE ( ) Usadas para adicionar uma coluna em uma tabelaA sequncia correta seria:a) 3 - 1 - 2;b) 2 - 3 - 1;c) 1 - 2 - 3;d) 3 - 2 - 1;

EXERCICIO8) Marque a opo em que a criao da tabela "filmes" esta feito corretamente:

EXERCICIO9) Com base no exemplo que criamos chave primria(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 cdigo da criao

EXERCICIOCrie o banco de dados de locao de automvel mediante a este diagrama:

SelectO 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 instruo Select, como pudemos observar seleciona um grupo de registros de uma (ou mais) tabela(s). No caso a instruo From nos indica a necessidade de pesquisarmos tais dados apenas na tabela Dept.

SelectWhere como base das Restrio de tuplas.A clusula "where" corresponde ao operador restrio da lgebra relacional. Contm a condio que as tuplas devem obedecer a fim de serem listadas. Ela pode comparar valores em colunas, literais, expresses aritmticas ou funes.Operadores lgicos:operador significado= igual a> maior que>= maior que ou igual a< menor que 10;

SELECT EMPNOME, EMPSERVFROM EMPWHERE EMPSERV = 'GERENTE';O conjunto de caracteres ou datas devem estar entre apstrofes () na clusula "where".

SelectSelecione todos os departamentos cujo oramento mensal seja maior que 100000. Apresente o Nome de tal departamento e seu oramento anual, que ser obtido multiplicando-se o oramento mensal por 12.

SELECT DEPNOME, DEPORCA * 12FROM DEPTWHERE DEPORCA > 100000;

SelectApresente todos os salrios existentes na empresa, porm omita eventuais duplicidades.A clusula Distinct elimina duplicidades, significando que somente relaes distintas sero apresentadas como resultado de uma pesquisa.SELECT DISTINCT EMPSERVFROM EMP;

SelectORDER BY:At o momento vimos como obter dados de uma tabela utilizando os comandos SELECT e WHERE. Porm, frequentemente precisamos listar os dados por uma ordem em particular. Pode ser por ordem ascendente ou descendente. Para isso podemos utilizar a clusula ORDER BY para ordenar os dados. A sintaxe bsica da clusula ORDER BY a seguinte:SELECT < coluna > FROM < tabela > ORDER BY < coluna >;

OBSPor padro o ORDER BY vem como ASC significa que os resultados sero apresentados por ordem ascendente, ou seja, do menor para o maior.Mais tambm pode ser DESC significa que os resultados sero apresentados por ordem descendente, para isso acontecer voc precisa declara-lo.

ExemploComo exemplo irei usar uma tabela que criei anteriormente chamada produto:

ExemploPerceba que a tabela possui 8 produtos cadastrados, suponhamos que eu preciso ver os preos de forma ascendente, ento iremos selecionar o nome e o preo ordenado pelo prprio preo, veja como ficou:

ExemploPodemos tambm ordenar os dados de outras maneiras, se eu quero ver os nomes e o preo dos produtos em ordem alfabtica basta ordenar pelo nome de forma ascendente.

ExemploTambm 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 preo ento nome 1 e preo 2 e assim por diante:

INSTRUES DML UPDATEO comando para atualizar os dados UPDATE, ele possui a seguinte sintaxe:UPDATE < tabela > SET < campo > = novo valor WHERE < condio > ;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 no for informado, a tabela inteira ser atualizada condio: regra que impe condio para execuo do comando

EXEMPLOComo exemplo usaremos a tabela cliente que foi usada nos exemplos anteriores. Suponhamos que o cliente de nome Francisco se mudou, ento precisamos atualizar o seu registro colocando o seu novo endereo.

EXEMPLO

UPDATETambm podemos alterar mais de um campo de uma vez. Suponhamos que o cliente Pedro se mudou para outra cidade, precisamos alterar o endereo e a cidade atual, no precisamos criar dois UPDATES basta separa-los por vrgula.

UPDATE < tabela > SET < campo1 > = valor1, < campo2 > = valor2 WHERE < condio > ;

Exemplo

OBSDevemos passar sempre o WHERE, que uma espcie de filtro em nossa tabela, porque seno 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 condio em uma tabela de 1.000 registros e alterarmos todos os endereos dos clientes para um s.

INSTRUES DML DELETEA forma mais simples de se fazer um DELETE excluindo todos os dados de uma tabela. A sntese bsica :DELETE FROM < nome da tabela >;Se no for especificada nenhuma condio ento sero excludos todos os dados da tabela, porm se voc quer excluir somente um registro preciso usar a clusula WHERE informando qual ser a condio para deletar.DELETE FROM < nome da tabela > WHERE < condio >;

OBSLembre-se que este comando, assim como o UPDATE, pode ser perigoso em algumas situaes, j que, uma vez executado esses comandos, no ser possvel desfazer a ao realizada. Portanto, devemos ficar atentos ao usar esses comandos em tabelas complexas.

EXEMPLOComo 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 no mais o nosso cliente, ento devemos exclui-lo da nossa tabela, para isso usamos o comando DELETE.

EXEMPLOPerceba que usei a condio referenciando o cliente-id. Em banco de dados todo registro deve possuir o seu cdigo, quando vamos alterar ou excluir um registro bom que coloquemos como condio o cdigo do registro, porque o nome pode ser que aparea outro igual, mais o cdigo no.

Exemplo LIKECom este operador, podemos comparar Strings. O percentual (%) substitui nenhum, um ou mais caracteres, j a sublinha (_) substitui somente um caractere.Utilizando a combinao desses caracteres especiais com o que se quer localizar, pode-se conseguir uma variedade muito grande de expresses. Veja na tabela a seguir algumas possveis combinaes:

EXEMPLOSELECT * FROM contatos WHERE nome LIKE ' < condio > ' ;

EXEMPLOSELECT * FROM contatos WHERE nome LIKE ' < condio > ' ;

jorgeavila11.wordpress.com

Gostou ? Compartilha...