Banco de Dados - Módulo 2 - Aula 2 - DDL - Data Definition Language

download Banco de Dados - Módulo 2 - Aula 2 - DDL - Data Definition Language

If you can't read please download the document

description

Curso Técnico Programação SENAI São José - SC 2011 - Segundo SemestreDisciplina: Banco de Dados IProfessor: Kaléu CaminhaMódulo 2Aula 2Saber utilizar os recursos básicos da DDL

Transcript of Banco de Dados - Módulo 2 - Aula 2 - DDL - Data Definition Language

  • 1. Mdulo 2 Aula 2 DDLObjetivo da Aula Saber utilizar os recursos bsicos da DDL.IntroduoDDL - Linguagem de Definio de Dados;Nesta aula exploraremos:1.Gerenciamento bsico de bases de dados;2.Visualizao de Estruturas de Tabelas;3.Criao de tabelas.Para isto, precisamos acessar a linha de comando.Linha de ComandoO MYSQL para linha de comando um aplicativoO aplicativo pode ser encontrado na pasta "bin" domysql. Algo como "C:/mysql/bin";No SENAI, precisaremos acessar:cd C:Arquivos de programasMySQLMySQLServer 5.5binAcessamos esta pasta via linha de comando eexecutamos o programa mysql com dois parmetros:mysql -uroot -psenai2011-u o nome de usurio-p a senhaAps isso, voc dever receber uma mensagem de boasvindas e o banco de dados estar pronto para serutilizado;Por fim, A SQL case insensitive, ento, tanto faz usarminsculas ou maisculas. Por padronizao,utilizaremos tudo minusculo, sem caracteres especiais esem espaos.1. Gerenciamento bsico debases de dados;Os SGBDs permitem que sejam criadas mltiplas basesde dados, conforme as necessidades das aplicaes;De forma geral, uma mesma instalao de um SGBD podeatender muitas aplicaes;Para isso, criamos e utilizamos bases de dados oudatabases;Criar bases de sadosDentro do programa MySQL utilize:create database exemplo;Para testar se funcionou corretamente, execute:show databases;Ao executar o comando show voc ver todas as basesde dados em uso nesta instalao do MySQL, nsutilizaremos algumas delas.Deletar base de dadosUm comando em SQL comum para deletar coisas odrop, para deletar a base que criamos, execute:drop database exemplo;Atividade 1Crie uma base de dados chamada biblioteca. Aps,visualize-a com o comando show para ter certeza quetudo saiu corretamente, depois, remova-a e visualize asbases de dados novamente para ter certeza que aoperao foi executada com sucesso;Acessar base de dadosAntes de iniciar a construo de tabelas, incluso dedados, etc... necessrio explicitar qual base de dadosser utilizada;Fazemos isso atravs do comando use:use sakila;A partir desse ponto, todos os comandos queexecutarmos diro respeito apenas a esta base;Para alterar de base, utilize o mesmo comando,2. Visualizao e descrio deTabelas;Visualizao das TabelasCada base de dados pode ter muitas tabelas. Ainda nocriamos nenhuma, ento, vamos visualizar as tabelas dabase world, para isso, execute o comando use edepois exiba as tabelas com:show tables;Voc dever ver uma lista com trs tabelas, city, country ecountrylanguage;Atividade 2Tente executar o comando show tables sem colocar; no final e veja o que acontece, aperte enter maisalgumas vezes, por fim, coloque ; e aperte enter.Atividade 3Visualize as tabelas da base de dados sakila. O quevoc acha que esta base de dados contm? Que tipo deaplicao poderia utilizar tabelas com estes nomes?Estrutura das tabelasCada tabela possui uma estrutura;Esta estrutura composta pelos campos que a formam eo tipo de cada campo, mais algumas informaes extras;Voc pode visualizar a estrutura de uma tabela atravs docomando describe;use world;describe country;Veja o campo Code, ele do tipo char com 3caracteres;Name um conjunto varivel de caracteres commximo de 52;E o campo Continent, o que seria?Atividade 4Utilize o comando describe para visualizar a tabelacountrylanguage. O que voc acha que cada campoda tabela armazena?Atividade 5Acesse o banco de dados sakila e utilize describenas tabelas: actor, film e film_actor.Tente identificar o que cada um dos campos dastabelas e o que ele armazena. Por fim, para que vocacha que existe a tabela film_actor?Atividade 6Explore as bases de dados disponveis com o MySQL,execute describe em mais algumas tabelas e veja sevoc encontra algo que no compreendeu, ao final,traga suas dvidas para a turma e responderemosjuntos.3. Gerenciamento de Tabelas;Criao de tabelasAgora que j aprendemos o que a estrutura de umatabela, vamos iniciar a criao de tabelas com SQL;O comando tem duas partes:Nome e opes da tabela;Atributos da Tabela;O comando que utilizamos o Create Table;Crie uma base de dados chamada exemplo, acesse-a eexecute o comando abaixo:create table cliente (id int not null primary key,nome varchar(80) not null,email varchar(40));Aps, execute show tables e describe cliente paravisualizar se a tabela foi criada e se os campos estaroexatamente como fizemos;Explicando o comandoA primeira parte do comando :create table cliente (//atributos omitidos);create table o nome do comando;cliente o nome da tabela;e entre parnteses iro os atributos da tabela;A segunda parte so os atributos:id int not null primary key,nome varchar(80) not null,email varchar(40)Os atributos so uma lista separada por ,;Cada atributo composto obrigatoriamente de nome etipo;Aps o tipo, podemos ter outras informaes, as duasutilizadas aqui so:not null: Significa que em hiptese alguma o campoestar vazio;primary key: Informa que este campo a chave primriada tabela;Outro ExemploExecute a criao desta tabela no banco de dados:create table produto (id int not null auto_increment primary key,nome varchar(80) not null,valor float not null,descricao text,quantidade_disponivel int default 100);Outras opes que podem ser utilizadas para atributosso auto_increment e default:auto_increment: utilizado para que um valor sejaincrmentado automaticamente, muito til para criarmosregistros sequenciais;default: Se nenhum valor for informado para um campo,o valor do default assumido, neste exemplo, se no forinformada a quantidade disponvel de um produto, o valor100 ser assumido como padro.Relacionando TabelasEm bancos de dados relacionais, comum precisarmosunir de alguma forma duas tabelas, como por exemplo:countrylanguage country;musica cd;film_actor filme e actor;A forma que fazemos isso utilizando uma chaveestrangeira, uma referncia para o identificar de outratabela.Para ilustrar, iremos criar uma outra tabela para registrode compras de um produto por um cliente. Esta tabelaficaria assim:create table cliente_produto (id int not null auto_increment primary key,id_cliente int not null,id_produto int not null,quantidade_comprada int,valor_total float,foreign key(id_cliente) references cliente(id),foreign key(id_produto) references produto(id));O comando foreign key serve para criarmos uma ligaoentre duas tabelas, de forma que nunca poder serincludo um registro em compra de um produto que noexista na tabela produto;o comando tem como primeira informao o nome docampo da tabela em que est sendo executado ereferencia outro campo em outra tabela.Atividade 7Criaremos um banco de dados simples para alunos emdisciplinas. Primeiro, crie uma base de dados escola.Crie uma tabela aluno que deve conter a matrculacomo identificador do aluno, seu nome, a fase em queest e um campo para a sua data de aniversrio.Crie tambm uma tabela disciplina, contendo, umcdigo, o nome, a ementa e o nome do professor.Por fim, crie uma tabela que una aluno e laboratriochamada aluno_disciplina com um campo extra parainformar a mdia final e outro para a frequencia.Alterao de TabelasMuitas vezes, com os bancos de dados criados,precisamos alterar coisas como o nome de uma tabela outipo de um campo;Para os comandos abaixo, acesse a base de dadosexemplo.Alterao de nome da tabelaalter table cliente_produto rename compra;Atividade 8Renomeie a tabela disciplina para matria, a tabelaaluno para estudante e a tabela aluno_disciplina paramateria_cursada.Alterao dos atributosAo alterar um atributo, o informamos e logo depois,inserimos a nova sentena de declarao do atributo,igual a da criao da tabela:alter table cliente change nome nome_completovarchar(80) not null;Outro exemplo:alter table produto change quantidade_disponivelestoque int default 0;Desta mesma forma tambm possvel alterar o tipo doscampos, por exemplo, na descrio do produto, alterar detext para varchar:alter table produto change descricao descricaovarchar(80);Atividade 9Acesse a base escola e altere:- O nome do estudante para nome_completo varchar(40)not null;- O campo ementa da matria para text default semementa;- O campo media_final para nota_final float not nulldefault 10;Incluso de atributosTambm podemos incluir novos atributos aps a criaode uma tabela j existente, para isto, utilizamos umcomando semelhante ao anterior, mas precedido por ADDao invs de CHANGE:alter table compra add desconto floatdefault 0;Atividade 10Acesse a base escola e adicione:- Um campo na tabela estudante dizendo se ele foiaprovado ou no. Para isso, utilize o tipoenum(aprovado, no aprovado);- Um campo na tabela disciplina para informar a cargahorria;- Um campo na tabela materia_cursada para que oprofessor escreva alguma anotao importante sobre asituao do aluno.Excluso de camposalter table produto drop descricao;Atividade 11Exclua o campo nome do professor da tabela matria.Excluso de TabelasTambm possvel excluir tabelas quando algo sai erradona sua construo.drop table cliente;Atividade FinalVoc dever criar uma nova base de dados chamadabiblioteca_multimidia. Esta base ser utilizada por umsoftware online que armazena as colees de vdeos,msicas, fotos e livros de seus usurios.Voc dever criar uma tabela usurio contendo: id, nome,email, senha e data de aniversrio.

2. Aps, modele mentalmente ou em rascunho as tabelasmusica, vdeo e foto e as crie no MySQL. Cada tabeladever conter obrigatoriamente um campo id_usuario queser uma chave estrangeira para a tabela usurio.Voc tem liberdade para escolher quais informaes seusistema ir armazenar de cada tem, porm, obrigatrioque cada tabela tenha pelo menos 1 atributo especfico decada tem:Ex: Vdeo tempo de durao.Boa sorte. Esta atividade vale 3 pontos para a nota domdulo 2.