Introdução a Pesquisa de Dados - SQL
Gabriel_Silvestre
Posted on February 22, 2022
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
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>;
SELECT * FROM sakila.actor;
SELECT name FROM sakila.actor;
SELECT name, age FROM sakila.actor;
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>;
SELECT CONCAT(first_name, ' ', last_name) FROM sakila.actor;
SELECT CONCAT(first_name, ' ', last_name) AS 'full_name' FROM sakila.actor;
No exemplo acima, utilizamos uma string com um espaço para separar os dados e deixá-los mais legíveis, porém isso é opcional.
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;
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.
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>;
SELECT COUNT(last_name) FROM sakila.actors;
SELECT COUNT(DISTINCT last_name) FROM sakila.actors;
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.
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>;
SELECT * FROM sakila.rental LIMIT 10;
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º>;
SELECT * FROM sakila.rental LIMIT 10 OFFSET 3;
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>;
SELECT * FROM sakila.actors ORDER BY first_name;
SELECT * FROM sakila.actors ORDER BY age DESC;
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
.
Links Úteis
Posted on February 22, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.