0% acharam este documento útil (0 voto)
28 visualizações36 páginas

SQL

Gia prático de mysql
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
28 visualizações36 páginas

SQL

Gia prático de mysql
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 36

O QUE É UM BANCO DE DADOS -

O banco de dados é a organização e armazenagem de informações


sobre um domínio específico. De forma mais simples, é o
agrupamento de dados que tratam do mesmo assunto, e que
precisam ser armazenados para segurança ou conferência futura.
É comum que empresas tenham diversas informações que
precisam ser organizadas e disponibilizadas dentro do negócio
para que sejam consultadas posteriormente pela equipe e pela
gerência.
Por isso, é interessante ter um sistema de gerenciamento de
banco de dados, SGBD, para conseguir manipular as informações e
tornar a rotina da empresa muito mais simples.
Hoje, existem diversos tipos de SGBDs, e cada um é adequado para
uma necessidade dos clientes. São os mais comuns: Oracle, DB2,
MySQL, SQL Server, PostgreSQL e outros.
A DEFINIÇÃO DE SGBD
“Um Sistema de Gerenciamento de Banco de Dados (SGBD) – do
inglês Data Base Management System (DBMS) – é o conjunto de
programas de computador (softwares) responsáveis pelo
gerenciamento de uma base de dados. Seu principal objetivo é
retirar da aplicação cliente a responsabilidade de gerenciar o
acesso, a manipulação e a organização dos dados. O SGBD
disponibiliza uma interface para que seus clientes possam incluir,
alterar ou consultar dados previamente armazenados. Em bancos
de dados relacionais a interface é constituída pelas APIs
(Application Programming Interface) ou drivers do SGBD, que
executam comandos na linguagem SQL (Structured Query
Language).”
BANCO DE DADOS RELACIONAL
Um banco de dados relacional é um banco de dados que modela
os dados de uma forma que eles sejam percebidos pelo usuário
como tabelas (LINHAS E COLUNAS), ou mais formalmente relações.
BANCO DE DADOS TEM TABELAS/ENTIDADES QUE SÃO
FORMADOS DE ATRIBUTOS/ COLUNAS QUE SÃO FORMADOS POR
REGISTROS/LINHAS/TUPLAS, DADOS COMPÕEM OS REGISTROS.
TABELA
ATRIBUTO
linha/dado

TABELA CLIENTES
NOME EMAIL IDADE
José jose@mail.com 32
Antonio antonio@mail.com 19
CHAVE PRIMÁRIA / PRIMARY KEY
Primeiramente, a Chave Primária é usada quando precisamos dos
seguintes objetivos em uma tabela:
 Ter unicidade de um registro
 Que esse registro NÃO seja nulo
 Ou que esse registro possa identificar a tabela
Portanto, a Chave Primária (PRIMARY KEY) identifica uma tabela
por meio da unicidade de um registro e por sua obrigatoriedade de
não ser nulo.
Contudo, uma tabela só pode ter apenas uma Chave Primária, que
geralmente é o ID ou COD ou algo do tipo.
* = PRIMARY KEY
TABELA PRODUTOS
CODIGO* NOME ESTOQUE PREÇO
01* MOUSE 500 32,50
02* TECLADO 10 300,00

OBS: uma chave primária pode ser criada a partir de duas outras
chaves, gerando assim uma chave composta. Por exemplo: ao
juntar os campos ‘cpf’ e ‘nome’, temos uma identificação única
formada por dois campos (chave composta).
CHAVE ESTRANGEIRA/FOREIGN KEY
A Chave Estrangeira é, sobretudo, sinônimo de relacionamento
entre tabelas. Por quê?
Porque uma Chave Estrangeira nada mais é do que a Chave
Primária de uma tabela ‘colocada’ em outra tabela. E por que é
feito isso?
(ela aponta para a chave primaria de outra tabela)
Resumidamente, a Chave Estrangeira, além de conectar tabelas,
tem mais esses propósitos:
 Ela impede que você adicione um valor inválido no ID de uma
tabela
 Ela impede que você exclua um registro caso ele faça
referência em outra tabela
Traduzindo: não é possível adicionar um valor que não existe em
uma chave primária para o campo referenciado como chave
estrangeira.
Ela também não vai deixar você excluir um dado da sua tabela,
sem que antes você o exclua da tabela original, a que você faz
referência utilizando a Chave Estrangeira.
Entretanto, ao contrário da Chave Primária, uma tabela pode ter
mais de uma Chave Estrangeira.
* = chave primaria º = chave estrangeira
ALUNOS MATRICULA
ALUNOº DA TABELA
NOME* CODIGO* MATRICULA SE REFERENCIA
IDADE ALUNOº A NOME* DA TABELA
ENDEREÇO
ALUNO
O QUE É SQL?
SQL significa “Structured Query Language”, ou “Linguagem de
Consulta Estruturada”, em português. Resumidamente, é uma
linguagem de programação para lidar com banco de dados
relacional (baseado em tabelas). Foi criado para que vários
desenvolvedores pudessem acessar e modificar dados de uma
empresa simultaneamente, de maneira descomplicada e unificada.
E se quiser conferir cursos sobre o tema, confira os links abaixo:
O QUE É E COMO USAR O MYSQL?
O MySQL é um sistema gerenciador de banco de dados relacional
de código aberto usado na maioria das aplicações gratuitas para
gerir suas bases de dados. O MySQL utiliza a linguagem SQL
(Structure Query Language – Linguagem de Consulta Estruturada),
que é a linguagem mais popular para inserir, acessar e gerenciar o
conteúdo armazenado num banco de dados.
******************************************************
DML (Linguagem de Manipulação de Dados) : É um conjunto de
instruções usada nas consultas e modificações dos dados
armazenados nas tabelas do banco de dados.
DDL (Linguagem de Definição de Dados): É um conjunto de
instruções usado para criar e modificar as estruturas dos objetos
armazenados no banco de dados.
DCL (Linguagem de Controle de Dados): São usados para controle
de acesso e gerenciamento de permissões para usuários em no
banco de dados. Com eles, pode facilmente permitir ou negar
algumas ações para usuários nas tabelas ou registros (segurança
de nível de linha).
TCL (Linguagem de Controle de Transações): São usados para
gerenciar as mudanças feitas por instruções DML . Ele permite que
as declarações a serem agrupadas em transações lógicas.

ACID NA TRANSAÇÃO
O que é uma transação?
Tudo aqulio que você pede ao banco, ele processa e te responde é
uma transação.
ACID é um conceito que se refere às quatro propriedades de
transação de um sistema de banco de dados: Atomicidade,
Consistência, Isolamento e Durabilidade.
ATOMICIDADE: Em uma transação envolvendo duas ou mais
partes de informações discretas, ou a transação será executada
totalmente ou não será executada, garantindo assim que as
transações sejam atômicas.
CONSISTÊNCIA: A transação cria um novo estado válido dos dados
ou em caso de falha retorna todos os dados ao seu estado antes
que a transação foi iniciada.
ISOLAMENTO: Uma transação em andamento mas ainda não
validada deve permanecer isolada de qualquer outra operação, ou
seja, garantimos que a transação não será interferida por
nenhuma outra transação concorrente.
DURABILIDADE: Dados validados são registados pelo sistema de
tal forma que mesmo no caso de uma falha e/ou reinício do
sistema, os dados estão disponíveis em seu estado correto.

INNODB É COMPATIVÉL COM O ACID


TIPOS PRIMITIVOS SQL
NUMERICOS
inteiros:
 TinyInt(3 Bytes)
 SmallInt()
 Int(11 Bytes)
 MediumInt()
 BigInt()
reais:
 Decimal(numero de slots, numero de casa decimais)
 Float()
 Double()
 Real()
logicos:
 Bit(1 & 0)
 Bolean(TRUE & FALSE)
LITERAIS
caracteres:
 Char( numero estipulado fixo)
 VarChar(numero estipulado mas pode variar)
textos:
 TineText()
 Text()
 MediumText()
 LongText()
binarios:
 TinyBlob()
 Blob()
 MediumBlob()
 LongBlob
coleções:
 Enum(elementos que podem ser optados, separa por virgula)
 Set()

DATAS
 Date(data)
 DateTime(datas e horas)
 TimeSatamp()
 Time(somente hora)
 Year(somente ano)
ESPACIAL
 Geometry
 Point
 Polygon
 MultyPolygon

COMANDOS DDL: CREATE TABLE, CREATE DATABASE, ALTER


TABLE, DROP TABLE;
COMANDO DML: INSERT INTO, UPDATE, DELETE, TRUNCATE,
SELECT;
ATIVIDADES
STATUS;
/mostra o status do servidor de banco de dados.

SHOW DATABASES;
/mostra os bancos que existem no servidor.

CREATE DATABASE IF NOT EXISTS teste;


/criou um banco de dados com o nome de teste, caso ele não
existisse.

DROP DATABASE teste;


/apagou o banco de dados de nome teste

CREATE DATABASE cadastro,


DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
/criou um banco de dados com o nome cadastro, e colocou os
caracteres do padrão utf8 como cartacteres a serem usados pelo
abanco, juntamente com a colação utf8_general_ci.

USE cadastro;
/selecionou o banco cadastro para ser o utilizado no momento.
CREATE TABLE pessoas(
Id int NOT NULL AUTO_INCREMENT,
nome varchar(30) NOT NULL,
nascimento date,
sexo Enum('M', 'F'),
altura decimal(3,2),
peso decimal(5,2),
nacionalidade varchar(20) DEFAULT 'Brasil ',
PRIMARY KEY(id)
)
/criou uma tabela com o nome pessoas, e colocou nela os campos
id, nome, nascimento, sexo, altura, peso e nacionalidade. Cada
campo tem declarado ao seu lado seu tipo primitivo, e os campos
id, nome e nacionalidade receberam parametros.
Id -> recebeu o parametro NOT NULL, o que quer dizer que esse
campo não pode ficar vazio, não pode ser nulo. Ele também
recebeu o AUTO-INCREMENT, o que significa que o preenchimento
ira ocorrer automaticamente.
nome -> recebeu o NOT NULL, o que quer dizer que esse campo
não pode ficar vazio.
nacionalidade -> com o DEFAULT foi estabelecido que ‘Brasil’ será
o padrão desse campo, ou seja, caso nada for colocado nesse
campo, ‘Brasil’ irá preencher.
PRIMARY KEY(id) -> determinou que a chave primaria da tabela
sera o campo id. Ou seja ele vai sero o identificador unico das
linhas, nunca podendo ser nulo.
DESCRIBE cadastro;
/mostra as propriedades da tabela cadastro, como seus campos a
nulidade dos campos e qual campo é a chave primaria.

INSERT INTO pessoas


(nome, nascimento, sexo, altura, peso, nacionalidade)
VALUES
('Godofredo', '1984-01-02', 'M', '1.83', '78.5', 'Brasil');
/este comando inseriu nos campos da tabela pessoas alguns
registros, sendo estes: 'Godofredo', '1984-01-02', 'M', '1.83', '78.5',
'Brasil'. Os registros foram colocados em ordem em que os campos
aos quais eles pertecem aparecem.

Obs: o campo id esta omisso pois o auto increment torna


desnessario o preenchimento manual de dados nele.

INSERT INTO pessoas


(id, nome, nascimento, sexo, altura, peso, nacionalidade)
VALUES
(DEFAULT, 'Maria', '1999-12-30', 'F', '1.65', '55.5', 'Portugal');
/este comando inseriu nos campos da tabela pessoas alguns
registros, no entanto o campo id foi assossiado a um DEFAUT, o
default é nada menos que o padrão, o campo vai ser preenchido
pelo auto incremento.
INSERT INTO pessoas
(nome, nascimento, sexo, altura, peso, nacionalidade)
VALUES
('Creuza', '1920-12-30', 'F', '1.65', '50.2', DEFAULT);
/este comando inseriu nos campos da tabela pessoas alguns
registros, no entanto o campo nacionalidade foi assossiado a um
DEFAUT, o default é nada menos que o padrão, o padrão de
nacionalidade foi estipulado na criação da tabela, ou seja esse
campo irá receber ‘Brasil’.

INSERT INTO pessoas VALUES


(DEFAULT,'Felipe', '1997-06-09', 'M', '1.73', '90.2', DEFAULT);
/este comando inseriu nos campos da tabela pessoas alguns
registros, porem dessa vez os campos não precisaram ser
colocados no comando, pois colocando na ordem os registros a
serem colocados, os dados ficam nos locais certos.

INSERT INTO pessoas VALUES


(DEFAULT,'Danilo', '2000-04-20', 'M', '1.74', '80.0', DEFAULT),
(DEFAULT,'Carlos', '1984-09-25', 'M', '1.90', '100.5', 'Mexico'),
(DEFAULT,'Paula', '1995-03-24', 'F', '1.40', '50.3', DEFAULT);
/este comando inseriu nos campos da tabela pessoas varios
registros, cada conjunto de registros separados por virgulas.
ALTER TABLE pesssoas
ADD COLUMN profissao varchar(10);
/este comando fez uma alteração na tabela pessoas, adicionando
um campo chamado profissao, que foi adicionado como o ultimo
campo da tabela.

ALTER TABLE pesssoas


DROP COLUMN profissao;
/este comando apaga o campo profissao da tabela pesssoas.

ALTER TABLE pesssoas


ADD COLUMN profissao varchar(10)
AFTER nome;
/este comando fez uma alteração na tabela pessoas, adicionando
um campo chamado profissao, e devido ao parametro AFTER, ele
sera colocado abaixo do campo nome.

ALTER TABLE pesssoas


ADD COLUMN codigo varchar(10)
FIRST;
/este comando fez uma alteração na tabela pessoas, adicionando
um campo chamado codigo, e devido ao parametro FIRST, esse
campo sera adicionado como o primeiro campo da tabela.
ALTER TABLE pesssoas
MODIFY COLUMN profissao varchar(20) NOT NULL DEFAULT '';
/este comando modificou o campo profissao da tabela pessoas,
aumentando o tamanho do seu tipo primitivo e com o parametros
NOT NULL e DEFAULT ‘’, fez que o campo não pudesse ser nulo,
mas que o seu padrão seja ‘’.

ALTER TABLE pesssoas


CHANGE COLUMN profissao
prof varchar(20) NOT NULL DEFAULT '';
/este comando mudou o nome do campo profissao para prof, mas
manteve suas propriedades (mas para isso as prppriedades
tiveram que ser colocadas denovo junto com o comando).

ALTER TABLE pesssoas RENAME TO gafanhotos;


/este comando renomeou a tabela pessoas para gafanhotos.

CREATE TABLE teste2(


nome varchar(20));
/este comando criou uma tabela com o nometeste2 com os seu
proprios campos.

DROP TABLE teste2;


/Apaga a tabela teste2
CREATE TABLE IF NOT EXISTS cursos(
nome varchar(20) NOT NULL UNIQUE,
descricao text,
carga int UNSINED,
totaulas int,
ano year DEFAULT '2016'
);
/este comando criou uma tabela com o nome cursos com os seu
proprios campos. O parametro IF NOT EXISTS faz com que essa
tabelas só seja criada caso não exista uma tabela com esse mesmo
nome.
UNIQUE -> faz que com que o campo seja unico, ou seja, dois
valores não se repetem, são unicos.
UNSINED -> o campo não pode receber sinais como – e +.

ALTER TABLE cursos


ADD COLUMN idcurso int NOT NULL FIRST;
/este comando fez uma alteração na tabela cursos, adicionando
um campo chamado idcurso, e devido ao parametro FIRST, esse
campo sera adicionado como o primeiro campo da tabela, ele não
podera ser nulo.

ALTER TABLE cursos ADD PRIMARY KEY(idcurso);


/este comando fez uma alteração na tabela cursos, tornando o
campo idcurso sua chave primaria.
INSERT INTO cursos VALUES
('1', 'HTML4', 'Curso de HTML5', '40', '37', '2014'),
('2', 'Algoritmos', 'Lógica de Progamação', '20', '15', '2014'),
('3', 'Photoshop', 'Dicas de Photoshop CC', '10', '8', '2014'),
('4', 'PGP', 'Curso de PHP para iniciantes', '40', '20', '2010'),
('5', 'Jarva', 'Introdução à Linguagem Java', '10', '29', '2000'),
('6', 'MySQL', 'Banco de Dados MySQL', '30', '15', '2016'),
('7', 'Word', 'Curso completo de Word', '40', '30', '2016'),
('8', 'Sapateado', 'Danças Rítmicas', '40', '37', '2018'),
('9', 'Cozinha Árabe', 'Aprender a fazer Kibe', '40', '30', '2018'),
('10', 'YouTuber', 'Gerar polêmica e ganhar inscritos', '5', '2',
'2018');
/este comando inseriu nos campos da tabela cursos varios
registros, cada conjunto de registros separados por virgulas.

UPDATE cursos
SET nome = 'HTML5'
WHERE idcurso = '1';
/este comando atualizou um registro, no caso um registro de
nome para ‘HTML5’.
O parametro WHERE faz com que sejam atualizados somente os
registros em que existam na mesma linha queum idcurso com o
valor de 1.
SET -> COLOCA, DETERMINA.
UPDATE cursos
SET nome = 'PHP', ano = '2015'
WHERE idcurso = '4';
/este comando atualizou alguns registros, no caso os registros de
nome e ano, atualizando o ano para ‘2015’ e o nome para ‘PHP’.
O parametro WHERE faz com que sejam atualizados somente os
registros em que existam na mesma linha queum idcurso com o
valor de 4.

UPDATE cursos
SET nome = 'Java', carga= '40', ano = '2015'
WHERE idcurso = '5'
LIMIT 1;
/este comando atualizou alguns registros, no caso os registros de
nome, carga e ano, atualizando o ano para ‘2015’, carga para ‘40’ o
nome para ‘Java’.
O parametro WHERE faz com que sejam atualizados somente os
registros em que existam na mesma linha queum idcurso com o
valor de 5.
LIMIT 1 -> o parametro define o limite de linhas que serão afetadas
pelo comando, se fosse LIMIT 2, duas linhas poderiam ser
afetadas, caso cumprissem os requisitos do WHERE.
UPDATE cursos
SET ano = '2050', carga= '400'
WHERE ano = '2018';
/este comando atualizou alguns registros, no caso os registros de
carga e ano, atualizando o ano para ‘2050’, e para carga para ‘400’.
O parametro WHERE faz com que sejam atualizados somente os
registros em que existam na mesma linha queum ano com o valor
de 2018.

UPDATE cursos
SET ano = '2018', carga= '40'
WHERE ano = '2050'
LIMIT 1;
/este comando atualizou alguns registros, no caso os registros de
carga e ano, atualizando o ano para ‘2018’, e para carga para ‘40’
O parametro WHERE faz com que sejam atualizados somente os
registros em que existam na mesma linha queum ano com o valor
de 2018.

DELETE FROM cursos


WHERE idcurso = '8';
LIMIT 1;
/este comando deleta as linhas que possuam o idcurso igual a 8 na
tabela cursos.
DELETE FROM cursos
WHERE ano = '2050';
LIMIT 2;

TRUNCATE TABLE cursos;


/Apaga todos os registros da tabela cursos, deixando ela em
branco, mas não a exclui.

SELECT * FROM cursos;


/Mostra tudo que existe na tabelas cursos, todos os campos e
linhas
* representa TUDO.

SELECT * FROM cursos;


ORDER BY idcurso;
/mostra tudo da tabela, só que por ordem numerica do campo
idcurso;

SELECT * FROM cursos;


ORDER BY nome;
/mostra tudo da tabela, só que por ordem alfabética de acordo
com o campo nome.
SELECT * FROM cursos;
ORDER BY nome ASC;
/mostra tudo da tabela, só que por ordem alfabética de acordo
com o campo nome

SELECT * FROM cursos;


ORDER BY nome DESC;
/mostra tudo da tabela, só que por ordem alfabética inversa de
acordo com o campo nome

SELECT nome, carga, ano FROM cursos;


/Mostra as colunas especificas de uma tabela, nesse caso ano,
carga e nome.

SELECT nome, carga, ano FROM cursos;


ORDER BY ano, nome;
/Mostra as colunas especificas de uma tabela, ordenadas ordem
numerica do ano e ordem alfabetica depois.

SELECT * FROM cursos;


WHERE ano = 2016
ORDER BY ano;
/seleciona tudo da tabela gafanhoto, mas o parametro WHERE diz
que somente as linhas que possuem o ano igual a 2016 serão
mostradas.
SELECT nome, descricao FROM cursos;
WHERE ano <= 2016
ORDER BY nome;
/Mostra colunas especificas de uma tabela, e o o parametro
WHERE diz que somente as linhas que possuem o ano igual ou
menor do que 2015 serão mostradas..

SELECT nome, descricao FROM cursos;


WHERE ano < 2015
ORDER BY nome;
/Mostra colunas especificas de uma tabela, e o o parametro
WHERE diz que somente as linhas que possuem o ano menor do
que 2015 serão mostradas..

SELECT nome, descricao, ano FROM cursos;


WHERE ano <> 2015
ORDER BY nome;
OU
SELECT nome, descricao, ano FROM cursos;
WHERE ano != 2015
ORDER BY nome;
/Mostra colunas especificas de uma tabela, e o o parametro
WHERE diz que somente as linhas que possuem o ano DIFERENTE
de 2015 serão mostradas.
SELECT nome, totaulas FROM cursos;
WHERE totaulas BETWEEN 20 AND 30
ORDER BY ano DESC; nome ASC;
/Mostra colunas especificas de uma tabela, e o o parametro
WHERE diz que somente as linhas que possuem o totaulas ENTRE
20 E 30 serão mostradas.

SELECT nome, descricao FROM cursos;


WHERE ano IN (2014, 2016)
ORDER BY ano;
/Mostra colunas especificas de uma tabela, e o o parametro
WHERE diz que somente as linhas que possuem o ano igual a 2016
ou 2014 serão mostradas.

SELECT nome, carga, totaulas FROM cursos;


WHERE carga > 35 AND totaulas < 30;
/Mostra colunas especificas de uma tabela, e o o parametro
WHERE diz que somente as linhas que possuem carga maior que
35 e totaulas menor que trinta serão mostradas.

SELECT nome, carga, totaulas FROM cursos;


WHERE carga > 35 OR totaulas < 30;
/Mostra colunas especificas de uma tabela, e o o parametro
WHERE diz que somente as linhas que possuem carga maior que
35 OU totaulas menor que trinta serão mostradas.
SELECT * FROM cursos;
WHERE nome LIKE ‘P%’;
/seleciona tudo da tabela gafanhoto, mas o parametro WHERE diz
que somente as linhas que possuem o nome com a letra P no
começo seguido de qualquer coisa serão mostradas.
% ->ela pode representar qualquer coisa ou coisa alguma

SELECT * FROM cursos;


WHERE nome LIKE ‘%A’;
/seleciona tudo da tabela gafanhoto, mas o parametro WHERE diz
que somente as linhas que possuem o nome com a letra A no final
antecedido de qualquer coisa serão mostradas.

SELECT * FROM cursos;


WHERE nome LIKE ‘%A%’;
/seleciona tudo da tabela gafanhoto, mas o parametro WHERE diz
que somente as linhas que possuem o nome com a letra A em
qualquer lugar vão aparecer.

SELECT * FROM cursos;


WHERE nome NOT LIKE ‘%A%’;
/seleciona tudo da tabela gafanhoto, mas o parametro WHERE diz
que somente as linhas que NÃO possuem o nome com A em
qualquer lugar vão aparecer.
SELECT * FROM cursos;
WHERE nome LIKE ‘PH%P’;
/seleciona tudo da tabela gafanhoto, mas o parametro WHERE diz
que somente as linhas que possuem o nome que começa com PH e
terminam com P vão aparecer.

SELECT * FROM cursos;


WHERE nome LIKE ‘PH%P_’;
/seleciona tudo da tabela gafanhoto, mas o parametro WHERE diz
que somente as linhas que possuem o nome que começa com PH e
terminam com um caractere depois de P vão aparecer.
_ -> representa obrigatoriamente uma coisa

SELECT DISTINCT carga FROM cursos;


/seleciona todas as ocorrencias de cargas, mas os numeros
repetidos são sumarizados.

SELECT COUNT(nome) FROM cursos;


/Mostra quantas linhas nome existem.

SELECT COUNT(carga) FROM cursos WHERE carga > 40;


/Mostra quantas linhas com carga maior que 40 existem.
SELECT MAX(totaulas) FROM cursos;
/Mostra qual a maIor total de aulas entre as linhas.

SELECT MAX(totaulas) FROM cursos WHERE ano = 2016;


/Mostra qual a maIor total de aulas entre as linhas que possuem o
ano igual a 2016.

SELECT nome, MIN(totaulas) FROM cursos;


/Mostra qual a menor total de aulas entre as linhas, acompahado
do nome que existe nessa linha.

SELECT SUM(totaulas) FROM cursos;


/Mostra qual a somatoria de todos os totaulas.

SELECT AVG(totaulas) FROM cursos;


/Mostra qual a MEDIA de totaulas.

SELECT carga FROM cursos


GROUP BY carga;
/Mostra as cargas de maneira agrupada.
SELECT carga, COUNT(nome) FROM cursos
GROUP BY carga;
/Mostra as cargas de maneira agrupada, mas com a quantidade de
cada grupo ao lado.

SELECT carga, COUNT(nome) totaulas FROM cursos WHERE


totaulas = 30
GROUP BY carga;
/Mostra as cargas e quantos cursos tem na tabela que possuem
totaulas = 30, em forma de grupos E a quantidade de linhas nesse
grupo.

SELECT carga, COUNT(nome) totaulas FROM cursos


WHERE totaulas = 30
GROUP BY carga
HAVING COUNT(nome) > 3;
/Mostra as cargas e quantos cursos tem na tabela que possuem
totaulas = 30, em forma de grupos, E a quantidade de linhas nesse
grupo.(somente se o grupo tiver mais de 3 linhas)

SELECT nome, nacionalidade from gafanhotos


Where nacionalidade <> ‘Brasil’;
TE FODE AI PRA ENTENDER

ALTER TABLE gafanhotos


ADD COLUMN cursopreferido int;
/este comando fez uma alteração na tabela gafanhotos,
adicionando um campo chamado cursopreferido.

ALTER TABLE gafanhotos


ADD FOREIGN KEY (cursopreferido)
REFERENCES cursos(idcurso);
/este comando fez uma alteração na tabela gafanhotos,
adicionando uma chave estranjeira, vincunlando ela com a chave
primaria idcurso da tabela cursos.
SELECT gafanhotos.nome, gafanhotos.cursopreferido,
cursos.nome, cursos.ano.
FROM gafanhotos INNER JOIN cursos
ON curos.idcurso = gafanhotos.cursopreferido;
/Mostra as nomes dos gafanhotos, o codigo do curso preferido, o
nome do curso, o ano do curso.
O INNER JOIN junta as duas tabelasonde as duas tem relação, mas
o ON imõe uma condição de que partes elas vão se juntar.
O nome da tabela com um ponto depoois seguido do nome de
uma coluna serve para referenciar de onde é a coluna no
comando, já que as duas tabelas serão unidas.

SELECT g.nome, g.cursopreferido, c.nome, c.ano.


FROM gafanhotos as g INNER JOIN cursos as c
ON c.idcurso = g.cursopreferido;
/Mostra as nomes dos gafanhotos, o codigo do curso preferido, o
nome do curso, o ano do curso.
O INNER JOIN junta as duas tabelasonde as duas tem relação, mas
o ON impõe uma condição de que partes elas vão se juntar.
O nome da tabela com um ponto depoois seguido do nome de
uma coluna serve para referenciar de onde é a coluna no
comando, já que as duas tabelas serão unidas.
O as faz que as tabelas possam ser apelidadas, diminuindo o
comando.
SELECT g.nome, g.cursopreferido, c.nome, c.ano.
FROM gafanhotos as g LEFT OUTER JOIN cursos as c
ON c.idcurso = g.cursopreferido;
/Mostra as nomes dos gafanhotos, o codigo do curso preferido, o
nome do curso, o ano do curso.
O JOIN junta as duas tabelaS, mas o ON impõe uma condição de
que partes elas vão se juntar.
O LEFT OUTER da preferência a tabela a esquerda
O nome da tabela com um ponto depoois seguido do nome de
uma coluna serve para referenciar de onde é a coluna no
comando, já que as duas tabelas serão unidas.
O as faz que as tabelas possam ser apelidadas, diminuindo o
comando.

CREATE TABLE IF NOT EXISTS GAFANHOTO_ASSISTE_CURSO(


Id int NOT NULL AUTO_INCREMENT
data date,
idgafanhoto int,
idcurso int,
PRIMARY KEY(Id)
FOREIGN KEY (idcurso) REFERENCES cursos(idcurso),
FOREIGN KEY (idgafanhoto)REFERENCES gafanhtoto(id)
);
Você entendeu, se não, tnc.
Em um relacionamento 1 para 1 geralmente junta-se as duas
tabelas em uma, mas caso seja preciso manter-se separados os
dados de cada tabela, a PK de uma entidade vai oara outra como
FK.
Em um relacionamento 1 para N a PK da tabela 1 vai para a tabela
N como FK.

Em relacionamentos N para N, o relacionamento vira uma tabela,


que recebe as PKs de suas tabelas ‘mães’, tornando assim o
relacionamento N para N em dois 1 para N.

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy