SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
PROGRAMAÇÃO EM BANCO DE
DADOS
UNIDADE 1: REPOSITÓRIO DE DADOS
Aula 3: 06/09/2018
Prof.ª M.ª Eng.ª Elaine Cecília Gatto
1
Características das colunas na
criação de uma tabela
•As colunas, ou os campos que fazem parte da
tabela, ou ainda, os atributos da entidade,
podem ter características particulares no
momento de sua criação.
Valores por Default
•Quando uma tabela é criada, estamos
indicando que ela é composta pelas colunas que
de terminamos (um, dois, três ou mais campos)
e que qualquer uma delas pode admitir valores
NULOS
•Portanto, os valores por padrão para cada um
dos campos criados será NULL
Valores por Default
•EXEMPLOS:
•INSERT INTO codigopostal VALUES (1000, ‘LISBOA’);
•INSERT INTO codigopostal (codigopostal) VALUES (1000);
•INSERT INTO codigopostal (localidade) VALUES
(‘LISBOA’);
•INSERT INTO codigopostal VALUES (NULL, NULL)
•INSERT INTO codigopostal VALUES (NULL, ‘LISBOA’)
Valores por Default
•Se você quiser que uma coluna NÃO ADMITA
valores nulos, deverá acrescentar
imediatamente ao tipo de dados da coluna a
cláusula NOT NULL.
•EXERCÍCIO3: definir como NULL ou NOT NULL
os campos das tabelas do exercício 2
Valores por Default
•SOLUÇÃO
create table pessoa (
idPessoa numeric not null,
nome char(30) not null,
idade integer not null,
salario numeric(10,2) not null,
telefone char(20) not null,
codigoPostal numeric(4) not null );
Valores por Default
•Caso um valor não for inserido em uma coluna o valor
DEFAULT armazenado nela é NULL.
•É possível também associar um outro valor DEFAULT através
da cláusula DEFAULT.
•EXEMPLO:
•create table codigopostal (
•codigo numeric(4) not null,
•localidade char(30) default ‘lisboa’);
Valores por Default
•Cláusula DEFAULT pode ser associada a três
tipos de valores
•Literais
•NULL
•Valores de sistema
Restrições – constrains
•Restrições são regras a que os valores de uma ou mais
colunas devem obedecer.
•EXEMPLO: o campo SEXO de uma tabela PESSOA só pode
conter os valores F ou M.
•O uso das restrições é a única maneira de garantir que os
dados existentes nas colunas estão de acordo com as regras
especificadas no projeto do banco.
•Erros de programação podem fazer com que dados sejam
aceitos com conteúdos inválidos
Constraint Not Null
•É a restrição de uso mais comum
•Impede a inserção de valores nulos na coluna em que é
especificada
•EXEMPLO
•create table TESTE (
•idTeste integer not null,
•nomeTeste char(60) not null);
Constraint Check
•Permite realizar a validação dos dados
inseridos na coluna, através da especificação de
uma condição.
•São admitidos apenas os dados cujo resultado
da avaliação da condição seja verdadeiro
Constraint Check
•EXEMPLO2:
create table TESTE(
idTeste integer not null,
nomeTeste char(60) not null
CHECK (nomeTeste NOT LIKE ‘%Reginaldo%’),
idade integer not null
CHECK (idade BETWEEN 0 AND 150),
sexo char not null
CHECK (sexo in (‘m’, ‘f’),
anos_Servico integer not null
CHECK (anos_Servico >= 0),
CHECK (idade > anos_Servico + 18));
Constraint Unique
•Permite indicar que os valores dessa coluna não podem
se repetir
•Para garantir que não existem dados repetidos em uma
coluna, os SGBD criam, sobre cada uma das colunas
UNIQUE, um ÍNDICE único.
•Podem existir tantas colunas UNIQUE quantas forem
necessárias
•MYSQL não aceita o valor NULL em campos UNIQUE
Constraint Unique
•EXEMPLO1:
create table TESTE (
idTeste integer primary key,
nome char(60) unique,
telefone char(15),
rg integer unique));
Constraint Unique
•EXEMPLO2:
create table TESTE (
idTeste integer primary key,
nome char(60),
telefone char(15),
rg integer,
Unique(nome),
Unique(rg));
Constraint Unique
•EXEMPLO3: garantindo que duas pessoas com o menos
nome e sobrenome não existam na tabela
create table TESTE (
idTeste integer primary key,
nome char(60),
sobrenome char(10),
telefone char(15),
Rg integer,
Unique(nome, sobrenome),
Unique(rg));
Constraint Primary Key
•É equivalente à cláusula NOT NULL + UNIQUE
juntas
•O conteúdo da coluna não pode ser nulo e não
pode admitir repetições
•Chave primária de uma tabela
Constraint Primary Key
•EXEMPLO 1: uma chave primária apenas
create table TESTE (
idTeste integer primary key,
nome char(60),
sobrenome char(10),
telefone char(15),
Rg integer,
Unique(nome, sobrenome),
Unique(rg));
Constraint Reference
•Permite fazer a validação das chaves
estrangeiras.
•Não se podem inserir nos campos
referenciados como chave estrangeira valores
que não existam na tabela onde os campos são
chave primária.
Constraint Reference
•EXEMPLO 1:
create table pessoa (
idPessoa numeric primary key,
nome char(30) not null,
idade integer not null
check (idade between 0 and 150),
salario numeric(10,2) not null
check (salario > 0 ),
telefone char(12) null
codigoPostal numeric(4)
REFERENCES codigopostal(codigo));
Constraint Reference
•codigopostal numeric(4)
•REFERENCES codigopostal(codigo));
•Qualquer valor inserido na coluna codigopostal da
tabela PESSOA será automaticamente validado na
coluna codigo da tabela CODIGOPOSTAL.
•Se o valor não existir na tabela CODIGOPOSTAL, o
registro não poderá ser inserido ou alterado na
tabela PESSO.
Constraint Reference
•EXEMPLO 2:
create table pessoa (
id numeric primary key,
nome char(30) not null,
telefone char(20) null
codigopostal numeric(4) REFERENCES
codigopostal(codigo),
FOREIGN KEY (id, salario) REFERENCES
pessoal(n_emp, valor)();
Constraint Reference
•codigopostal numeric(4) REFERENCES
codigopostal(codigo),
•FOREIGN KEY (id, salario) REFERENCES
pessoal(n_emp, valor)();
•Neste exemplo houve a necessidade de
referenciar uma chave estrangeira formada por
dois campos usando a CLAUSULA FOREIGN KEY
Constraint Reference
•codigopostal numeric(4) REFERENCES
codigopostal(codigo),
•FOREIGN KEY (id, salario) REFERENCES
pessoal(n_emp, valor)();
•Neste caso considera-se que existe outra tabela
denominada PESSOAL, sendo a sua chave
primária n_emp e valor com tipos de dados
compatíveis com ID e SALARIO
Constraint Reference
•As tabelas se ligam umas às outras através das
chaves estrangeiras
•A chave estrangeira de uma tabela permite ligar
esta tabela a uma outra onde esse mesmo atributo
ou conjunto de atributos é a chave primária
•QUESTÃO: o que acontece ao tentarmos apagar ou
alterar os valores de uma chave primária que tem
dados associados a outras tabelas?
Constraint Reference
•SOLUÇÃO: depende da forma como as tabelas
foram relacionadas
•As alterações na tabela mãe não se refletirão na
tabela filha se não houver ligação entre elas através
do uso da clausula REFERENCES
•Os valores da tabela mãe não serão alterados ou
apagados se estes existirem em qualquer tabela
filha e se houver uma ligação entre as tabelas.
Constraint Reference
•Em alguns casos se deseja que, ao alterar um valor em
uma tabela, sejam alteradas todas as ocorrências desse
mesmo valor nas tabelas filhas, ou então que, ao apagar
o valor na tabela mãe, sejam apagados todos os valores
existentes nas tabelas filhas
•Solução: ALTERAR OU APAGAR DADOS EM CASCATA
•Quando se apagar ou alterar algo na tabela mãe, todas
as entradas relacionadas nas tabelas filhas também são
alteradas
Constraint Reference
•EXEMPLO:
Create table codigopostal(
codigo numeric(4) primary key,
localidade char(30) not null );
Create table pessoa (
idPessoa numeric primary key,
nome char (30) not null,
codigopostal numeric(4)
REFERENCES codigopostal (codigo) on
UPDATE CASCATE
ON DELETE CASCADE);
Constraint Reference
•Vamos testar no MYSQL WORKBENCH?
•Criar o banco de dados AULA1
•Na QUERY do mysql, digitar os códigos SQL deste
slide e executar para verificar o que ocorre
•Inserir pelo menos 4 registros em cada tabela
•Teste os seguintes comandos
•SELECT * FROM pessoa
•UPDATE codigopostal SET codigo = 2222 WHERE
codigo = 1500
Constraint Reference
•Teste os seguintes comandos
•Select * from pessoa
•Delete from codigopostal where codigo = 2222
•Select * from pessoa
•O que acontece com os registros?
Constraint Reference
•EXEMPLO:DELETE CASCADE é útil quando se
pretende apagar uma fatura que contém várias
linhas de fatura em outra tabela
•CUIDADO: ao apagar o registro na tabela mãe
serão automaticamente apagados todos os
registros nas tabelas filhas
Tabelas Resultantes
•É possível criar tabelas a partir de outras
tabelas já existentes
•Exemplo: criar uma nova tabela denominada
EMPREGADO com os campos ID, NOME e
SALARIO existentes na tabela PESSOA. Deverão
ser carregados automaticamente os dados cujo
ID < = 35
Tabelas Resultantes
•SOLUÇÃO:
Create table EMPREGADO as
SELECT id, nome, salario
FROM pessoa
WHERE id <= 35
Alterando Tabelas
•ALTER TABLE: comando usado para alterar a
estrutura de uma tabela já criada
•Adicionando uma coluna:
•alter table nome_da_tabela
•ADD nome_da_coluna tipo_da_coluna
Alterando Tabelas
•Modificando uma coluna:
•alter table nome_da_tabela
•MODIFY nome_da_coluna tipo_da_coluna
•Apagando uma coluna:
•alter table nome_da_tabela
•DROP nome_da_coluna tipo_da_coluna
Alterando Tabelas
•EXEMPLO 1:
•Adicionar a tabela pessoa uma coluna chamada
FAX com 15 caracteres
•R.: Alter table pessoa ADD faz char (15)
•Mostrar o conteúdo da tabela pessoa
•R.: select * from pessoa
Alterando Tabelas
•EXEMPLO 1:
•Alterar o tipo de dados da coluna FAX para 25
caracteres
•R.: alter table pessoa MODIFY fax char (25);
•Alterar as características da coluna SALARIO na
tabela PESSOA, de tal forma que esta possa passar
a admitir valores NULL
•R.: alter table pessoa MODIFY salario NULL;
Alterando Tabelas
•Observação em relação à mudança para NULL:
o comando só será executado com sucesso se
NENHUMA ocorrência da coluna tiver NULL
•Somente depois de retirados os valores NULL é
que deverá ser executado o comando alter table
Alterando Tabelas
•Exemplo 2: alterar as características da coluna
SALARIO na tabela CODIGOPOSTAL de tal forma
que esta não admita NULL
•R.: Alter table pessoa MODIFY salario not null;
•OBS.: lembre-se sempre de consultar o manual
do banco de dados que estiver utilizando
Alterando Tabelas
•Apagando a coluna FAX:
•Alter table pessoa DROP COLUMN fax
Apagando uma Tabela
•DROP TABLE Permite apagar uma tabela
•Toda a estrutura e o conjunto de valores
existentes naquela tabela serão apagados
•Se a tabela a ser apagada estiver referenciada em
views ou regras de integridade, o comando falhará
•As views e constraints associadas a tabela que será
apagada, também são eliminadas
Apagando uma Tabela
•EXEMPLO:
criando uma nova tabela
create table teste (coluna1 char (20));
Adicionando uma nova coluna
Alter table teste ADD coluna2 clar(20);
Inserindo um registro
INSERT INTO teste VALUES (‘Hello’, ‘Um’);
Apagando a tabela
DROP TABLE teste;

Mais conteúdo relacionado

Mais procurados

Excel Básico - Introdução
Excel Básico - IntroduçãoExcel Básico - Introdução
Excel Básico - Introdução
Cleber Ramos
 

Mais procurados (14)

Excel com Departamento pessoal - Aula 1
Excel com Departamento pessoal - Aula 1Excel com Departamento pessoal - Aula 1
Excel com Departamento pessoal - Aula 1
 
Excel Básico
Excel BásicoExcel Básico
Excel Básico
 
Treinamento Excel Avançado
Treinamento Excel AvançadoTreinamento Excel Avançado
Treinamento Excel Avançado
 
Excel Intermediário
Excel IntermediárioExcel Intermediário
Excel Intermediário
 
Excel avancado 2015
Excel avancado 2015Excel avancado 2015
Excel avancado 2015
 
Um pouco sobre sql
Um pouco sobre sqlUm pouco sobre sql
Um pouco sobre sql
 
Curso Microsoft Excel Specialist
Curso Microsoft Excel Specialist Curso Microsoft Excel Specialist
Curso Microsoft Excel Specialist
 
Aulas EXCEL
Aulas EXCELAulas EXCEL
Aulas EXCEL
 
Sql junções
Sql junçõesSql junções
Sql junções
 
Apostila excel avançado
Apostila excel avançadoApostila excel avançado
Apostila excel avançado
 
Apostila Excel
Apostila ExcelApostila Excel
Apostila Excel
 
Apostila Microsoft Office Excel 2016
Apostila Microsoft Office Excel 2016Apostila Microsoft Office Excel 2016
Apostila Microsoft Office Excel 2016
 
Excel Básico - Introdução
Excel Básico - IntroduçãoExcel Básico - Introdução
Excel Básico - Introdução
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 

Semelhante a Programação em Banco de Dados - Aula 06/09/2018

introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
SaraR49
 
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQLLabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
Carlos Santos
 

Semelhante a Programação em Banco de Dados - Aula 06/09/2018 (20)

Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sql
 
Agbd aula4 sql_ddl
Agbd aula4 sql_ddlAgbd aula4 sql_ddl
Agbd aula4 sql_ddl
 
DDL Resumo ddl
DDL Resumo ddlDDL Resumo ddl
DDL Resumo ddl
 
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
 
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
Dicas oracle sql
Dicas oracle sqlDicas oracle sql
Dicas oracle sql
 
Apostila - Banco de Dados
Apostila - Banco de DadosApostila - Banco de Dados
Apostila - Banco de Dados
 
07 sql - parte 01
07   sql - parte 0107   sql - parte 01
07 sql - parte 01
 
Conceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de DadosConceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de Dados
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelas
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQLLabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
 
Revisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.pptRevisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.ppt
 
Aula 12 banco de dados
Aula 12   banco de dadosAula 12   banco de dados
Aula 12 banco de dados
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 

Mais de Elaine Cecília Gatto

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Último

Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
WagnerCamposCEA
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
LeloIurk1
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
LeloIurk1
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 

Último (20)

Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Antero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaAntero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escrita
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 

Programação em Banco de Dados - Aula 06/09/2018

  • 1. PROGRAMAÇÃO EM BANCO DE DADOS UNIDADE 1: REPOSITÓRIO DE DADOS Aula 3: 06/09/2018 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 1
  • 2. Características das colunas na criação de uma tabela •As colunas, ou os campos que fazem parte da tabela, ou ainda, os atributos da entidade, podem ter características particulares no momento de sua criação.
  • 3. Valores por Default •Quando uma tabela é criada, estamos indicando que ela é composta pelas colunas que de terminamos (um, dois, três ou mais campos) e que qualquer uma delas pode admitir valores NULOS •Portanto, os valores por padrão para cada um dos campos criados será NULL
  • 4. Valores por Default •EXEMPLOS: •INSERT INTO codigopostal VALUES (1000, ‘LISBOA’); •INSERT INTO codigopostal (codigopostal) VALUES (1000); •INSERT INTO codigopostal (localidade) VALUES (‘LISBOA’); •INSERT INTO codigopostal VALUES (NULL, NULL) •INSERT INTO codigopostal VALUES (NULL, ‘LISBOA’)
  • 5. Valores por Default •Se você quiser que uma coluna NÃO ADMITA valores nulos, deverá acrescentar imediatamente ao tipo de dados da coluna a cláusula NOT NULL. •EXERCÍCIO3: definir como NULL ou NOT NULL os campos das tabelas do exercício 2
  • 6. Valores por Default •SOLUÇÃO create table pessoa ( idPessoa numeric not null, nome char(30) not null, idade integer not null, salario numeric(10,2) not null, telefone char(20) not null, codigoPostal numeric(4) not null );
  • 7. Valores por Default •Caso um valor não for inserido em uma coluna o valor DEFAULT armazenado nela é NULL. •É possível também associar um outro valor DEFAULT através da cláusula DEFAULT. •EXEMPLO: •create table codigopostal ( •codigo numeric(4) not null, •localidade char(30) default ‘lisboa’);
  • 8. Valores por Default •Cláusula DEFAULT pode ser associada a três tipos de valores •Literais •NULL •Valores de sistema
  • 9. Restrições – constrains •Restrições são regras a que os valores de uma ou mais colunas devem obedecer. •EXEMPLO: o campo SEXO de uma tabela PESSOA só pode conter os valores F ou M. •O uso das restrições é a única maneira de garantir que os dados existentes nas colunas estão de acordo com as regras especificadas no projeto do banco. •Erros de programação podem fazer com que dados sejam aceitos com conteúdos inválidos
  • 10. Constraint Not Null •É a restrição de uso mais comum •Impede a inserção de valores nulos na coluna em que é especificada •EXEMPLO •create table TESTE ( •idTeste integer not null, •nomeTeste char(60) not null);
  • 11. Constraint Check •Permite realizar a validação dos dados inseridos na coluna, através da especificação de uma condição. •São admitidos apenas os dados cujo resultado da avaliação da condição seja verdadeiro
  • 12. Constraint Check •EXEMPLO2: create table TESTE( idTeste integer not null, nomeTeste char(60) not null CHECK (nomeTeste NOT LIKE ‘%Reginaldo%’), idade integer not null CHECK (idade BETWEEN 0 AND 150), sexo char not null CHECK (sexo in (‘m’, ‘f’), anos_Servico integer not null CHECK (anos_Servico >= 0), CHECK (idade > anos_Servico + 18));
  • 13. Constraint Unique •Permite indicar que os valores dessa coluna não podem se repetir •Para garantir que não existem dados repetidos em uma coluna, os SGBD criam, sobre cada uma das colunas UNIQUE, um ÍNDICE único. •Podem existir tantas colunas UNIQUE quantas forem necessárias •MYSQL não aceita o valor NULL em campos UNIQUE
  • 14. Constraint Unique •EXEMPLO1: create table TESTE ( idTeste integer primary key, nome char(60) unique, telefone char(15), rg integer unique));
  • 15. Constraint Unique •EXEMPLO2: create table TESTE ( idTeste integer primary key, nome char(60), telefone char(15), rg integer, Unique(nome), Unique(rg));
  • 16. Constraint Unique •EXEMPLO3: garantindo que duas pessoas com o menos nome e sobrenome não existam na tabela create table TESTE ( idTeste integer primary key, nome char(60), sobrenome char(10), telefone char(15), Rg integer, Unique(nome, sobrenome), Unique(rg));
  • 17. Constraint Primary Key •É equivalente à cláusula NOT NULL + UNIQUE juntas •O conteúdo da coluna não pode ser nulo e não pode admitir repetições •Chave primária de uma tabela
  • 18. Constraint Primary Key •EXEMPLO 1: uma chave primária apenas create table TESTE ( idTeste integer primary key, nome char(60), sobrenome char(10), telefone char(15), Rg integer, Unique(nome, sobrenome), Unique(rg));
  • 19. Constraint Reference •Permite fazer a validação das chaves estrangeiras. •Não se podem inserir nos campos referenciados como chave estrangeira valores que não existam na tabela onde os campos são chave primária.
  • 20. Constraint Reference •EXEMPLO 1: create table pessoa ( idPessoa numeric primary key, nome char(30) not null, idade integer not null check (idade between 0 and 150), salario numeric(10,2) not null check (salario > 0 ), telefone char(12) null codigoPostal numeric(4) REFERENCES codigopostal(codigo));
  • 21. Constraint Reference •codigopostal numeric(4) •REFERENCES codigopostal(codigo)); •Qualquer valor inserido na coluna codigopostal da tabela PESSOA será automaticamente validado na coluna codigo da tabela CODIGOPOSTAL. •Se o valor não existir na tabela CODIGOPOSTAL, o registro não poderá ser inserido ou alterado na tabela PESSO.
  • 22. Constraint Reference •EXEMPLO 2: create table pessoa ( id numeric primary key, nome char(30) not null, telefone char(20) null codigopostal numeric(4) REFERENCES codigopostal(codigo), FOREIGN KEY (id, salario) REFERENCES pessoal(n_emp, valor)();
  • 23. Constraint Reference •codigopostal numeric(4) REFERENCES codigopostal(codigo), •FOREIGN KEY (id, salario) REFERENCES pessoal(n_emp, valor)(); •Neste exemplo houve a necessidade de referenciar uma chave estrangeira formada por dois campos usando a CLAUSULA FOREIGN KEY
  • 24. Constraint Reference •codigopostal numeric(4) REFERENCES codigopostal(codigo), •FOREIGN KEY (id, salario) REFERENCES pessoal(n_emp, valor)(); •Neste caso considera-se que existe outra tabela denominada PESSOAL, sendo a sua chave primária n_emp e valor com tipos de dados compatíveis com ID e SALARIO
  • 25. Constraint Reference •As tabelas se ligam umas às outras através das chaves estrangeiras •A chave estrangeira de uma tabela permite ligar esta tabela a uma outra onde esse mesmo atributo ou conjunto de atributos é a chave primária •QUESTÃO: o que acontece ao tentarmos apagar ou alterar os valores de uma chave primária que tem dados associados a outras tabelas?
  • 26. Constraint Reference •SOLUÇÃO: depende da forma como as tabelas foram relacionadas •As alterações na tabela mãe não se refletirão na tabela filha se não houver ligação entre elas através do uso da clausula REFERENCES •Os valores da tabela mãe não serão alterados ou apagados se estes existirem em qualquer tabela filha e se houver uma ligação entre as tabelas.
  • 27. Constraint Reference •Em alguns casos se deseja que, ao alterar um valor em uma tabela, sejam alteradas todas as ocorrências desse mesmo valor nas tabelas filhas, ou então que, ao apagar o valor na tabela mãe, sejam apagados todos os valores existentes nas tabelas filhas •Solução: ALTERAR OU APAGAR DADOS EM CASCATA •Quando se apagar ou alterar algo na tabela mãe, todas as entradas relacionadas nas tabelas filhas também são alteradas
  • 28. Constraint Reference •EXEMPLO: Create table codigopostal( codigo numeric(4) primary key, localidade char(30) not null ); Create table pessoa ( idPessoa numeric primary key, nome char (30) not null, codigopostal numeric(4) REFERENCES codigopostal (codigo) on UPDATE CASCATE ON DELETE CASCADE);
  • 29. Constraint Reference •Vamos testar no MYSQL WORKBENCH? •Criar o banco de dados AULA1 •Na QUERY do mysql, digitar os códigos SQL deste slide e executar para verificar o que ocorre •Inserir pelo menos 4 registros em cada tabela •Teste os seguintes comandos •SELECT * FROM pessoa •UPDATE codigopostal SET codigo = 2222 WHERE codigo = 1500
  • 30. Constraint Reference •Teste os seguintes comandos •Select * from pessoa •Delete from codigopostal where codigo = 2222 •Select * from pessoa •O que acontece com os registros?
  • 31. Constraint Reference •EXEMPLO:DELETE CASCADE é útil quando se pretende apagar uma fatura que contém várias linhas de fatura em outra tabela •CUIDADO: ao apagar o registro na tabela mãe serão automaticamente apagados todos os registros nas tabelas filhas
  • 32. Tabelas Resultantes •É possível criar tabelas a partir de outras tabelas já existentes •Exemplo: criar uma nova tabela denominada EMPREGADO com os campos ID, NOME e SALARIO existentes na tabela PESSOA. Deverão ser carregados automaticamente os dados cujo ID < = 35
  • 33. Tabelas Resultantes •SOLUÇÃO: Create table EMPREGADO as SELECT id, nome, salario FROM pessoa WHERE id <= 35
  • 34. Alterando Tabelas •ALTER TABLE: comando usado para alterar a estrutura de uma tabela já criada •Adicionando uma coluna: •alter table nome_da_tabela •ADD nome_da_coluna tipo_da_coluna
  • 35. Alterando Tabelas •Modificando uma coluna: •alter table nome_da_tabela •MODIFY nome_da_coluna tipo_da_coluna •Apagando uma coluna: •alter table nome_da_tabela •DROP nome_da_coluna tipo_da_coluna
  • 36. Alterando Tabelas •EXEMPLO 1: •Adicionar a tabela pessoa uma coluna chamada FAX com 15 caracteres •R.: Alter table pessoa ADD faz char (15) •Mostrar o conteúdo da tabela pessoa •R.: select * from pessoa
  • 37. Alterando Tabelas •EXEMPLO 1: •Alterar o tipo de dados da coluna FAX para 25 caracteres •R.: alter table pessoa MODIFY fax char (25); •Alterar as características da coluna SALARIO na tabela PESSOA, de tal forma que esta possa passar a admitir valores NULL •R.: alter table pessoa MODIFY salario NULL;
  • 38. Alterando Tabelas •Observação em relação à mudança para NULL: o comando só será executado com sucesso se NENHUMA ocorrência da coluna tiver NULL •Somente depois de retirados os valores NULL é que deverá ser executado o comando alter table
  • 39. Alterando Tabelas •Exemplo 2: alterar as características da coluna SALARIO na tabela CODIGOPOSTAL de tal forma que esta não admita NULL •R.: Alter table pessoa MODIFY salario not null; •OBS.: lembre-se sempre de consultar o manual do banco de dados que estiver utilizando
  • 40. Alterando Tabelas •Apagando a coluna FAX: •Alter table pessoa DROP COLUMN fax
  • 41. Apagando uma Tabela •DROP TABLE Permite apagar uma tabela •Toda a estrutura e o conjunto de valores existentes naquela tabela serão apagados •Se a tabela a ser apagada estiver referenciada em views ou regras de integridade, o comando falhará •As views e constraints associadas a tabela que será apagada, também são eliminadas
  • 42. Apagando uma Tabela •EXEMPLO: criando uma nova tabela create table teste (coluna1 char (20)); Adicionando uma nova coluna Alter table teste ADD coluna2 clar(20); Inserindo um registro INSERT INTO teste VALUES (‘Hello’, ‘Um’); Apagando a tabela DROP TABLE teste;