Manipulando Tuplas

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;