O MySQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) popular e amplamente utilizado em vários setores. Projetado para armazenar, processar e gerenciar dados de pequenas a grandes escalas, o MySQL é a melhor escolha no desenvolvimento de aplicativos da web, sistemas de informação e plataformas de comércio eletrônico. Um dos comandos básicos mais importantes é a instrução SELECT, que recupera ou exibe dados de uma ou mais tabelas em um banco de dados.

O que é um SELECT Statement?
SELECT Statement é um comando SQL básico usado para recuperar dados de uma ou mais tabelas em um banco de dados MySQL. Com esse comando, os usuários podem exibir dados conforme necessário, seja selecionando uma coluna específica ou recuperando todo o conteúdo da tabela.
O principal objetivo do SELECT Statement é fornecer conveniência para os usuários recuperarem informações do banco de dados de acordo com necessidades específicas, seja exibindo uma única coluna, várias colunas ou dados inteiros de uma tabela. Além disso, o SELECT Statement também pode ser combinado com outros comandos, como WHERE, ORDER BY e LIMIT para executar filtragem, classificação ou limitar o número de resultados exibidos.
Como usar SELECT Statement para capturar dados de coluna única
SELECT Statement em SQL é um comando usado para recuperar dados de uma coluna específica em uma tabela. A sintaxe básica para usar uma instrução SELECT é a seguinte:
SELECT column_name FROM table_name;Nessa sintaxe, SELECT é a função de selecionar os dados que você deseja exibir, column_name é a coluna cujos dados você deseja recuperar, FROM indica a origem dos dados e table_name é a tabela onde a coluna está localizada.
Por exemplo, podemos recuperar dados de uma coluna chamada prod_name na tabela products. Usando o seguinte SELECT Statement, podemos exibir todos os dados das prod_name colunas:
SELECT prod_name FROM products;O resultado desse comando são todos os valores contidos na coluna prod_name da tabela de produtos. Por exemplo, se a tabela products tiver dados como este:
| prod_name |
|---------------|
| 0.5 ton anvil |
| 1 ton anvil |
| 2 ton anvil |
| Oil can |Como usar SELECT Statement para capturar dados de várias colunas
Para recuperar dados de várias colunas em uma tabela, o SELECT Statement nos permite nomear várias colunas de uma só vez. Dessa forma, podemos exibir várias colunas da mesma tabela em uma única consulta sem precisar executar o comando SELECT repetidamente.
Quando queremos pegar várias colunas, só precisamos adicionar os nomes das colunas que queremos exibir após a palavra-chave SELECT, separados por uma vírgula (,). O nome da tabela que contém esses dados ainda é especificado após a palavra-chave FROM.
A sintaxe para usar várias colunas é a seguinte:
SELECT column_name1, column_name2, column_name3 FROM table_name;- SELECT: para selecionar os dados que deseja recuperar.
- column_name1, column_name2, column_name3: a coluna que você deseja exibir, separada por uma vírgula.
- FROM: para indicar a tabela da qual os dados foram recuperados.
Por exemplo, aqui está uma consulta para recuperar dados das colunas prod_id, prod_name e prod_price na tabela products:
SELECT prod_id, prod_name, prod_price FROM products;Se a tabela products contiver dados como este:
| prod_id | prod_name | prod_price |
|---------|---------------|------------|
| ANV01 | 0.5 ton anvil | 5.99 |
| ANV02 | 1 ton anvil | 9.99 |
| ANV03 | 2 ton anvil | 14.99 |
| OL1 | Oil can | 8.99 |Em seguida, os resultados dessa consulta exibirão dados das colunas prod_id, prod_name e prod_price ao mesmo tempo para que possamos ver a ID do produto, o nome do produto e o preço em uma exibição.
Recuperar todas as colunas com SELECT Statement
Quando queremos exibir todas as colunas de uma tabela, podemos usar o SELECT Statement com o símbolo curinga *. O curinga * nos permite recuperar todas as colunas sem ter que mencioná-las individualmente.
No entanto, embora isso seja prático, o uso de curingas * precisa ser feito com cautela, especialmente se a tabela tiver muitas colunas ou se apenas algumas colunas forem necessárias. Recuperar todas as colunas sem motivo aparente pode diminuir o desempenho da consulta, especialmente se os dados recuperados forem muito grandes. Portanto, é melhor usar o * wildcard somente se todos os dados forem necessários.
Para recuperar todas as colunas da tabela products, podemos usar a seguinte consulta:
SELECT * FROM products;Se a tabela products contiver dados como este:
| prod_id | prod_name | prod_price | prod_vendor | stock_qty |
|---------|---------------|------------|-------------|-----------|
| ANV01 | 0.5 ton anvil | 5.99 | Vendor A | 20 |
| ANV02 | 1 ton anvil | 9.99 | Vendor A | 15 |
| ANV03 | 2 ton anvil | 14.99 | Vendor B | 30 |
| OL1 | Oil can | 8.99 | Vendor B | 50 |Em seguida, o resultado desse comando exibirá todas as colunas (prod_id, prod_name, prod_price, prod_vendor, stock_qty) da tabela de produtos.
Anotações importantes
O uso de curinga* facilita a recuperação de todas as colunas em uma única consulta, mas pode reduzir o desempenho se a tabela recuperada tiver muitas colunas ou dados muito grandes. Portanto, se precisarmos apenas de algumas colunas específicas, é melhor mencionar os nomes dessas colunas diretamente para manter a consulta eficiente.
Limitando os resultados da consulta com LIMIT
No SQL, o comando LIMIT serve para limitar a quantidade de dados exibidos a partir dos resultados da consulta. LIMIT é especialmente útil quando queremos recuperar apenas uma determinada quantidade de dados de uma tabela, como exibir uma amostra ou apenas os primeiros dados de um resultado de consulta grande.
LIMIT é usado mencionando a quantidade desejada de dados após a palavra-chave. Quando LIMIT é seguido por um único número, o MySQL recupera várias linhas de dados, desde a primeira linha até o número especificado.
O exemplo a seguir mostra como usar o LIMIT para recuperar os 5 primeiros dados da coluna prod_name na tabela products:
SELECT prod_name FROM products LIMIT 5;Então, o resultado desta consulta mostrará apenas as 5 primeiras linhas:
| prod_name |
|---------------|
| 0.5 ton anvil |
| 1 ton anvil |
| 2 ton anvil |
| Oil can |
| Fuses |Uso de LIMIT e OFFSET na captura de dados
Podemos limitar o número de linhas recuperadas e também determinar de quais linhas os dados são recuperados usando OFFSET. No MySQL, OFFSET é escrito em conjunto com LIMIT para determinar o ponto de partida da recuperação de dados. Exemplos:
SELECT prod_name FROM products LIMIT 5 OFFSET 5;Essa consulta recuperará 5 linhas de dados, começando pela 6ª linha.
Existem também outras maneiras de escrever LIMIT OFFSET usando dois números após LIMIT, como:
SELECT prod_name FROM products LIMIT 5, 5;Essa escrita tem o mesmo significado, que é pegar 5 linhas a partir da 6ª linha, onde o primeiro número (5) é OFFSET e o segundo número (5) é a quantidade de dados a serem tomados.
Benefícios do LIMIT e OFFSET
- LIMIT sem OFFSET facilita a recuperação de alguns dados iniciais dos resultados da consulta.
- A combinação de LIMIT e OFFSET é particularmente útil para configurações de dados no aplicativo, como exibições de página (*paginação*), em que cada página requer a mesma quantidade de dados, mas começa em posições diferentes.
Capturando dados exclusivos com DISTINCT
No SQL, DISTINCT comandos são usados no SELECT Statement para obter dados sem duplicação. Se houver os mesmos dados em uma coluna e quisermos apenas exibir valores diferentes, DISTINCT garantirá que cada valor apareça uma vez nos resultados da consulta.
DISTINCT é colocado após a palavra-chave SELECT e antes do nome da coluna que você deseja recuperar. Este comando diz ao MySQL para exibir apenas os dados exclusivos dessa coluna e excluir as linhas que têm o mesmo valor.
A sintaxe para usar DISTINCT é a seguinte:
SELECT DISTINCT column_name FROM table_name;- DISTINCT: instrui o SQL a exibir valores exclusivos nas colunas especificadas.
- column_name: O nome da coluna da qual você deseja recuperar dados exclusivamente.
- FROM: indica a tabela da qual os dados se originaram.
Por exemplo, queremos obter dados exclusivos das colunas vend_id na tabela products. Sem usar DISTINCT, se houver vários produtos do mesmo fornecedor, cada ID de fornecedor aparecerá várias vezes nos resultados da consulta. Com DISTINCT, podemos garantir que os resultados mostrem cada ID de fornecedor apenas uma vez.
Os exemplos são os seguintes:
SELECT DISTINCT vend_id FROM products;Se a tabela de produtos tiver dados como este:
| vend_id |
|---------|
| 1001 |
| 1001 |
| 1002 |
| 1003 |
| 1003 |
| 1003 |
| 1004 |Os resultados da consulta mostrarão apenas a ID exclusiva do fornecedor, portanto, ela terá a seguinte aparência:
| vend_id |
|---------|
| 1001 |
| 1002 |
| 1003 |
| 1004 |Anotações importantes
- DISTINCT se aplica à combinação de colunas selecionadas na consulta. Se mais de uma coluna for usada com DISTINCT, o SQL garantirá que a combinação de colunas seja exclusiva.
- DISTINCT remove apenas duplicatas das colunas especificadas e não afeta outras colunas na tabela.
===
Usando nomes de coluna qualificados
Usar fully qualified column names (no formato table.column) em SQL tem vários benefícios importantes, especialmente ao recuperar dados de tabelas que podem ter colunas com o mesmo nome.
Aqui estão algumas das vantagens de usar nomes de coluna totalmente qualificados:
- Com o formato table.column, você indica de qual tabela a coluna está vindo. Isso é especialmente útil ao trabalhar com várias tabelas em uma única consulta, como ao fazer JOIN. Essa clareza reduz a confusão sobre qual coluna está sendo referenciada.
- Se houver duas ou mais tabelas com colunas com o mesmo nome, o uso de nomes de coluna totalmente qualificados pode evitar conflitos. Por exemplo, se você tiver tabelas products e orders cada uma com prod_id colunas, poderá usar products.prod_id e orders.prod_id para diferenciar entre as duas.
- Ao incluir nomes de tabela em referências de coluna, o código SQL se torna mais fácil de entender e manter por outros desenvolvedores ou por eles mesmos no futuro. Isso ajuda na documentação e no desenvolvimento contínuos.
Conclusão
Aprender instruções SELECT no MySQL é essencial para gerenciar dados de maneira adequada e segura. Com a capacidade de recuperar dados específicos, flexibilidade na seleção de colunas, manutenção da clareza e melhoria do desempenho, você pode melhorar a eficiência e a qualidade de seus projetos. Seguir as práticas recomendadas, como usar nomes de coluna completos e formatação consistente, também é benéfico para documentação e solução de problemas no código SQL.


