Comando select em Mysql, SQL Server e Access


Dica de como usar o comando select em Mysql, SQL Server e Access


O comando select do SQL é usado para efetuar consultas no banco de dados. Neste post veremos como usar este comando nos bancos de dados Mysql, SQL Server e Access. Estes bancos por sua vez apresentam algumas diferenças na maneira de entender o select. Vamos lá?

Estrutura do comando select:

  • SELECT - Seleciona as colunas da consulta
  • FROM - Seleciona a(s) tabela(s)
  • WHERE - Permite criar condições para filtrar os dados retornados na consulta
  • GROUP BY Agrupa dados na consulta.
  • HAVING Limita o resulta em uma condição estabelecida.
  • ORDER BY Especifica a coluna ou as colunas que serão ordenadas na consulta

Usando o Select na forma básica

Select * FROM empregados

No exemplo acima, usamos as cláusulas Select e From. O * (asterisco) indica que todas as colunas da tabela devem ser retornadas.

Em muitos casos é recomendável selecionar algumas colunas apenas e não todas como no exemplo acima, isto deve ser considerado pois quando o tamanho do banco aumentar as consultas poderão ficar lentas em função do grande volume de informações contida nas tabelas.

Selecionando colunas específicas para a consulta

SELECT nome,salario, cidade
FROM empregados

Para retornar apenas as colunas desejadas, basta indicar os seus nomes na instrução select como no exemplo a seguir, onde selecionamos o nome, salário e cidade.

Renomeando colunas

SELECT nome, data_nascimento As Aniversario, cidade As residencia
FROM empregados

É importante observar que a coluna foi renomeada apenas nesta consulta, mas não houve alteração no nome da coluna no banco de dados.

Concatenando colunas em uma consulta.

Concatenamos colunas quando queremos unir o resultado de dois campos em um só. Imagine que numa determinada tabela exista o campo nome, sobrenome, rua e numero da casa, neste caso ao fazermos uma consulta seria interessante concatenat o nome com o sobrenome e a rua com o numero da casa.

O Mysql trata concatenação de forma diferente do SQL Server e do Access, enquanto que no Mysql usamos a função concat(), no SQL Server e no Access fazemos pelo sinal de adição.

Exemplo de concatenação no Mysql:

SELECT concat(nome, ' mora em ', cidade, '/', estado
FROM empregados

Exemplo de concatenação em SQL Server ou Access

SELECT nome + ' mora em ' + cidade + '/' + estado
FROM empregados

O sinal + (mais) indica concatenação e deve ser usado para concatenar colunas ou uma coluna com um texto. Só poderá ser concatenado colunas do tipo texto, caso for necessário concatenar colunas do tipo data ou numérico, é necessário fazer a conversão dessas colunas para texto.

A função CONVERT() do SQL Server é usada para fazer a conversão de valores de uma coluna.

Exemplo 1:

SELECT nome + ' ganha ' + convert(varchar, salario)
FROM empregados

Exemplo 2:

SELECT nome + ' nasceu em ' + Convert(VarChar, data_nascimento, 103)
FROM empregados

No primeiro caso, estamos convertendo o valor da coluna salário para texto, já que esta coluna é do tipo Decimal.

No segundo exemplo, estamos convertendo o valor de uma coluna do tipo data para texto. Perceba que neste caso usamos o 103 na função, isto é necessário para informarmos que queremos que a data seja convertida no formato dd/mm/aaaa.

Selecionando valores distintos

Para eliminar linhas duplicadas, usamos a palavra-chave DISTINCT na cláusula SELECT.

SELECT distinct cidade
FROM empregados

No exemplo acima, usamos a palavra-chave distinct na coluna cidade, mas é possível relacionar mais de uma coluna, por exemplo, cidade e estado. Neste caso a combinação das duas colunas deve ser distinta.

Limitando o nº de linhas em uma consulta

Limitar o número de linhas é usado quando não queremos listar todas as linhas de uma tabela, seja pelo volume de linhas ou por não haver necessidade. O Mysql trata esta questão de forma diferente do SQL Server e do Access.

Em SQL Server e Access use o Top para indicar o limite de linhas desejado na consulta.

SELECT top 7 *
FROM empregados

Em Mysql use o Limit para indicar o limite de linhas desejado na consulta.

SELECT *
FROM empregados limit 0,7

O resultado será o mesmo, porém a leitura pode ser um pouco diferente, já que o top vai pegar as sete primeiras linhas e o limit vai pegar a partir de 0 até 7.

Participe do Simulado de HTML

Veja também:





Compartilhe com seus amigos:


// Comentários

Zane Lee // Belem/Pará // 16/06/2008 16:12:00

Gostei das explicações, são resumidas e fáceis de entender.Tirou as minhas dúvidas. Gostei !

UM abraço.

Cláudio Zaziki // Curitiba - Paraná // 07/08/2008 15:05:00

Simples e direto. Legal!

Eloiza da Penha // Nova Iguaçu // 27/09/2008 00:18:00

Olá! Gostei muito desse blog. Estou cursando técnico em informática e as dicas sobre DML foi de grande ajuda ao meu conhecimento, mas gostaria de saber como faço para usar dois select para poder usar o distinct e o count.

Parabéns Luis, por esse blog e obrigada desde já caso responda.

Gustavo Henrique // TAUBATE // 06/10/2008 07:52:00

Bom dia,

Gostaria de saber como faço um consulta utilizando mais de uma table no meu banco.

Por ex: tenho as tabelas (cac_p01,cac_p02,cac_p03,cac_p04) ao montar meu "select" como ele ficaria?

SELECT *

FROM .... !!!!

obrigado,

luis.blog.br // Limeira/SP // 08/10/2008 13:21:00

Gustavo e Eloiza, suas dúvidas de como unir duas ou mais tabelas no select podem serem sanadas neste post: http://www.luis.blog.br/left-join-e-inner-join-juncao-em-consultas-sql.aspx

Silvio // São Paulo // 15/10/2008 18:11:00

Olá, tenho uma duvida para fazer uma consulta no mysql, segue exemplo

SELECT nome, idade as anos

FROM tabPessoa

WHERE anos > 20

esta consulta retorna erro, eu queria saber como eu faço para utilizar o nome renomeado no WHERE, por que na verdadeira query que estou utilzando eu faço um calcula com datas e dou um nome para ela criando uma nova coluna na minha consulta e quando eu utilizo a mesma da erro.

grato fico no aguardo

Michael // Caraguatatuba // 08/11/2008 21:07:00

Estava apanhando por estar tentando usar LIMIT no Access, obrigado ai, usei TOP e resolveu.

Andriws // Osasco // 27/01/2009 14:57:00

Gostei mto deste blog, ele é simples e direto, sem aquelas explicações teoricas de quem gosta de falar dificil

Janaina // São Paulo // 27/02/2009 13:58:00

Gostaria de saber como exportar esses dados que selecionamos para consulta.

breno alves olivira // belo horizonte // 15/04/2009 11:57:00

isso ae.. tirou varias duvidas minha!

abraços

breno alves oliveira // belo horizonte // 15/04/2009 11:58:00

o unico defeito do blog e que você e evangelico!

Pablo // niuterói // 27/04/2009 10:59:00

parabéns, isso foi realmente útil para mim, tirou minhas dúvidas pois foi explicado de forma bem clara e simples.

ROBERT RODRIGUES DO NASCIMENTO // Serrinha - Bahia // 18/07/2009 06:36:00

Como devo escrever uma SQL - Consulta UNION, para unir dados das consultas abaixo:

Consulta CD0503-JMC

Consulta CD0503-MFB

Consulta CD0503-MMIC

Consulta CD0503-SBMM

Os campos das consultas são idênticos.

Campo1: Cod_Unico

Campo2: UOP

Campo3: Item

Campo4: Descrição

Campo5: Ge

Campo6: Família

Campo7: UN

Campo8: Implantação

Campo9: Liberação

Infelizmente não sei escrever SQL.

Se houver uma formar mais facil, de unir os dados destas consultas, também atende!

Estou necessitando desta ajuda, com certa urgência.

Fcarei muito grato a quem me ajudar.

Robert Rodrigues

Henrique // Manaus // 17/09/2009 19:01:00

Ola Luis.. estou com uma duvida.

Fiz uma coluna onde é inserido o CNPJ e CPF juntos.

No entanto, agora preciso selecionar somente quem tem CPF (com 11 caracteres). Ja procurei em todo lugar e nao achei. Tem como você me ajudar me dizendo como fazer este SELECT?

Um abraço e valeu!

Edleusa Dos Santos // São Paulo // 29/11/2009 15:27:00

Olá pessoal!!!

estou com dificuldades nos comando

de SQL, o que faz?

* SELECT

* SUM

* FROM

*LEFT, E ETC.

Marcos - www.conteudoanimal.com.br // Valinhos/SP // 07/07/2010 10:38:00

Silvio,

Vc tem que usar where com apelidos de campos

Assim o correto é :

WHERE idades > 20

XXX

Olá, tenho uma duvida para fazer uma consulta no mysql, segue exemplo

SELECT nome, idade as anos

FROM tabPessoa

WHERE anos > 20

esta consulta retorna erro, eu queria saber como eu faço para utilizar o nome renomeado no WHERE, por que na verdadeira query que estou utilzando eu faço um calcula com datas e dou um nome para ela criando uma nova coluna na minha consulta e quando eu utilizo a mesma da erro.

grato fico no aguardo

Marcos - www.conteudoanimal.com.br // Valinhos/SP // 07/07/2010 10:45:00

Ola,

Primeira coisa é necessári oque todas as tabelas sejam conectadas, ou seja, tenham chaves primarias ou estrageiras em comum para sair apenas uma tabela resultado

select *

from, cac_p01,cac_p02,cac_p03,cac_p04

[]´s

Marcos

http://www.conteudoanimal.com.br

Anderson Vieira // sao paulo // 16/10/2010 14:57:00

Amigo estava procurando algo que explicasse de forma simples para que servia a clausula GROUP BY do MySql, achei seu site. Não consegui mais parar de ler, muito interessante. Praticamente li todos seus artigos em apenas um dia. Post mais... este já esta em meus favoritos.

Abraços.

Kauane Benitis // Garça // 18/11/2010 22:46:00

Então, to precisando seriamente de ajuda pra finalizar o meu sistema como projeto de conclusão de curso.

não sei a codificação para votar nos candidatos cadastrados através do bando de dados access.

alem de mandar o voto não sei sisualizar o resultado

por favor preciso de ajuda

o projeto está sendo feito no visual studio 2008

muito obrigada!!

aguardo resposta




Digite seu nome:


Digite seu email: (ele não será divulgado)


Cidade:


Assunto:


Comentário: mínimo 200 caracteres (comentários inadequados serão excluídos)


Digite os números abaixo:


Declaro que estou de acordo com todas as cláusulas do Termo de Uso.


 

 

2007-2012   //   Blog do Luis   //   Hospedado no UOLHost   //   Política de Privacidade   //   Eu creio em Deus