5
respostas

Dúvida no código

Professor,

No Count(*) não é necessário o alias?

Na aula foram apresentados os seguintes códigos:

SELECT EMBALAGEM, COUNT(*) AS CONTADOR FROM tabela_de_produtos GROUP BY EMBALAGEM;

Mas no exercício de números de vendas a reposta sugestiva do professor não usa alias para COUNT(*), veja:

SELECT COUNT(*) FROM itens_notas_fiscais WHERE codigo_do_produto = '1101035' AND QUANTIDADE = 99;

Gostaria de explicação sobre isto!

Outra dúvida, nos códigos abaixo:

1) No código abaixo usa aspa no nome da coluna, no alias e no número do campo:

SELECT MAX(`QUANTIDADE`) as 'MAIOR QUANTIDADE' FROM itens_notas_fiscais WHERE `CODIGO_DO_PRODUTO` = '1101035' ;

2) Neste código não usa e é bem semelhante ao anterior:

SELECT BAIRRO, SUM(LIMITE_DE_CREDITO) AS LIMITE FROM tabela_de_clientes 
WHERE CIDADE = 'Rio de Janeiro' GROUP BY BAIRRO;

Gostaria entender o uso e não uso de aspa (') para os dois casos anteriores.

5 respostas

Olá Paulo, tudo bem?

  • Ao utilizar o COUNT não é necessário utilizar o ALIAS. O ALIAS é utilizado no COUNT para dar um nome "bonitinho" a coluna que é criada pelo COUNT, mas caso você não queira utilizar o ALIAS Paulo, não teria problema, a utilização é opcional.

  • Em relação a utilização das aspas simples tenho algumas observções:

  • No nome do campo também é opcional Paulo, mas neste caso não é utilizado aspas simples e sim o acento grave (`), se você utilizar aspas simples no nome do campo, ele será considerado como uma string e não um campo, mas a utilização também é opcional.

  • Em relação a utilização de aspas simples no ALIAS, é necessário apenas quando utilizamo nomes compostos, como no exemplo que você utilizou: 'MAIOR QUANTIDADE', caso seja um nome simples, não é necessário utilizar aspas simples no ALIAS.

  • Já em relação ao valor do campo, só é necessário utilizar aspas simples, caso você esteja comparando o valor a um campo string, como no exemplo que você utilizou, o campo CODIGODOPRODUTO é do tipo VARCHAR, ou seja, ele é string, então você precisa utilizar os valores dentro de aspas simples para que o valor seja considerado string.

Espero ter ajudado, qualquer nova dúvida é só falar Paulo e bons estudos!

Você disse: "Ao utilizar o CASE não é necessário utilizar o ALIA"

Mas nos códigos que informei não esta sendo usado o CASE.

Não entendi esta explicação.

Acabei confundindo as informações Paulo, peço desculpas por isso, acabei informando CASE ao invés de COUNT.

Mas já corrigi a informação na resposta anterior.

Bons estudos!

Não entendi: "No nome do campo também é opcional Paulo, mas neste caso não é utilizado aspas simples e sim o acento grave (`), se você utilizar aspas simples no nome do campo, ele será considerado como uma string e não um campo, mas a utilização também é opcional. "

Por que usou o acento grave? Usando aspas simples é considerado um string, então em que casos usar? Talvez estou esquecendo do básico sobre string e tal.

Neste código:

SELECT MAX(`QUANTIDADE`) as 'MAIOR QUANTIDADE' FROM itens_notas_fiscais WHERE `CODIGO_DO_PRODUTO` = '1101035' ;

Já vi o professor usar codigo_do_produto = 1101035, não usando aspas simples. E por que dessa vez ele usou?

Por que usou o acento grave? Usando aspas simples é considerado um string, então em que casos usar?

  • Não utilizamos a aspas simples quando estamos nos referindo a uma coluna da tabela Paulo, pois ao utilizar a aspas simples, a informação se torna uma string, um texto comum, como na imagem abaixo, quando utilizei a aspas simples no nome do campo QUANTIDADE e CODIGO_DO_PRODUTO. Os dois campos passaram a ficar em laranja, assim como o alias, que é um texto criado diretamente no comando e como o código utilizado no filtro. Automaticamente o banco convertou os dois campos para texto e no momento de executar o comando ele não consegue identificar os dois como campos da tabela.
comandos
  • Já ao utilizar o acento grave, o banco de dados não realiza a conversão dos campos para texto, e até mesmo a cor dos campos muda, mas a utilização é opcional, você utiliza apenas se quiser. Algumas empresas podem utilizar o acento grave como um padrão ao realizar as consultas, por exemplo.
comandos

Já vi o professor usar codigo_do_produto = 1101035, não usando aspas simples. E por que dessa vez ele usou?

  • O MySQL consegue realizar a comparação de um número com uma string, por este motivo o instrutor conseguiu realizar o filtro mesmo não passando o valor entre as aspas simples, porém isso só funciona para campos que contêm apenas números, caso no código do produto existisse também letras, seria necessario a utilização das aspas simples, mas neste caso o instrutor tem a certeza que o campo não contêm letras e números então ele consegue relizar o filtro sem problemas.