13
PROGRAMAÇÃO PARA WEB PROGRAMAÇÃO PARA WEB www.php.net www.php.net BANCO DE DADOS Aula 6 – 18/02/2009 Instrutor: Nelson Luis Rodrigues Pereira

Progweb Aula7

  • Upload
    softeam

  • View
    695

  • Download
    3

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Progweb Aula7

PROGRAMAÇÃO PARA WEBPROGRAMAÇÃO PARA WEBwww.php.netwww.php.net

BANCO DE DADOSAula 6 – 18/02/2009

Instrutor: Nelson Luis Rodrigues Pereira

Page 2: Progweb Aula7

•Noções de Banco de Dados relacionais •Noções de Modelos Entidade-Relacionamentos•Comandos de SQL•Inserção•Consulta•Exclusão•Junção•Utilizando o PHPMyAdmin•Utilizando o MySQL Administrator e o MySQL Query

AgendaAgenda

Page 3: Progweb Aula7

BANCO DE DADOS RELACIONAIS

• Os Bancos de Dados Relacionais possuem vantagens significativas com relação a outros tipos de armazenamento:• Acesso mais rápido aos dados• Fácil consulta• Mecanismos pré-definidos para acesso concorrente• Acessos aleatórios aos dados• Sistemas de privilégio

Page 4: Progweb Aula7

BANCO DE DADOS RELACIONAIS

• TABELAS: São agrupamentos de dados de objetos específicos.

• COLUNAS: Tem um nome único, dados diferentes e tipos de dados associados a cada uma.

• LINHAS: São registros que são inseridos na tabelas.• VALORES: São os valores de um registro para um coluna

específica.• CHAVES: São os identificadores de um registro. Podemos

ter uma chave primária (identificador único) e uma chave estrangeira (identifica o relacionamento entre tabelas).

Page 5: Progweb Aula7

BANCO DE DADOS RELACIONAIS

• RELACIONAMENTOS: São as relações existentes entre as tabelas de um banco e são determinados pela chave estrangeira. Podem ser:• 1 para 1: Um registro numa tabela possui um único

registro associado a ela numa outra tabela e vice-versa.• 1 para N: Um registro numa tabela possui um único

registro associado a ela numa outra tabela, porém o registro da outra tabela pode conter vários outros associados a ele.

• N para N: Um registro numa tabela possui vários registros associados a ela numa outra tabela e vice-versa.

Page 6: Progweb Aula7

DICAS PARA CONSTRUÇÃO DE BD

• Pense nos objetos do mundo real que você está modelando.• Evitar armazenar dados redundantes.• Cada coluna deve armazenar apenas um valor• Escolha sempre chaves únicas.• Pense nas perguntas que deseja fazer ao BD.• Evite BD com muitos atributos vazios

Page 7: Progweb Aula7

COMANDOS SQL

• CRIANDO BANCO DE DADOS:

Create database nomedodb;

• CRIANDO TABELAS:Create table pieces

( pieceid int unsigned not null auto_increment primary key,

name char(30) not null,

address char(40) not null,

city char(20) not null

);

Page 8: Progweb Aula7

COMANDOS SQL

• INSERINDO DADOS NA TABELA: INSERT INTO tabelas (itens) VALUES (valores)

• RECUPERANDO DADOS:SELECT itens FROM tabelas

[ WHERE condicao ]

[ GROUP BY tipo_grupo ]

[ HAVING definicao_where ]

[ ORDER BY tipo_pedido ]

[ LIMIT criterios_de_limite ]

Page 9: Progweb Aula7

COMANDOS SQL

• ATUALIZANDO REGISTROS NUMA TABELA:UPDATE nomedatabela

SET coluna1=expressao1, coluna2=expressao2, ...

[ WHERE condicao ]

[ LIMIT criterios_de_limite ]

• EXCLUINDO REGISTROS NUMA TABELA:DELETE FROM nomedatabela

[ WHERE condicao ]

[ LIMIT criterios_de_limite ]

• SAIBA MAIS: www.ansi.org e www.mysql.com

Page 10: Progweb Aula7

EXERCÍCIOS• Crie um BD com nome Clinica

• Crie as seguintes tabelas neste BD, considerando que os atributos sublinhados são chaves primárias e os em itálico são chaves estrangeiras:

• Ambulatorios: nroa (int), andar (numeric(3)) (não nulo), capacidade (smallint)

• Medicos: codm (int), nome (varchar(40)) (não nulo), idade (smallint) (não nulo), especialidade (char(20)), CPF (numeric(11)) (único), cidade (varchar(30)), nroa (int)

• Pacientes: codp (int), nome (varchar(40)) (não nulo), idade (smallint) (não nulo), cidade (char(30)), CPF (numeric(11)) (único), doenca (varchar(40)) (não nulo)

• Funcionarios: codf (int), nome (varchar(40)) (não nulo), idade (smallint), CPF (numeric(11)) (único), cidade (varchar(30)), salario (numeric(10)), cargo (varchar(20)) 5. Consultas: codm (int), codp (int), data (date), hora (time)

Page 11: Progweb Aula7

EXERCÍCIOS• Crie a coluna nroa (int) na tabela Funcionarios

• Crie os seguintes índices:

• Medicos: CPF (único), nroa

• Pacientes: doenca

• Remover o índice doenca em Pacientes

• Remover as colunas cargo e nroa da tabela de Funcionarios

• Povoar as tabelas conforme o próximo Slide

Page 12: Progweb Aula7
Page 13: Progweb Aula7

EXERCÍCIOS• Realizar as seguintes atualizações no BD:

• O paciente Paulo mudou-se para Ilhota

• A consulta do médico 1 com o paciente 4 passou para às 12:00 horas do dia 4 de Julho de 2006

• A paciente Ana fez aniversário e sua doença agora é cancer

• A consulta do médico Pedro com o paciente Carlos passou para uma hora e meia depois

• O funcionário Carlos deixou a clínica

• As consultas marcadas após as 19 horas foram canceladas

• Os pacientes com câncer ou idade inferior a 10 anos deixaram a clínica

• Os médicos que residem em Biguacu e Palhoca deixaram a clínica