Inserindo Registros
Para inserir Registros utilize os comandos abaixo:
INSERT INTO tabela_nome
(id, caracteristica_0, caracteristica_1, caracteristica_3)
VALUES
(default, 'Nome', '1996-04-21', 'y'),
(default, 'Nome_1', '1996-05-20', 'x');
Alterando Registro
Utilize o comando UPDATE desta maneira:
UPDATE nome_tabela
SET nome_coluna = 'novo_valor', nome_outra_coluna = 'novo_valor'
WHERE coluna_identificadora = 'valor_identificar' ;
Ainda é possível colocar antes do final do comando o LIMIT 1
limitando o numero de grandes modificações.
Deletando registro
DELETE FROM nome_tabela
WHERE coluna_idenficica = 'valor_idenficador';
Para deletar TODOS os registros da tabela utilize o comando TRUNCATE
TRUNCATE TABLE nome_table;
Selecionando registros
Para selecionar registro utilizaremos uma vasta combinação do comando SELECT.
Seleção geral
SELECT * FROM nome_table;
Seleção Ordenada
SELECT * FROM nome_table
ORDER BY nome_coluna;
Seleção Ordem inversa
SELECT * FROM nome_table
ORDER BY nome_coluna DESC;
Formatando retorno
Para retornar apenas colunas desejadas substitua * pelo nome das colunas.
SELECT nome_coluna0, nome_coluna1 FROM nome_table;
Critérios para retorno
Para retornar apenas linhas desejadas coloque o WHERE
nome das colunas e os critérios.
SELECT nome_coluna0, nome_coluna1 FROM nome_table
WHERE coluna <= 'valor' ;
Valores entre um e outro
SELECT nome_coluna0, nome_coluna1 FROM nome_table
WHERE coluna BETWEEN 'valor' AND 'valor' ;
Valores específicos
SELECT nome_coluna0, nome_coluna1 FROM nome_table
WHERE coluna IN ('valor0','valor1','valor2') ;
Operadores LÓGICOS podem ser usados para combinar busca.
WHERE coluna >= 'valor' AND coluna <= 'valor' WHERE coluna >= 'valor' OR coluna <= 'valor' WHERE coluna NOT 'valor'
Retornando valores Parecidos
Para retornar apenas valores parecidos ou com fragmentos de 'x' utilize LIKE.(Case sensitive)
SELECT nome_coluna0, nome_coluna1 FROM nome_table
WHERE coluna LIKE '%x%';
O carácter coringa % substitui por varios ou nenhum carácter
nada ou qualquer coisa ante:
'%x'
nada ou qualquer coisa depois
'x%'
Que tenha alguma coisa
Para que tenha obrigatoriamente algo antes ou depois utilize _ .
Extraindo informações
Puxando uma Lista de todos os itens
Esta função apenas elimina valores repetidos e tem um carater de apresentação. Diferente do GROUP BY que é uma função
SELECT DISTINCT coluna FROM tabela;
Contando itens
SELECT COUNT(*) FROM tabela WHERE coluna != 'valor';
Verificando qual o maior
SELECT MAX(coluna) FROM tabela;
Verificando qual o menor
SELECT MIN(coluna) FROM tabela;
Somando qual o total
SELECT SUM(coluna_valores) FROM tabela WHERE coluna < 'valor';
Verificando qual a media
SELECT AVG(coluna) FROM tabela;
Puxando uma Lista de todos os itens e sua quantidade.
A clausula GROUP BY
organiza dados em respetivos grupos.
SELECT coluna, COUNT(*) FROM tabela
GROUP BY coluna;
Puxando uma Lista de todos os itens e sua quantidade, que tenha determinado critério.
A clausula HAVING
é praticamente o "WHERE"
do GROUP.
Assim o where
fica com um trabalho não de restringir a pesquisa mas de excluir o que não deve aparecer com o WHERE coluna NOT IN (valores, valores)
SELECT coluna, COUNT(*) FROM tabela
GROUP BY coluna
HAVING coluna = 'valor';
Subquery
Puxando uma Lista de todos os itens e sua quantidade, que tenha determinado critério fruto de outro select.
SELECT coluna, COUNT(*) FROM tabela
GROUP BY coluna
HAVING coluna > (SELECT AVG(coluna) FROM tabela);
JOIN
Juntando tabelas
Para juntar tabelas a fim de visualizar uma informação completa utilize primeriamente uma FOREIGN KEY
criando uma relação entre os dados. INNER JOIN
SELECT nome_tb.nome_coluna, nome_outra_tb.nome_coluna
FROM nome_tb JOIN nome_outra_tb
ON nome_tb.coluna_PK = nome_outra_tb.coluna_FK;
Diminuir comando abreviando nome das tabelas com o AS
SELECT tb1.nome_coluna, tb2.nome_coluna
FROM nome_tb AS tb1 JOIN nome_outra_tb AS tb2
ON tb1.coluna_PK = tb2.coluna_FK;
Caso queira visualizar também os dados não relacionado utilize o OUTER JOIN definindo qual tabela deve ser visualizada completamente LEFT ou RIGHT.
SELECT tb1.nome_coluna, tb2.nome_coluna
FROM nome_tb AS tb1 LEFT JOIN nome_outra_tb AS tb2
ON tb1.coluna_PK = tb2.coluna_FK;
Unindo varias tabelas
Para trabalhar com as relações de varias tabelas é possível unir vários joins.
SELECT tb1.nome_coluna, tb2.nome_coluna
FROM nome_tb AS tb1 LEFT JOIN nome_outra_tb AS tb2
ON tb1.coluna_PK = tb2.coluna_FK
JOIN nome_outra AS tb3
ON tb3.coluna_PK = tb2.coluna_FK;