EDUCAÇÃO / TECNOLOGIA / UTILIDADE PÚBLICA

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á?

[QUEBRA]

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.



 

Veja também

Comentários

Gostei das explicações, são resumidas e fáceis de entender.Tirou as minhas dúvidas. Gostei ! UM abraço. Zane Lee // Belem/Pará
Simples e direto. Legal! Cláudio Zaziki // Curitiba - Paraná
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. Eloiza da Penha // Nova Iguaçu
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, Gustavo Henrique // TAUBATE
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 luis.blog.br // Limeira/SP
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 Silvio // São Paulo
Estava apanhando por estar tentando usar LIMIT no Access, obrigado ai, usei TOP e resolveu. Michael // Caraguatatuba
Gostei mto deste blog, ele é simples e direto, sem aquelas explicações teoricas de quem gosta de falar dificil Andriws // Osasco
Gostaria de saber como exportar esses dados que selecionamos para consulta. Janaina // São Paulo
isso ae.. tirou varias duvidas minha! abraços breno alves olivira // belo horizonte
o unico defeito do blog e que você e evangelico! breno alves oliveira // belo horizonte
parabéns, isso foi realmente útil para mim, tirou minhas dúvidas pois foi explicado de forma bem clara e simples. Pablo // niuterói
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 ROBERT RODRIGUES DO NASCIMENTO // Serrinha - Bahia
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! Henrique // Manaus
Olá pessoal!!! estou com dificuldades nos comando de SQL, o que faz? * SELECT * SUM * FROM *LEFT, E ETC. Edleusa Dos Santos // São Paulo
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
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 Marcos - www.conteudoanimal.com.br // Valinhos/SP
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. Anderson Vieira // sao paulo
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 Kauane Benitis // Garça
Bom dia, pessoal. Tenho uma tabela c/ o campo Competencia, cujo seus valores estão na estrutura "AAAA/MM". Como que eu faço p/ fazer um "select" mudando essa estrutura, ou seja: "MM/AAAA"? Obrigado... HELIO JR. // MACHADO - MG
É obrigatório o uso do "AS" para renomear tabelas no SELECT? ou posso apenas colocar o nome desejado na frente? Por exemplo.. SELECT END.casa, END.rua FROM endereco AS END WHERE .... ou assim.. UPDATE cadastro CAD INNER JOIN teste TES ON CAD.idauto ... Tem problema? Victor Aragon // Ribeirão Preto
© 2008-2017 | LUIS.BLOG.BR | Política de Privacidade | Em Jesus Cristo eu confio