Você está na página 1de 161

Aula

02

Instalação do
Servidor
MySQL
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
Michael Widenius David Axmark

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
DDL Definição
DML Manipulação

DQL Solicitações
DCL Controle
DTL Transações
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
PALESTRAS E OFICINAS
O CursoemVideo também oferece palestras e oficinas
presenciais sobre diversos assuntos. São mais de 20 temas e
eles podem acontecer na sua instituição de ensino, empresa ou
evento. Entre em contato pelo endereço de e-mail abaixo
colocando a palavra Palestra no assunto da mensagem. Nós
enviaremos uma lista de temas e instruções para a contratação.

contato@cursoemvideo.com

Gustavo Guanabara
Fundador do CursoemVideo
Aula 03

Criando o
Primeiro
Banco
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
Godofredo
32 anos
Masc
78.5 Kg
1.83 m
Brasil

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Godofredo
32 anos
Masc
78.5 Kg
1.83 m
Brasil
Dolores
30 anos
Fem
52.3 Kg
1.65m
México

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Godofredo Dolores
32 anos 30 anos
Masc Fem
78.5 Kg 52.3 Kg
1.83 m 1.65m
Brasil México

Godolores
3 anos
Fem
25.8 Kg
0.89m
EUA

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


nome
idade
sexo
peso
altura

nacionalidade

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
PESSOAS
nome
idade
sexo
peso
altura
nacionalidade

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


PESSOAS JOGOS

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Registros

PESSOAS JOGOS
Tabelas

Banco de
Dados

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Banco de
Dados

CREATE DATABASE cadastro;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


nome Tabela
PESSOAS idade
sexo
peso Campos
altura
nacionalidade

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


nome
idade
sexo
PESSOAS peso
altura
nacionalidade

CREATE TABLE pessoas (


nome
idade
sexo
peso
altura
nacionalidade
);

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Tipos Primitivos
TinyInt, SmallInt, Int,
Inteiro MediumInt, BigInt
Numérico Real Decimal, Float, Double, Real

Lógico Bit, Boolean

Date, DateTime, TimeStamp,


Data/Tempo Time, Year
Caractere Char, VarChar
TinyText, Text, MediumText,
Texto LongText
Literal
Binário TinyBlob, Blob, MediumBlob,
LongBlob
Coleção Enum, Set
Geometry, Point, Polygon,
Espacial MultiPolygon

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


nome
idade
sexo
PESSOAS peso
altura
nacionalidade

CREATE TABLE pessoas (


nome varchar(30),
idade tinyint(3),
sexo char(1),
peso float,
altura float,
nacionalidade varchar(20)
);

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Vladimir
65 anos
Masc
115.78 Kg
1.85 m
Rússia

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


PALESTRAS E OFICINAS
O CursoemVideo também oferece palestras e oficinas
presenciais sobre diversos assuntos. São mais de 20 temas e
eles podem acontecer na sua instituição de ensino, empresa ou
evento. Entre em contato pelo endereço de e-mail abaixo
colocando a palavra Palestra no assunto da mensagem. Nós
enviaremos uma lista de temas e instruções para a contratação.

contato@cursoemvideo.com

Gustavo Guanabara
Fundador do CursoemVideo
Aula 04

Melhorando seu
Banco de Dados
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
Godofredo
32 anos
Masc
78.5 Kg
1.83 m
Brasil

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


nome
idade
sexo
peso
altura
nacionalidade

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


CREATE DATABASE cadastro
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Tipos Primitivos
TinyInt, SmallInt, Int,
Inteiro MediumInt, BigInt
Numérico Real Decimal, Float, Double, Real

Lógico Bit, Boolean

Date, DateTime, TimeStamp,


Data/Tempo Time, Year
Caractere Char, VarChar
TinyText, Text, MediumText,
Texto LongText
Literal
Binário TinyBlob, Blob, MediumBlob,
LongBlob
Coleção Enum, Set
Geometry, Point, Polygon,
Espacial MultiPolygon

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


CREATE TABLE pessoas (
nome varchar(30) NOT NULL,
nascimento date,
sexo enum('M','F'),
peso decimal(5,2),
altura decimal(3,2),
nacionalidade varchar(20) DEFAULT 'Brasil'
) DEFAULT CHARSET = utf8;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Vladimir
65 anos
Masc
115.78 Kg
1.85 m
Rússia

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


CREATE TABLE pessoas (
id int NOT NULL AUTO_INCREMENT,
nome varchar(30) NOT NULL,
nascimento date,
sexo enum('M','F'),
peso decimal(5,2),
altura decimal(3,2),
nacionalidade varchar(20) DEFAULT ‘Brasil',
PRIMARY KEY (id )
) DEFAULT CHARSET = utf8;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Aula 05

Inserindo dados
na Tabela
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
Godofredo
nome
02/01/1984
nascimento
Masc
sexo
78.5 Kg
peso
1.83 m
altura
Brasil
nacionalidade

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


INSERT INTO pessoas
(id, nome, nascimento, sexo, peso, altura, nacionalidade)
VALUES
(DEFAULT,'Godofredo','1984-01-02','M','78.5','1.83','Brasil');

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


INSERT INTO pessoas VALUES
(DEFAULT,'Godofredo','1984-01-02','M','78.5','1.83','Brasil');

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


INSERT INTO pessoas
(id, nome, nascimento, sexo, peso, altura, nacionalidade)
VALUES
(DEFAULT,'Ana','1975-12-22','F','52.3','1.45','EUA'),
(DEFAULT,'Pedro','2000-07-15','M','52.3','1.45','Brasil'),
(DEFAULT,’Maria','1999-05-30','F','75.9','1.70','Portugal');

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


DDL
Data Definition CREATE DATABASE
Language CREATE TABLE

DML
Data Manipulation INSERT INTO
Language

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Aula 06

Alterando a Estrutura
da Tabela
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
CREATE TABLE pessoas (
id int NOT NULL AUTO_INCREMENT,
nome varchar(30) NOT NULL,
nascimento date,
sexo enum('M','F'),
peso decimal(5,2),
altura decimal(3,2),
nacionalidade varchar(20) DEFAULT ‘Brasil',
PRIMARY KEY (id )
) DEFAULT CHARSET = utf8;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Adicionando uma nova Coluna

ALTER TABLE pessoas


ADD COLUMN profissao varchar(10);

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Removendo uma Coluna

ALTER TABLE pessoas


DROP COLUMN profissao;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Escolhendo a Posição da Coluna

ALTER TABLE pessoas


ADD COLUMN profissao varchar(10) AFTER nome;

ALTER TABLE pessoas


ADD COLUMN codigo int FIRST;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Modificando Definições

ALTER TABLE pessoas


MODIFY COLUMN profissao varchar(20);

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Renomeando Coluna

ALTER TABLE pessoas


CHANGE COLUMN profissao prof varchar(20);

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Renomeando Tabela

ALTER TABLE pessoas


RENAME TO gafanhotos;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Mais uma Tabela…
CREATE TABLE IF NOT EXISTS cursos (
nome varchar(30) NOT NULL UNIQUE,
descricao text,
carga int UNSIGNED,
totaulas int,
ano year DEFAULT '2016'
) DEFAULT CHARSET = utf8;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Adicionando Chave Primária

ALTER TABLE cursos


ADD COLUMN idcurso int FIRST;

ALTER TABLE cursos


ADD PRIMARY KEY(idcurso);

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Apagando a Tabela

DROP TABLE cursos;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


DDL
Data Definition CREATE DATABASE
Language CREATE TABLE
ALTER TABLE
DROP TABLE

DML
Data Manipulation INSERT INTO
Language

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Aula 07

Manipulando
Registros
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
gafanhotos cursos
id idcurso
nome nome
profissao descricao
nascimento carga
sexo totaulas
peso ano
altura
nacionalidade

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Registros da Tabela ‘cursos’

idcurso nome descricao carga totaulas ano


1 HTML4 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PGP … 40 20 2010
5 Jarva … 10 29 2000
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Modificando Linhas Incorretas

UPDATE cursos
SET nome = 'HTML5' idcurso nome carga ano
WHERE idcurso = '1'; 1 HTML4 40 2014

4 PGP 40 2010
UPDATE cursos 5 Jarva 10 2000
SET nome = 'PHP’, ano = '2015'
WHERE idcurso = '4';

UPDATE cursos
SET nome = 'Java’, carga = '40', ano = '2015'
WHERE idcurso = '5'
LIMIT 1;
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Removendo uma Linha

DELETE FROM cursos


WHERE idcurso='8';

DELETE FROM cursos


WHERE ano='2018'
LIMIT 3;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Removendo TODAS as Linhas

TRUNCATE TABLE cursos;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


DDL
Data Definition CREATE DATABASE
Language CREATE TABLE
ALTER TABLE
DROP TABLE

DML
Data Manipulation INSERT INTO
Language UPDATE
DELETE
TRUNCATE

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Aula 11

Obtendo Dados
das Tabelas
Parte 1
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
Registros da Tabela ‘cursos’
SELECT * FROM cursos;

idcurso nome descricao carga totaulas ano


1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Ordenação Crescente
SELECT * FROM cursos
ORDER BY nome;

idcurso nome descricao carga totaulas ano


2 Algoritmos … 20 15 2014
9 Cozinha Árabe … 40 30 2018
1 HTML5 … 40 37 2014
5 Java … 40 29 2015
6 MySQL … 30 15 2016
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
8 Sapateado … 40 30 2018
7 Word … 40 30 2016
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Ordenação Decrescente
SELECT * FROM cursos
ORDER BY nome DESC;

idcurso nome descricao carga totaulas ano


10 YouTuber … 5 2 2018
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
4 PHP … 40 20 2015
3 Photoshop … 10 8 2014
6 MySQL … 30 15 2016
5 Java … 40 29 2015
1 HTML5 … 40 37 2014
9 Cozinha Árabe … 40 30 2018
2 Algoritmos … 20 15 2014
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Selecionando Colunas
SELECT nome, carga, ano FROM cursos
ORDER BY nome;

idcurso nome descricao carga totaulas ano


2 Algoritmos … 20 15 2014
9 Cozinha Árabe … 40 30 2018
1 HTML5 … 40 37 2014
5 Java … 40 29 2015
6 MySQL … 30 15 2016
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
8 Sapateado … 40 30 2018
7 Word … 40 30 2016
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Selecionando Linhas
SELECT * FROM cursos
WHERE ano = '2016'
ORDER BY nome;

idcurso nome descricao carga totaulas ano


2 Algoritmos … 20 15 2014
9 Cozinha Árabe … 40 30 2018
1 HTML5 … 40 37 2014
5 Java … 40 29 2015
6 MySQL … 30 15 2016
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
8 Sapateado … 40 30 2018
7 Word … 40 30 2016
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Selecionando Linhas e Colunas
SELECT nome, descricao, carga FROM cursos
WHERE ano = '2016'
ORDER BY nome;

idcurso nome descricao carga totaulas ano


2 Algoritmos … 20 15 2014
9 Cozinha Árabe … 40 30 2018
1 HTML5 … 40 37 2014
5 Java … 40 29 2015
6 MySQL … 30 15 2016
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
8 Sapateado … 40 30 2018
7 Word … 40 30 2016
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Selecionando Linhas e Colunas
SELECT nome, descricao FROM cursos
WHERE ano <= '2015'
ORDER BY nome;

idcurso nome descricao carga totaulas ano


2 Algoritmos … 20 15 2014
9 Cozinha Árabe … 40 30 2018
1 HTML5 … 40 37 2014
5 Java … 40 29 2015
6 MySQL … 30 15 2016
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
8 Sapateado … 40 30 2018
7 Word … 40 30 2016
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Selecionando Intervalos
SELECT * FROM cursos
WHERE totaulas BETWEEN '20' AND '30'
ORDER BY nome;

idcurso nome descricao carga totaulas ano


2 Algoritmos … 20 15 2014
9 Cozinha Árabe … 40 30 2018
1 HTML5 … 40 37 2014
5 Java … 40 29 2015
6 MySQL … 30 15 2016
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
8 Sapateado … 40 30 2018
7 Word … 40 30 2016
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Selecionando Valores
SELECT idcurso, nome FROM cursos
WHERE ano IN (‘2014’, '2016’, ‘2018')
ORDER BY nome;

idcurso nome descricao carga totaulas ano


2 Algoritmos … 20 15 2014
9 Cozinha Árabe … 40 30 2018
1 HTML5 … 40 37 2014
5 Java … 40 29 2015
6 MySQL … 30 15 2016
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
8 Sapateado … 40 30 2018
7 Word … 40 30 2016
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Combinando Testes
SELECT * FROM cursos
WHERE carga > 35 AND totaulas < 30
ORDER BY nome;

idcurso nome descricao carga totaulas ano


2 Algoritmos … 20 15 2014
9 Cozinha Árabe … 40 30 2018
1 HTML5 … 40 37 2014
5 Java … 40 29 2015
6 MySQL … 30 15 2016
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
8 Sapateado … 40 30 2018
7 Word … 40 30 2016
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Operadores Lógicos

p q p AND q p q p OR q
V V V V V V
V F F V F V
F V F F V V
F F F F F F
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Operadores Lógicos

p q p AND q p q p OR q

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


DDL
Data Definition CREATE DATABASE
Language CREATE TABLE
ALTER TABLE
DQL
Data Query
DROP TABLE SELECT
Language
DML
Data Manipulation INSERT INTO
Language UPDATE
DELETE
TRUNCATE
Aula 12

Obtendo Dados
das Tabelas
Parte 2
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
Seleção por nome
SELECT * FROM cursos
WHERE nome = 'PHP';

idcurso nome descricao carga totaulas ano


1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Usando o Operador LIKE
SELECT * FROM cursos
WHERE nome LIKE 'P%';
Parecido Nenhum ou
Vários Caracteres

idcurso nome descricao carga totaulas ano


1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Wildcards
SELECT * FROM cursos
WHERE nome LIKE '%A';

idcurso nome descricao carga totaulas ano


1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Wildcards
SELECT * FROM cursos
WHERE nome LIKE '%A%';

idcurso nome descricao carga totaulas ano


1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Wildcards
SELECT * FROM cursos
WHERE nome LIKE 'PH%P';

idcurso nome descricao carga totaulas ano


1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Distinguindo
SELECT DISTINCT carga FROM cursos;

idcurso nome descricao carga totaulas ano


1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Funções de Agregação
SELECT COUNT(nome) FROM cursos;

10
idcurso nome descricao carga totaulas ano
1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Funções de Agregação
SELECT COUNT(nome) FROM cursos
WHERE nome LIKE '%P%';

3
idcurso nome descricao carga totaulas ano
1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Funções de Agregação
SELECT MAX(totaulas) FROM cursos;

idcurso nome descricao carga totaulas ano


1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Funções de Agregação
SELECT MIN(totaulas) FROM cursos;

idcurso nome descricao carga totaulas ano


1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Funções de Agregação
SELECT SUM(totaulas) FROM cursos;

216
idcurso nome descricao carga totaulas ano
1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Funções de Agregação
SELECT AVG(totaulas) FROM cursos;

21.6
idcurso nome descricao carga totaulas ano
1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Exercitando…

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Uma lista com o nome de todas as
gafanhotas”

01

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Uma lista com os dados de todos
aqueles que nasceram entre 1/Jan/2000
e 31/Dez/2015”

0 2

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Uma lista com o nome de todos os
homens que trabalham como
Programadores”

03

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Uma lista com os dados de todas as
mulheres que nasceram no Brasil e que
têm seu nome iniciando com a letra J”

0 4

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Uma lista com o nome e nacionalidade
de todos os homens que têm Silva no
nome, não nasceram no Brasil e pesam
menos de 100 Kg”

05

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Qual é a maior altura entre gafanhotos
homens que moram no Brasil?”

0 6

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Qual é a média de peso dos gafanhotos
cadastrados?”

07

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Qual é o menor peso entre as
gafanhotos mulheres que nasceram fora
do Brasil e entre 01/Jan/1990 e 31/Dez/
2000?”

0 8

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Quantas gafanhotos mulheres têm mais
de 1.90m de altura?”

09

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Aula 13

Obtendo Dados
das Tabelas
Parte 3
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
Distinguindo

65
32 65 32
3 30 32
3

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Distinguindo

65
32 65 32
3 30 32
3

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Agrupando

65
32 65 32
3 30 32
3

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Agrupando

65
65 32 32
3 32 30
3

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Distinguindo
SELECT DISTINCT carga FROM cursos
ORDER BY carga;

idcurso nome descricao carga totaulas ano


1 HTML5 … 40 37 2014
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Distinguindo
SELECT DISTINCT carga FROM cursos
ORDER BY carga;

idcurso nome descricao carga totaulas ano carga


1 HTML5 … 40 37 2014 5
2 Algoritmos … 20 15 2014 10
3 Photoshop … 10 8 2014 20
4 PHP … 40 20 2015 30
5 Java … 40 29 2015 40
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Agrupando Registros
SELECT carga FROM cursos
GROUP BY carga;

Agrupado

idcurso nome descricao carga totaulas ano carga


1 HTML5 … 40 37 2014 40
2 Algoritmos … 20 15 2014 20
3 Photoshop … 10 8 2014 10
4 PHP … 40 20 2015 30
5 Java … 40 29 2015 5
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Agrupando & Agregando
SELECT carga ,COUNT(nome) FROM cursos
GROUP BY carga;

idcurso nome descricao carga totaulas ano carga count()


1 HTML5 … 40 37 2014 40 6
2 Algoritmos … 20 15 2014 20 1
3 Photoshop … 10 8 2014 10 1
4 PHP … 40 20 2015 30 1
5 Java … 40 29 2015 5 1
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Agrupando & Agregando
SELECT carga ,COUNT(nome) FROM cursos
GROUP BY carga
HAVING COUNT(nome) > 3;

idcurso nome descricao carga totaulas ano carga count()


1 HTML5 … 40 37 2014 40 6
2 Algoritmos … 20 15 2014
3 Photoshop … 10 8 2014
4 PHP … 40 20 2015
5 Java … 40 29 2015
6 MySQL … 30 15 2016
7 Word … 40 30 2016
8 Sapateado … 40 30 2018
9 Cozinha Árabe … 40 30 2018
10 YouTuber … 5 2 2018
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Exercitando…

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Uma lista com as profissões dos
gafanhotos e seus respectivos
quantitativos”

01

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Quantos gafanhotos homens e quantas
mulheres nasceram após 01/Jan/2005?”

0 2

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“Uma lista com os gafanhotos que
nasceram 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 3 gafanhotos com
essa nacionalidade” 03

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


“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”
0 4

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Aula 14

Relacionando
as Tabelas
Parte 1
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
Modelo Relacional

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
id
nome
GAFANHOTO profissao
nascimento
sexo
peso
altura
nacionalidade

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Entidade
id
nome Atributos
GAFANHOTO profissao
nascimento
sexo
peso
altura
nacionalidade

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


id
nome
profissao
nascimento
Entidade GAFANHOTO sexo
peso
altura
nacionalidade

assiste
Relacionamento

idcurso
nome
descricao
CURSO carga
totaulas
ano

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


id
nome
profissao
nascimento
Entidade GAFANHOTO sexo

DIAGRAMA E-R
peso
altura
nacionalidade

assiste
Relacionamento

DER idcurso
nome
descricao
CURSO carga
totaulas
ano

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


GAFANHOTO assiste CURSO

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


assiste
GAFANHOTO CURSO

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


n assiste
n
GAFANHOTO CURSO

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


GAFANHOTO
n assiste
n CURSO

Cardinalidade

muitos-para-muitos
MARIDO
1 casa 1 ESPOSA
com

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


MARIDO
1 casa 1 ESPOSA
com

um-para-um

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


FUNCIONÁRIO
1 cuida
n DEPENDENTE

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


FUNCIONÁRIO
1 cuida
n DEPENDENTE

um-para-muitos

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


CLIENTE
n compra
n PRODUTO

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


CLIENTE
n compra
n PRODUTO

muitos-para-muitos

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Y

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


1 casa 1
MARIDO com ESPOSA

cpf-marido cpf-esposa cpf-esposa

nome nacionalidade nome nacionalidade

nascimento nascimento

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


1 n
FUNCIONÁRIO cuida DEPENDENTE

cpf id cpf-func

nome especialidade nome nacionalidade

cargo nascimento

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


n n
CLIENTE compra PRODUTO

cpf cod-prod

nome telefone nome preco

endereco fabricante

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


1 n n 1
CLIENTE compra PRODUTO

cpf id-compra cod-prod cod-prod

nome telefone data cpf-cliente nome preco

endereco forma-pagto fabricante

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Aula 15

Relacionando
as Tabelas
Parte 2
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
MyISAM
InnoDB
XtraDB
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ACID
Atomicidade Durabilidade
Consistência Isolamento

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


id
nome
idcurso
profissao
nome
nascimento n 1 descricao
sexo GAFANHOTO prefere CURSO carga
peso
totaulas
altura
ano
nacionalidade

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


id
nome
profissao idcurso
nome
nascimento
sexo
n 1 descricao
GAFANHOTO prefere CURSO carga
peso
altura totaulas
ano
nacionalidade
cursopreferido

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Adicionando a Foreign Key

ALTER TABLE gafanhotos


ADD COLUMN cursopreferido int;

ALTER TABLE gafanhotos


ADD FOREIGN KEY (cursopreferido)
REFERENCES cursos(idcurso);

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Atualizando os Registros

UPDATE gafanhotos
SET cursopreferido = '5'
WHERE id = '1';

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Integridade Referencial

DELETE FROM cursos


WHERE idcurso = '6';

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Integridade Referencial

id
nome
idcurso
profissao
nome
nascimento n 1 descricao
sexo GAFANHOTO prefere CURSO carga
peso
totaulas
altura
ano
nacionalidade
cursopreferido

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Junções

SELECT * FROM gafanhotos JOIN cursos


ON gafanhotos.cursopreferido = cursos.idcurso;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Junções
n 1
GAFANHOTO prefere CURSO

LEFT JOIN INNER JOIN RIGHT JOIN


Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
Aula 16

Relacionando
as Tabelas
Parte 3
Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com
ATENÇÃO
O uso deste material em sala de aula está totalmente autorizado,
desde que seja distribuído de forma GRATUITA e os direitos do
autor sejam respeitados, citando a fonte durante a aula.

O CursoemVideo é uma empresa de educação à distância,


que cria cursos na área de Tecnologia da Informação e
disponibiliza diretamente no seu canal do YouTube, no endereço
abaixo:
youtube.com/cursoemvideo/playlists

Gustavo Guanabara
Fundador do CursoemVideo
n n
GAFANHOTO assiste CURSO

id idcurso

nome nascimento nome aulas

sexo descricao

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


1 n n 1
GAFANHOTO assiste CURSO

id id idcurso idcurso

nome nascimento data idgafanhoto nome aulas

sexo descricao

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Criando a Tabela extra
CREATE TABLE gafanhoto_assiste_curso (
id int NOT NULL AUTO_INCREMENT,
data date,
idgafanhoto int,
idcurso int,
PRIMARY KEY (id),
FOREIGN KEY (idgafanhoto) REFERENCES gafanhotos(id),
FOREIGN KEY (idcurso) REFERENCES cursos(idcurso)
) DEFAULT CHARSET = utf8;

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Entendendo a Relação

1 n n 1
GAFANHOTO assiste CURSO

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Inserindo os Registros

INSERT INTO gafanhoto_assiste_curso


(id, data, idgafanhoto, idcurso) VALUES
(DEFAULT,'2014-03-01','1','2'),

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com


Junções

SELECT * FROM gafanhotos g


JOIN gafanhoto_assiste_curso a
ON g.id = a.idgafanhoto
JOIN cursos c
ON a.idcurso = c.idcurso;

GAFANHOTO assiste CURSO

idgafanhoto idcurso idcurso


id

Todos os direitos de reprodução e distribuição reservados ao site CursoemVideo.com

Você também pode gostar