Bancodedados
Bancodedados
Registros armazenados em
tabelas.
Hierárquico- Os dados são representados como uma estrutura de arvore. Este modelo é
composto de hierarquia de registro de dados.
Rede-Representa os dados como registros vinculados uns aos outros, formando conjuntos
comuns de dados.
dBase -------------------------------.dbf
Organização
Cada banco de dados pode ser formado por uma ou mais tabelas(Entidades ou relações).
Cada tabela dos bancos de dados são formadas por vários campos(Atributos ou colunas).
Cada tabela a princípio tem uma chave primária e possuem outras chaves estrangeiras ou
secundarias.
Chave Primária(primary Key)- Uma chave primária identifica exclusivamente cada registro em
uma tabela de banco de dados. As chaves primárias facilitam a vinculação de informações em
tabelas separadas, e é recomendável que você tenha uma chave primária em cada tabela.
Chave Estrangeira(foreign key) – Uma chave estrangeira é um campo que aponta para a chave
primária de outra tabela ou da mesma tabela.
Chave Composta – Uso de vários campos em combinação como uma chave primária.
Chave Secundária- Utilizada como meio para pesquisar, classificar, filtrar ou recuperar
registros. Exemplo de recuperação: Cidade=’fortaleza’.
Comandos SQL
Tipos primitivos
Coleção-Enum,Set
Show databases;
Entrando no banco
Use cadastro;
Criando tabelas
Nome varchar(30),
Idade tinyint(3),
Sexo char(1),
Peso float,
Altura float,
Nacionalidade varchar(20)
);
Visualizando as tabelas existente no banco de dados
Show tables;
Describe pessoas;
Nascimento date,
Sexo enum(‘m’,’f’),
Peso decimal(5,2),
Altura decimal(3,2),
Primary key(id)
DDL linguagem de definição de dados – create database, create table, alter table, drop table
DQL select
Incluindo os dados na tabela
values
values
values
values
Removendo coluna
Rename to gafanhotos;
Descricao text,
Totaulas int,
Ano year default ‘2016’
Apagando a tabela
Modificar a tabela cursos configurando o campo nome para html5 onde idcurso =1
Update cursos
Update cursos
Where idcurso=’4’;
Update cursos
Where idcurso=’5’
Where idcurso=’8’;
Limit 2;
Comando para ver quais comandos foram usados para criar a tabela
Comando para ver quais comandos foram usados para criar o banco
Comando select
Selecione ano, nome, carga da tabela curso ordenadas pelo ano depois ordena por nome
Selecione todas as colunas da tabela cursos onde ano =2016 ordenado pelo nome;
Select nome, descricao from cursos where ano <=’2015’ order by nome;
Selecione todos as colunas da tabela cursos onde totaulas esteja entre 20 e 30 ordenados
por nome;
Select * from cursos where totaulas between ‘20’ and ‘30’ order by nome;
Selecione nome, ano da tabela cursos onde ano esteja entre 2010 e 2015
Select nome, ano from cursos where ano between ‘2010’ and ‘2015’;
Selecione idcurso, nome da tabela cursos onde o ano seja 2014, 2016, 2018 ordenado por
nome
Select idcurso, nome from cursos where ano in(‘2014’, ‘2016’, ‘2018’) order by nome;
Selecione todos as colunas da tabela cursos onde carga é maior que 35 e totaulas menor que
30 ordenados por nome;
Select * from cursos where carga >35 and totaulas <30 order by nome;
Selecione todos as colunas da tabela cursos onde carga é maior que 35 ou totaulas menor
que 30 ordenados por nome;
Select * from cursos where carga >35 or totaulas <30 order by nome;
Selecione todos as colunas da tabela cursos onde nome comece com a letra p seguido de
qualquer coisa
Variaçoes do like
%A – termina em a.
Funçoes de agregção
exercícios
2- uma lista com os dados de todos aqueles que nasceram entre 1/jan/2000 e 31/dez/2015
3- uma lista com o nome de todos os homens que trabalham como programadores
4- uma lista com dados de todas as mulheres que nasceram no brasil e que tem seu nome
iniciado com a letra j.
5- uma lista com nome e nacionalidade de todos os homens que tem silva no nome, não
nasceram no brasil e pesam menos de 100kg.
8- qual é o menor peso entre as gafanhotas mulheres que nasceram fora do brasil e entre
01/jan/1990 e 31/dez/2000
Agrupamento de registros
Select carga,totaula count(nome) from cursos where totaula =30 group by carga;
Selecione a quantidade dos registros agrupados por carga somente quem tem nome maior
que 3
Select carga, count(nome) from cursos group by carga having count(nome)>3;
Selecione o ano e o total de cursos onde total de aulas seja maior que 30 agrupando por ano
mostrando ano acima de 2013 ordenado pelo total.
Select ano, count(*) from cursos where totaulas >30 group by ano having ano > 2013 order by
count(*) desc;
Selecione a carga e o total de horas onde os cursos sejam acima de 2015 agrupando por
carga mostrando acima da media da carga.
Select carga, count(*) from cursos where ano > 2015 group by carga having carga>(select
avg(carga) from cursos);
Exercicios
3-uma lista com os gafanhotos que nasceram fora do brasil, mostrando o pais de origem e o
total de pessoas nascidas lá. So nos interessam os países que tiverem mais de 3 gafanhotos
com nacionalidade.
4-uma lista agrupada pela altura dos gafanhotos, mostrando quantas pessoas pesam mais de
100kg e estão acima da media de altura de todos os cadastrados.
Classificação 1:1
Classificação 1:n
Exercite
Chave estrangeira – é uma chave primaria de algum lugar que foi pra outro lugar .Depende da
classificação o nome pode ser diferente mas o tipo tem que ser o mesmo inteiro, varchar.
Regra 1:n pegue a chave primaria do lado 1 e jogue para o lado n como chave estrangeira
Relacionamento n:n desmembra o relacionamento em dois relacionamento 1:n e depois pego
a chave primaria do lado 1 e jogo como chave estrangeira no lado n
Consistência- o banco de dados tem que continuar consistente após uma transação
Durabilidade-uma transação tem que ser durável o tempo que for necessário
References cursos(idcurso);
Atualize a tabela gafanhotos no campo cursopreferido com idcurso = 4 onde id do aluno seja
=a1
on cursos.idcurso = gafanhotos.cursopreferido;
usando apelidos
Select g.nome, g.cursopreferido, c.nome, c.ano
on c.idcurso = g.cursopreferido;
O outer join mostra todos os casos os que preferem e os que não preferem cursos.
on c.idcurso = g.cursopreferido;
Criar uma nova tabela do relacionamento
Data date,
Idgafanhoto int,
Idcurso int,
Join gafanhoto_assiste_curso a
On g.id = a.idgafanhoto;
Join gafanhoto_assiste_curso a
On g.id = a.idgafanhoto;
Join gafanhoto_assiste_curso a
On a.idcurso = c.idcurso;