DEV Community

Gabriel_Silvestre
Gabriel_Silvestre

Posted on • Updated on

Introdução a Pesquisa de Dados - SQL

Tabela de Conteúdos


Query

O que são?

São um ou mais comandos utilizados para interagir de alguma forma com o DB.

O que fazem?

Esses comandos nos permitem interagir não só com os dados, mas também com as permissões dos usuários

Podemos realizar todas as operações de CRUD, não só com os dados das tabelas, mas também com os usuários cadastrados no DB.

*Obs: Operação de CRUD: Criar/Create, Ler/Read, Atualizar/Update e Deletar/Delete.

Tipos

Os principais tipos de Queries são:

DDL (Data Definition Language)

São todos os comandos que lidam com o esquema, descrição e modo como os dados devem existir.

  • CREATE: cria DBs, tabelas, índices, views, procedures, functions e triggers
  • ALTER: altera a estrutura das tabelas
  • DROP: permite deletar/"dropar" tabelas
  • TRUNCATE: esvazia os dados de uma tabela, mas não a exclui

DML (Data Manipulation Language)

São comandos utilizados para manipular dados, realizam o armazenamento, modificação, busca e exclusão de dados.

  • SELECT: busca dados
  • INSERT: insere dados
  • UPDATE: altera dados
  • DELETE: deleta dados

DCL (Data Control Language)

São comandos que manipulam as permissões e outros tipos de controle ao sistema do DB.

  • GRANT: concede diferentes acessos a um usuário
  • REVOKE: remove acessos concedidos através do comando GRANT

TCL (Transactional Control Language)

Lida com transações dentro das pesquisas

  • COMMIT: muda as alterações temporárias para permanentes
  • ROLLBACK: desfaz todo o impacto realizado por um comando
  • SAVEPOINT: define pontos onde a transação pode voltar ("checkpoint")
  • TRANSACTION: define onde, como e em qual escopo as transações são executadas

Voltar ao topo


Select

O que é?

É um comando utilizado para selecionar/buscar dados nas tabelas.

Sintaxe

A sintaxe do comando é muito simples, para pesquisar em uma tabela utilizamos a palavra reservada SELECT, seguida do que desejamos selecionar e por fim utilizamos a palavra reservada FROM seguida do nome do DB, mais a tabela que desejamos consultar.

Podemos selecionar todos os dados utilizando asterisco *, ou selecionar uma ou mais colunas da tabela passando seu nome, no caso de pesquisarmos mais de uma coluna, separamos seus nomes com vírgula.

SELECT <o que selecionar> FROM <DB>.<tabela>;
Enter fullscreen mode Exit fullscreen mode
SELECT * FROM sakila.actor;
Enter fullscreen mode Exit fullscreen mode
SELECT name FROM sakila.actor;
Enter fullscreen mode Exit fullscreen mode
SELECT name, age FROM sakila.actor;
Enter fullscreen mode Exit fullscreen mode

Voltar ao topo


Concat

O que é?

É uma função que concatena (junta) duas ou mais colunas de uma tabela, gerando uma nova coluna.

Sintaxe

Para concatenarmos colunas primeiro precisamos selecioná-las, para isso usamos o comando SELECT, só então nós inserimos a função CONCAT(), informando as colunas que desejamos juntar e, opcionalmente, podemos nomear a nova coluna gerada com o AS.

SELECT CONCAT(<colunas a serem concatenadas>) FROM <DB>.<tabela>;
Enter fullscreen mode Exit fullscreen mode
SELECT CONCAT(first_name, ' ', last_name) FROM sakila.actor;
Enter fullscreen mode Exit fullscreen mode
SELECT CONCAT(first_name, ' ', last_name) AS 'full_name' FROM sakila.actor;
Enter fullscreen mode Exit fullscreen mode

No exemplo acima, utilizamos uma string com um espaço para separar os dados e deixá-los mais legíveis, porém isso é opcional.

Voltar ao topo


Distinct

O que é?

É um comando que remove dados duplicados do retorno das Queries, ou seja, os dados não são apagados do DB, apenas omitidos no retorno de nossa pesquisa.

Sintaxe

Para podermos filtrar dados repetidos, primeiro temos que pesquisar esses dados, logo utilizamos a sintaxe do SELECT, após o comando e antes das colunas a serem pesquisadas declaramos o DISTINCT.

SELECT DISTINCT <o que selecionar> FROM <DB>.<tabela>;

SELECT DISTINCT first_name FROM sakila.actors;
Enter fullscreen mode Exit fullscreen mode

No exemplo acima retornaremos os first_name sem repetição, exemplificando, se tivermos duas pessoas chamadas Gabriel, apenas um nome Gabriel será retornado pela Query.

Voltar ao topo


Count

O que é?

É uma função que nos permite contar a quantidade de resultados de uma busca.

Sintaxe

Assim como outras funções e comandos, o COUNT() também necessita que uma busca seja feita, para só então ser possível fazer a contagem.

Para isso nós utilizamos o comando SELECT e logo em seguido o COUNT(), passando como parâmetro a coluna ser contada.

SELECT COUNT(<o que selecionar>) FROM <DB>.<tabela>;
Enter fullscreen mode Exit fullscreen mode
SELECT COUNT(last_name) FROM sakila.actors;
Enter fullscreen mode Exit fullscreen mode
SELECT COUNT(DISTINCT last_name) FROM sakila.actors;
Enter fullscreen mode Exit fullscreen mode

O último exemplo mostra que é possível não apenas fazer a contagem, como também contar apenas os dados que não se repetem. Mais a frente veremos que podemos deixar nossos comandos ainda mais completos.

Voltar ao topo


Limit

O que é?

É um comando que limita a quantidade de resultados em uma pesquisa.

Sintaxe

O LIMIT é um comando limitador para o SELECT, logo ele deve ser utilizado após a definição da tabela para pesquisa.

SELECT <o que selecionar> FROM <DB>.<tabela> LIMIT <nº máx de resultados>;
Enter fullscreen mode Exit fullscreen mode
SELECT * FROM sakila.rental LIMIT 10;
Enter fullscreen mode Exit fullscreen mode

Voltar ao topo


Limit Offset

O que é?

É um comando utilizado para pular uma certa quantidade de linhas do resultado, normalmente utilizado para paginação.

Sintaxe

O OFFSET deve ser colocado após o LIMIT, sendo necessário informar o número de linhas a serem puladas.

SELECT <coluna> FROM <DB>.<tabela> LIMIT <nº máx> OFFSET <nº>;
Enter fullscreen mode Exit fullscreen mode
SELECT * FROM sakila.rental LIMIT 10 OFFSET 3;
Enter fullscreen mode Exit fullscreen mode

Voltar ao topo


Order By

O que é?

É um comando que ordena os resultados de Queries através de uma, ou mais colunas determinadas por nós.

Sintaxe

O ORDER BY deve ser declarado após a sintaxe do SELECT, sendo necessário declarar por qual coluna o resultado deve ser ordenado e opcionalmente podemos informar se queremos os resultados em formato crescente ASC ou decrescente DESC.

SELECT <o que selecionar> FROM <DB>.<tabela> ORDER BY <coluna>;
Enter fullscreen mode Exit fullscreen mode
SELECT * FROM sakila.actors ORDER BY first_name;
Enter fullscreen mode Exit fullscreen mode
SELECT * FROM sakila.actors ORDER BY age DESC;
Enter fullscreen mode Exit fullscreen mode

Caso não informemos qual a ordenação dos resultados, o MySQL por padrão irá ordenar de forma crescente, o que nos permite omitir o comando ASC.

Voltar ao topo


Links Úteis

Voltar ao topo

Top comments (0)