Pq qdo eu rodo uma consulta sql do tipo SELECT COUNT (*) e a tabela esta vazia dá erro de sql??
se alguem puder me ajudar....
Select Count (*)
Started By fabiano.froes, 08/05/2007, 17:47
5 replies to this topic
#1
Posted 08/05/2007, 17:47
Arley Fabiano Santos Fróes
fabiano@4way.com.br
fabiano@4way.com.br
#2
Posted 08/05/2007, 17:53
Qual seria o erro?
Aprendendo a Amar - O Encanto é aqui!
www.aprendendoaamar.com
www.aprendendoaamar.com
#3
Posted 08/05/2007, 20:04
Da uma olha no manual:
http://dev.mysql.com...nting-rows.html
De preferência para da proxima falar toda a query para analizarmos onde esta o erro.
Abraços
http://dev.mysql.com...nting-rows.html
De preferência para da proxima falar toda a query para analizarmos onde esta o erro.
Abraços
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .
#4
Posted 09/05/2007, 15:25
Teoria
Utilize
ou
SELECT COUNT (*)Conta todos os campos da tabela
Utilize
SELECT COUNT (0)
ou
SELECT COUNT ([nome do campo])Ele irá contar apenas um campo melhorando a performance de seu comando.
Edição feita por: MACUL, 11/05/2007, 17:16.
*************** M ** A ** C ** U ** L ***************
*************************************************
*************************************************
#5
Posted 10/05/2007, 16:35
Teoria
SELECT COUNT (*)Conta todos os campos da tabela
UtilizeSELECT COUNT (0)
ouSELECT COUNT ([nome do campo])Ele irá contar apenas um campo melhorando a performance de seu comando.
Contar campos? Você quis dizer registros (tuplas)?
Pelo menos no MySQL, o COUNT(*) é otimizado e retorna o número de registros da tabela.
E já COUNT(expr) retorna a quantidade de não-null.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
#6
Posted 11/05/2007, 17:43
Sim campos e não linhas.
Concordo com você, a explicação não ficou muito boa.
Você informou que no MySQL já é otimizado.
Pelo que me foi passado por DBAs (ORACLE/SQL SERVER) eu não sou um DBA.
Porém é a parte que procuro desenvolver melhor pois quando se trabalha com muita quantidade de registros passa a ter diferença uma informação como essa, desse modo busquei essa informação e estou passando apenas o que me foi ensinado.
o count(*) retorna a contagem de quantide de linhas/tuplas dos campos (campo1, campo2 e campo3)
e o count(campo1) retorna a contagem de quantide de linhas/tuplas do campo1
A princípio questionei essa informação porém sua própria explicação
definiria que realmente o gerenciador de banco de dados realiza a verificação em todos os campos, não ?
Tentei observar a diferença com ferramentas de análise de performance, o que na verdade não consegui provar. Porém pode-se por analogia (um pouco grosseira, concordo), observar que quando executo
tem pior performance do que
OBS : Tuplas, Boa. Não "escutava" essa faz algum tempo.
ALGUNS LINKS SOBRE O ASSUNTO
ORACLE
http://www.lazydba.c...e/0__14374.html
MY SQL
http://www.mysqlperf...nt-vs-countcol/
http://www.dicas-l.c...db_20060925.php
SQL SERVER
http://msdn2.microso...43(SQL.80).aspx
Concordo com você, a explicação não ficou muito boa.
Você informou que no MySQL já é otimizado.
Pelo que me foi passado por DBAs (ORACLE/SQL SERVER) eu não sou um DBA.
Porém é a parte que procuro desenvolver melhor pois quando se trabalha com muita quantidade de registros passa a ter diferença uma informação como essa, desse modo busquei essa informação e estou passando apenas o que me foi ensinado.
create table tabela_exemplo ( campo1 number, campo2 number, campo3 number, )
o count(*) retorna a contagem de quantide de linhas/tuplas dos campos (campo1, campo2 e campo3)
e o count(campo1) retorna a contagem de quantide de linhas/tuplas do campo1
A princípio questionei essa informação porém sua própria explicação
E já COUNT(expr) retorna a quantidade de não-null.
definiria que realmente o gerenciador de banco de dados realiza a verificação em todos os campos, não ?
Tentei observar a diferença com ferramentas de análise de performance, o que na verdade não consegui provar. Porém pode-se por analogia (um pouco grosseira, concordo), observar que quando executo
select * from tabela_exemplo
tem pior performance do que
select campo1 from tabela_exemplo
OBS : Tuplas, Boa. Não "escutava" essa faz algum tempo.
ALGUNS LINKS SOBRE O ASSUNTO
ORACLE
http://www.lazydba.c...e/0__14374.html
MY SQL
http://www.mysqlperf...nt-vs-countcol/
http://www.dicas-l.c...db_20060925.php
SQL SERVER
http://msdn2.microso...43(SQL.80).aspx
*************** M ** A ** C ** U ** L ***************
*************************************************
*************************************************
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)