Você está na página 1de 22

CURSO BANCO DE DADOS:

 Bancos de dados foram feitos para armazenar dados.

 É formado por várias tabelas, colunas e linhas.

VANTAGENS:

 Os dados vão ser armazenados no HD, ou seja, não serão perdidos, e o


armazenamento será de forma organizada.

 Podemos buscar e consultar os dados sempre que necessário

METADADOS: São os itens relacionados aos dados que será armazenados em cada coluna.

SISTEMA GERENCIADOR DE BANCO DE DADOS- SGBD:

EXEMPLOS.: MSQL, ORACLE, PostgreSQL

SQL: STRUCTURED QUERY LANGUAGE: Linguagem de consulta estruturada.

Exemplo: select nome from pessoa -> estamos dizendo ao banco de dados que busque os
nomes na tabela pessoa e o banco de dados irá buscar as informações gerando uma tabela
temporária com todos os nomes.
CHAVE PRIMÁRIA: PRIMARY KEY

-A chave primária está relacionada com uma tabela no banco de dados.

-Ela nos ajuda a identificar unicamente um registro, ou seja uma linha dentro da tabela.

-Quando formos relacionar outras tabelas, será necessário fazer refrência a chave primária
pois cada tabela precisa de um identificador.

MVC: Model View Controller

É um padrão de arquitetura de software que está dividido em três camadas:

 model(nosso banco de dados);

 view (parte de front end, a tela)

 controller (vai estar gerenciando os dados entre o model e a view, ou seja,


gerencia as duas camadas. Faz o meio de campo. Onde entra nosso back-end)

-> Porque usar o MVC?

 Melhor nível de sustentabilidade (facilita a manutenção da aplicação);

 A arquitetura modular permite aos desenvolvedires e designers trabalharem em


pararelo;

 Independência das camadas (partes da aplicação podem ser modificadas sem a


necessidade de alterar outras);   
TIPOS DE DADOS:

Os dados são armazenados em tabelas e colunas. Cada coluna possui um tipo de dado.

TIPOS DE DADOS NO MYSQL:

NUMÉRICO:

 BOOL ou BOOLEAN- Para armazenar um valor falso ou verdadeiro.

 INTEGER- Para armazenar um valor inteiro.

 BIGINT- Para armazenar um número inteiro maior.

 DECIMAL [(M[,D])] - Exemplo armazenar um valor monetário. A letra M representa


a quantidade de digítos e o D o número de casas decimais. Ex.: 10,20 são dez dígitos e
duas casas decimais.

DATA E TEMPO:

 DATE- Trabalha apenas com data (Ex.: data de nascimento).

 DATETIME - Armazena tanto a data quanto a hora.

STRING:

CHAR(M)- No lugar da letra 10 vamos colocar um valor que representa quantos caracteres a
coluna terá. Porém ao usar o CHAR se declaramos o tamanho 10 e utilizamos somente 2
caracteres, os demais serão completados com um espaço em branco.

VARCHAR(M)- No caso do VARCHAR, se declaramos o valor 10 e utilizamos somente 2


caracteres, ele vai utilizar apenas os 2 caracteres pra salvar. Ou seja, o varchar vai utilizar
menos espaço em disco.

TEXT - Pode armazenar um texto maior.


BLOB - Utilizado para armazenarmos uma foto, um arquivo.

CRIANDO TABELAS NO MYSQL:

COMANDOS:

 create database - comando que cria o banco de dados;

 show databases - comando que mostra quais os bancos de dados que já tenho.

 use nome do banco - comando para indicar que queremos utilizar determinado
banco.

 create table (nome da tabela) - comando para criar uma tabela.

 drop database (nome do banco)- comando para apagar o banco de dados.


 describe (nome da tabela) comando que descreve as informações da tabela.

 alter table- comando utilizado para alterar a tabela.

 add column- adicionar uma coluna:

 drop column- remover uma coluna:

 after para adicionar uma coluna abaixo de outra(já existente) e first para adicionar
uma coluna na primeira posição:

 modify column- modificando definições da coluna:

 change column- para renomear a coluna:


 rename to- para renomar a tabela:

 adicionar chave primária depois de criar a tabela:

 Modificando linhas na tabela: você já digita as novas alterações que deseja fazer
dentro de '          ':
 Removendo uma linha: se você usar o comando limit 1(ou qualquer outro
número) ele irá apagar apenas o número de linhas indicado.

 Comando truncate : removendo todas as linhas da tabela

COMANDO SELECT E SUAS FUNÇÕES: OBTENDO DADOS DAS TABELAS:

Filtrando/selecionando colunas:

 Note que ao usar o select, substituímos o *(que seleciona todas as colunas) pelo nome
das colunas que desejamos selecionar.

 O comando ORDER BY ordena a coluna que desejamos exibir. Utilizando ORDER BY


(NOME DA COLUNA) DESC ele irá ordenar em ordem decrescente.

Filtrando/selecionando linhas:

 Utilizamos o WHERE como uma condição que irá auxiliar o filtro das linhas que
desejamos selecionar. Este comando basicamente representa “selecione todas as colunas da
tabela cursos onde o ano for 2016 e ordene-as por nome:”
 Você também pode selecionar linhas e colunas específicas:

 Também podemos utilizar o WHERE com outros operadores relacionais, como por
exemplo, >(maior), <(menor), =(igual), >=(maior igual), <=(menor igual) e !=(diferente):

 BETWEEN significa ENTRE:

 Temos ainda a opção IN onde você pode especificar valores:


 Utilizando o AND e operadores relacionais:

 Utilizando o operador like para selecionar todos os cursos que começam com
determinada letra:

LIKE ‘P%’:

 Operador LIKE ‘%A’ para selecionar todos os cursos que terminam com determinada
letra:
 LIKE %A% para selecionar todos os cursos que contenham a letra A em qualquer
posição:

 DISTINCT: Note que, como o 40 possui várias ocorrências, ele irá distinguir e mostrar
uma única vez:

Usando o distinct ele fez uma espécie de agrupamento considerando uma única os valores
repetidos:
Função COUNT() que irá contar os registros :

Função que seleciona o maior registro:

Note que com a função max podemos ver qual curso possui a maior carga horária:

 Função MIN que seleciona o menor registro:

 Função SUM que soma os registros:


 Função AVG para calcular a média: neste exemplo ele somou o total de aulas e dividiu
pelo número de cursos mostrando o valor da média:

EXERCÍCIOS BANCO DE DADOS:

1)lista com o nome de todos os gafanhotos do sexo feminino

RESPOSTA: select * from gafanhotos

where sexo = 'F'

order by nome;

2)lista com os dados de todos aqueles que nasceram entre 1/jan/2000 e 31/dez/2015
RESPOSTA: select * from gafanhotos

where nascimento between '2000-01-01' and '2015-12-31';

3)lista com o nome de todos os homens que trabalham como programadores

RESPOSTA: select nome, sexo, profissao from gafanhotos

where sexo = 'M' and profissao = 'programador'

order by nome;

4)uma lista com os dados de todas as mulheres que nasceram no brasil e que tem seu nome
iniciado com a letra J

RESPOSTA: select nome, sexo, nacionalidade from gafanhotos

where nacionalidade = 'Brasil' and sexo = 'F' and nome like 'J%'

order by nome;

5)uma lista com o nome e a nacionalidade de todos os homens que tem silva no nome, não
nasceram no brasil e pesam menos de 100kg

RESPOSTA: select nome, nacionalidade from gafanhotos

where sexo = 'M' and nome like '%silva%' and nacionalidade != 'Brasil' and peso < '100.00'

order by nome;

6)qual é a maior altura entre gafanhotos homens que moram no Brasil

RESPOSTA: select max(altura) from gafanhotos

where sexo = 'M' and nacionalidade = 'Brasil';

7)qual é a média de peso dos gafanhotos cadastrados?

RESPOSTA: select avg(peso) from gafanhotos;


8)qual é o menor peso entre as gafanhotos mulheres que nasceram fora do Brasil e entre
01/01/1990 e 31/12/2000?

RESPOSTA: select min(peso) from gafanhotos

where sexo = 'F' and nacionalidade != 'Brasil' and nascimento between '1990-01-01' and '2000-
12-31';

9)Quantas gafanhotos mulheres tem mais de 1.90m de altura?

RESPOSTA:    select count(nome) from gafanhotos

where sexo = 'F' and altura > '1.90';

 Função GROUP para agrupar os registros:


Neste exemplo, além do GROUP BY utilizamos também o comando COUNT onde
então ele irá agrupar os cursos de acordo com suas respectivas quantidades de
horas e contar quantos cursos possuem a mesma carga horária

SIGNIFICA: AGRUPADO POR

 O bacana do agrupamento é poder utilizar as funções de agregação junto com ele.


 Mas não para por aí não, você pode selecionar quem você pode agrupar: Neste
exemplo ele vai selecionar quantas cargas são, agrupar e totalizar, como vimos no
exemplo anterior, porém agora iremos FILTRAR adicionando a função HAVING
pois queremos mostrar somente quem tem mais de 3 cursos:
 Veja o mesmo exemplo porém agora no ambiente MySQL:
 Neste comando, ele selecionou a carga, agrupou por carga, contou quantos
cursos possuíam as respectivas cargas e filtrou para mostrar somente os que
tinham mais de 3 cursos.

 O HAVING pro grupo BY é semelhante ao WHERE pro SELECT. Porém dentro


do HAVING só é possível trabalhar com o campo que você agrupou. Veja:
 Mas nada te impede de também utilizar o WHERE nesse comando:

 Deu pra entender? Você pode SELECIONAR, FILTRAR, AGRUPAR e dizer dentro
desse agrupamento QUAL VOCÊ QUER EXIBIR(HAVING);

UTILIZANDO UM SELECT DENTRO DO OUTRO:


selecionei
filtrei
agrupei
Desse agrupamento, mostrar apenas
quem tem a carga acima da média.

Neste exemplo estamos selecionando a carga e os cursos onde o ano é maior que
2015, agrupando-os por carga e desse agrupamento queremos mostrar apenas aqueles
que tem a carga acima da média calculada.

EXERCÍCIOS:

1) Uma lista com as profissões dos gafanhotos e seus respectivos quantitativos:

RESPOSTA:

select profissao, count(*) from gafanhotos

group by profissao

order by count(*);

2) Quantos gafanhotos homens e quantas mulheres nasceram após 01/Jan/2005?

RESPOSTA:

select sexo, count(sexo) from gafanhotos

where nascimento > 2015-01-01

group by sexo;
3) Uma lista com os gafanhotos nascidos fora do Brasil, mostrando o país de origem e o
total de pessoas nascidas lá. Só nos interessam os países que tiverem mais de três
gafanhotos com essa nacionalidade:

RESPOSTA:

select nacionalidade, count(*) from gafanhotos

where nacionalidade != 'Brasil'

group by nacionalidade

having count(nacionalidade) > 3;

4) Uma lista agrupada pela altura dos gafanhotos, mostrando quantas pessoas pesam mais
de 100kg e que estão acima da média de altura de todos os cadastrados.

RESPOSTA:

select avg(altura) from gafanhotos;

select altura, count(*) from gafanhotos

where peso > '100.0'

group by altura

having altura > (select avg(altura) from gafanhotos);

OBSERVAÇÃO: O símbolo de    ponto e vírgula    indica o fim do comando.

->Tabela cliente:
->Tabela pedido:

 insert into (nome da tabela)- comando para inserar dados na tabela:

 select * from (nome da tabela)- comando utilizado consultar os dados da tabela:

COMANDOS DE DEFINIÇÃO (DDL):


COMANDOS DE MANIPULAÇÃO (DML):

CHAVE ESTRANGEIRA: FOREIGN KEY:

-Chave estrangeira, ou Foreign Key (FK), ou ainda chave externa é a chave que permite a
referência a registros oriundos de outras tabelas. Ou seja, é o campo ou conjunto de campos
que compõem a chave primária de uma outra tabela:

CONSTRAINTS:
NOTNULL: Campos obrigatoriamente digitáveis usamos a constraint notnull.

OBS.: Nas tabelas as LINHAS são as tuplas ou registros e as COLUNAS são os campos ou
atributos.

Você também pode gostar