Introdução ao SELECT no MySQL

Neste tópico, vamos aprender sobre o SELECT no MySQL e principalmente no DQL, que é "Data Query Language". Isso acontece quando tentamos buscar registros do banco de dados e começa com o comando "SELECT". Este comando pode ser usado com muitas cláusulas SQL, bem como outras funções para obter os registros desejados.

Existem muitos tipos de comandos SQL que podem ser classificados da seguinte forma:

  • DDL (linguagem de definição de dados)
  • DML (linguagem de manipulação de dados)
  • DQL (linguagem de consulta de dados)
  • DCL (linguagem de controle de dados)
  • TCL (linguagem de controle de transações)

Sintaxe:

1. A sintaxe básica do comando SELECT:

SELECT * FROM table_name;

Isso buscará todos os registros com todos os atributos de uma tabela.

SELECT column1, column2, …. FROM table_name;

Isso buscará as colunas especificadas de uma tabela que são passadas pela consulta.

2. Este comando SELECT também pode ser usado com o comando INSERT, que é usado para adicionar registros à tabela existente.

INSERT INTO table_name1 SELECT * FROM table_name2;

Aqui, a consulta buscará todos os registros de table_name2 e os inserirá em table_name1.

Exemplos para implementar o SELECT no MySQL

Vamos considerar que existe uma tabela de clientes com os seguintes atributos.

Cust_idPrimeiro nomeÚltimo nomeContatoO emailCidadeMontante
1001RohitSharma9876736587Mumbai10000
1002ViratKohli8752877855Délhi60000
1003SachinTendulkar9867868678Mumbai15000
1004VirendraShewag9087788988Délhi20000

Vamos ver algumas consultas SELECT básicas usando algumas cláusulas para o entendimento básico de como esse comando funciona.

Exemplo 1

SELECT * FROM customer;

(Isso buscará todos os registros com todos os atributos de uma tabela.)

Resultado:

Cust_idPrimeiro nomeÚltimo nomeContatoO emailCidadeMontante
1001RohitSharma9876736587Mumbai10000
1002ViratKohli8752877855Délhi60000
1003SachinTendulkar9867868678Mumbai15000
1004VirendraShewag9087788988Délhi20000

Exemplo 2

SELECT cust_id, first_name, last_name, email, city
FROM customer;

(Isso buscará colunas especificadas de uma tabela que são passadas por uma consulta)

Resultado:

Cust_idPrimeiro nomeÚltimo nomeO emailCidade
1001RohitSharmaMumbai
1002ViratKohliDélhi
1003SachinTendulkarMumbai
1004VirendraShewagDélhi

Exemplo 3

SELECT cust_id, first_name, last_name, email, city FROM customer
WHERE city = 'Delhi';

(O comando WHERE buscará apenas esses registros, onde a cidade será 'Delhi')

Resultado:

Cust_idPrimeiro nomeÚltimo nomeO emailCidade
1002ViratKohliDélhi
1004VirendraShewagDélhi

Exemplo 4

SELECT cust_id, first_name, last_name, city, amount FROM customer
WHERE amount BETWEEN 5000 AND 25000;

(A cláusula BETWEEN retornará registros que satisfaçam o intervalo de condições especificado passado na consulta)

Resultado:

Cust_idPrimeiro nomeÚltimo nomeCidadeMontante
1001RohitSharmaMumbai10000
1003SachinTendulkarMumbai15000
1004VirendraShewagDélhi20000

Exemplo 5

SELECT * FROM customer
ORDER BY amount DESC;

(Usado para classificar os valores numéricos e de seqüência de caracteres, de maneira crescente ou decrescente. Mas, por padrão, ele classifica de maneira crescente. Se queremos decrescente, precisamos especificá-lo depois de usar a cláusula ORDER BY)

Resultado:

Cust_idPrimeiro nomeÚltimo nomeContatoO emailCidadeMontante
1002ViratKohli8752877855Délhi60000
1004VirendraShewag9087788988Délhi20000
1003SachinTendulkar9867868678Mumbai15000
1001RohitSharma9876736587Mumbai10000

Cláusulas com o comando SELECT

Outras cláusulas com o comando SELECT:

1. SELECT: Usado para buscar todos os registros de uma tabela.

SELECT * FROM table;

2. DISTINCT: Usado para buscar todos os valores exclusivos de uma tabela.

SELECT DISTINCT col_name FROM table;

3. ONDE: Utilizou condições de perdão na recuperação de registros.

SELECT employee_id FROM employee
WHERE name = 'stella';

4. COUNT: Usado para obter o número de registros presentes em uma tabela.

SELECT COUNT(*) FROM employee;

5. ORDER BY: Usado para classificar os valores numéricos e de seqüência de caracteres, de maneira crescente ou decrescente. Mas, por padrão, classifica de maneira crescente. Se quisermos descer, precisamos especificá-lo depois de usar a cláusula ORDER BY.

SELECT first_name FROM student
ORDER BY marks desc;

6. LIMIT: É usado para especificar o número de registros que queremos após a execução da consulta. Se queremos os 5 melhores alunos de uma turma, depois de classificar os resultados, podemos usar esse LIMIT especificando 5. Para que ele apenas obtenha os 5 melhores registros.

SELECT first_name FROM student
ORDER BY marks desc
LIMIT 5;

(** ORDER BY usado aqui para classificar o valor em ordem decrescente)

7. AND: Se duas condições forem fornecidas e ambas forem atendidas para um registro, somente a consulta buscará esses registros.

SELECT employee_id FROM employee
WHERE name = 'stella' AND city = 'Bangalore';

8. OU: Se duas condições forem fornecidas e uma for atendida para um registro, esse registro será buscado.

SELECT employee_id FROM employee
WHERE department = 'IT' OR city = 'Bangalore';

9. NOT: Usado com condições. Se especificarmos NOT antes de qualquer condição, os registros que não atenderem a essas condições serão buscados.

SELECT employee_id FROM employee
WHERE NOT BETWEEN 1 AND 10;

10. ENTRE: Este operador seleciona registros dentro de um determinado intervalo. Geralmente usamos isso onde queremos especificar um intervalo de datas.

SELECT emp_id FROM employee
WHERE emp_id BETWEEN 1 AND 10;

SELECT * FROM employee
WHERE join_date BETWEEN '2007-01-01' AND '2008-01-01';

11. IN: Este operador nos permite especificar vários valores em uma cláusula WHERE.

SELECT * FROM employee
WHERE employee_id IN (1001, 1004, 1008, 1012);

12. LIKE: Este operador é usado com a cláusula WHERE para procurar um padrão especificado em uma coluna que contém a sequência.

  • 'A%' - a sequência começa com A
  • '& A' - termina com A
  • '% A%' - A estará entre a sequência
  • '_A%' - Aqui a segunda letra será A
  • '% A_' - O segundo da última letra será A

SELECT first_name FROM table
WHERE first_name LIKE 'A%';

13. SUBSTRING: Usado para escolher um caractere específico de uma string, especificando a posição.

SELECT SUBSTRING(customer_name, 1, 5) FROM customer_table;

(ele buscará o caractere da 1ª à 5ª posição de uma sequência)

14. INSTR: Retorna a posição de uma string em outra string.

SELECT INSTR('independence', 'pen');

(ele encontrará a posição de 'caneta' na palavra 'independência')

15. GRUPO POR: É usado para segregar registros com base em algumas condições.

SELECT employee_id FROM employee GROUP BY department HAVING salary > 100000;

(Aqui agrupe por funcionários segregados com base em seu departamento e cujo salário seja superior a 100 mil.
A condição sempre vem com a instrução HAVING na cláusula GROUP BY.)

Funções agregadas

Abaixo está a função agregada diferente:

1. SUM: Calcula a soma dos valores.

SELECT SUM(salary) FROM employee;

2. AVG: Calcula o conjunto médio de valores.

SELECT AVG(salary) FROM employee;

3. MIN: Obtém o valor mínimo em um conjunto de valores.

SELECT MIN(salary) FROM employee;

4. MAX: obtém o valor máximo em um conjunto de valores.

SELECT MAX(salary) FROM employee;

Junta-se ao SELECT no MySQL

1. INNER JOIN: Retorna registros que possuem um valor correspondente nas duas tabelas.

SELECT * FROM order
INNER JOIN customer
ON order.cust_id = customer.cust_id;

2. LEFT JOIN: Retorna todos os registros da tabela esquerda e os registros correspondentes da tabela direita.

SELECT * FROM order
LEFT JOIN customer
ON order.cust_id = customer.cust_id;

3. RIGHT JOIN: Retorna todos os registros da tabela da direita e os registros correspondentes da tabela da esquerda.

SELECT * FROM order
RIGHT JOIN customer
ON order.cust_id = customer.cust_id;

4. JUNÇÃO EXTERNA COMPLETA: Retorna todos os registros quando houver uma correspondência na tabela esquerda ou direita.

SELECT * FROM order
FULL OUTER JOIN customer
ON order.cust_id = customer.cust_id;

Conclusão - SELECT no MySQL

Esses comandos e cláusulas que discutimos acima são muito úteis em cenários em tempo real, pois fornecem os conceitos básicos de como usar consultas SQL para buscar e manipular dados no banco de dados. Além disso, ao usar consultas analíticas e avançadas, como a função de janela, etc, essas cláusulas são muito importantes.

Artigos recomendados

Este é um guia para o SELECT no MySQL. Aqui discutimos o Exemplo para implementar o SELECT no MySQL com Cláusulas, Funções Agregadas e Junções. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Curingas no MySQL
  2. O que é o esquema do MySQL?
  3. Como conectar o banco de dados ao MySQL?
  4. Consultas MySQL
  5. INSERT no Oracle | Exemplos
  6. Exemplos de DISTINCT no Oracle