+2

Introdução ao MySQL

criado por João Prado Maia em 09/12/2000 4:37pm
<p><br>
<font color=\"#003366\"><span class=\"negrito\">Contando filas</span></font></p>
<p>Bancos de Dados s&atilde;o freq&uuml;entemente utilizados para responder
a pergunta, &quot;quantas vezes faz um certo tipo de dados ocorrer em
uma tabela?&quot; Por exemplo, voc&ecirc; p&ocirc;de querer saber quantos
animais de estima&ccedil;&atilde;o voc&ecirc; tem, ou quantos animais
de estima&ccedil;&atilde;o cada dono tem, ou voc&ecirc; p&ocirc;de desejar
desempenhar v&aacute;rias esp&eacute;cies de censos em seus animais. <br>
Contando o n&uacute;mero total de animais voc&ecirc; faz a mesma pergunta
de &quot;quantas filas tem na tabela de animal de estima&ccedil;&atilde;o?&quot;
porque h&aacute; um registro, por cada animal de estima&ccedil;&atilde;o.
<br>
A fun&ccedil;&atilde;o COUNT() conta o n&uacute;mero de resultados n&atilde;o
NULOS, assim a pergunta para contar seus de animais &eacute;: </p>
<p class=\"mysql\">mysql&gt; SELECT COUNT(*) FROM pet;<br>
+----------+<br>
| COUNT(*) |<br>
+----------+<br>
| 9 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+----------+</p>
<p>Mais, voc&ecirc; recuperou os nomes das pessoas que possu&iacute;am animais
de estima&ccedil;&atilde;o. Voc&ecirc; pode usar COUNT() se voc&ecirc;
deseja descobrir quantos animais de estima&ccedil;&atilde;o cada dono
tem: </p>
<p class=\"mysql\">mysql&gt; SELECT owner, COUNT(*) FROM pet GROUP BY owner;<br>
+--------+----------+<br>
| owner &nbsp;| COUNT(*) |<br>
+--------+----------+<br>
| Benny &nbsp;| 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| Diane &nbsp;| 2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| Gwen &nbsp;&nbsp;| 3 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| Harold | 2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+--------+----------+</p>
<p>Note o uso de GROUP BY para agrupar juntamente todos os registros de
cada dono. <br>
Sem isto, voc&ecirc; obtem uma mensagem de erro: </p>
<p class=\"mysql\">mysql&gt; SELECT owner, COUNT(owner) FROM pet;<br>
ERROR 1140 at line 1: Mixing of GROUP columns (MIN(),MAX(),COUNT()...)<br>
with no GROUP columns is illegal if there is no GROUP BY clause</p>
<p>COUNT() e a GROUP BY s&atilde;o &uacute;teis para caracterizar seus dados
em v&aacute;rios caminhos. <br>
Os seguintes exemplos mostram caminhos diferentes para desempenhar opera&ccedil;&otilde;es
de censo animais. </p>
<p>N&uacute;mero de animais por esp&eacute;cie: </p>
<p class=\"mysql\">mysql&gt; SELECT species, COUNT(*) FROM pet GROUP BY species;<br>
+---------+----------+<br>
| species | COUNT(*) |<br>
+---------+----------+<br>
| bird &nbsp;&nbsp;&nbsp;| 2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| cat &nbsp;&nbsp;&nbsp;&nbsp;| 2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| dog &nbsp;&nbsp;&nbsp;&nbsp;| 3 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| hamster | 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| snake &nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+---------+----------+</p>
<p>N&uacute;mero de animais por sexo: </p>
<p class=\"mysql\">mysql&gt; SELECT sex, COUNT(*) FROM pet GROUP BY sex;<br>
+------+----------+<br>
| sex &nbsp;| COUNT(*) |<br>
+------+----------+<br>
| NULL | 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| f &nbsp;&nbsp;&nbsp;| 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| m &nbsp;&nbsp;&nbsp;| 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+------+----------+</p>
<p>(Nesta sa&iacute;da, NULL indica &quot;sexo desconhecido.&quot;) </p>
<p>N&uacute;mero de animais por combina&ccedil;&atilde;o de esp&eacute;cie
e sexo: </p>
<p class=\"mysql\">mysql&gt; SELECT species, sex, COUNT(*) FROM pet GROUP
BY species, sex;<br>
+---------+------+----------+<br>
| species | sex &nbsp;| COUNT(*) |<br>
+---------+------+----------+<br>
| bird &nbsp;&nbsp;&nbsp;| NULL | 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| bird &nbsp;&nbsp;&nbsp;| f &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| cat &nbsp;&nbsp;&nbsp;&nbsp;| f &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| cat &nbsp;&nbsp;&nbsp;&nbsp;| m &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| dog &nbsp;&nbsp;&nbsp;&nbsp;| f &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| dog &nbsp;&nbsp;&nbsp;&nbsp;| m &nbsp;&nbsp;&nbsp;| 2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| hamster | f &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| snake &nbsp;&nbsp;| m &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+---------+------+----------+</p>
<p>Para uma tabela inteira voc&ecirc; usa COUNT(). Por exemplo, a pergunta
pr&eacute;via, quando desempenhada somente nos c&atilde;es e gatos:<br>
<br>
<span class=\"mysql\">mysql&gt; SELECT species, sex, COUNT(*) FROM pet<br>
-&gt; WHERE species = &quot;dog&quot; OR species = &quot;cat&quot;<br>
-&gt; GROUP BY species, sex;<br>
+---------+------+----------+<br>
| species | sex &nbsp;| COUNT(*) |<br>
+---------+------+----------+<br>
| cat &nbsp;&nbsp;&nbsp;&nbsp;| f &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| cat &nbsp;&nbsp;&nbsp;&nbsp;| m &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| dog &nbsp;&nbsp;&nbsp;&nbsp;| f &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| dog &nbsp;&nbsp;&nbsp;&nbsp;| m &nbsp;&nbsp;&nbsp;| 2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+---------+------+----------+</span></p>
<p>Ou, se voc&ecirc; desejar o n&uacute;mero de animais por sexo, que contenha
valores conhecidos para o sexo dos animais: </p>
<p class=\"mysql\">mysql&gt; SELECT species, sex, COUNT(*) FROM pet<br>
-&gt; WHERE sex IS NOT NULL<br>
-&gt; GROUP BY species, sex;<br>
+---------+------+----------+<br>
| species | sex &nbsp;| COUNT(*) |<br>
+---------+------+----------+<br>
| bird &nbsp;&nbsp;&nbsp;| f &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| cat &nbsp;&nbsp;&nbsp;&nbsp;| f &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| cat &nbsp;&nbsp;&nbsp;&nbsp;| m &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| dog &nbsp;&nbsp;&nbsp;&nbsp;| f &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| dog &nbsp;&nbsp;&nbsp;&nbsp;| m &nbsp;&nbsp;&nbsp;| 2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| hamster | f &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
| snake &nbsp;&nbsp;| m &nbsp;&nbsp;&nbsp;| 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+---------+------+----------+</p>

Comentários:

Mostrando 1 - 10 de 10 comentários
Prezado Amigo,

veja, estive lendo seu artigo aqui colocado, mas me surgiu uma dúvida.
Quando vc falar em ordem crescente DESC, mas como fazer com a ordem decrescente?
O que eu gostaria de saber se na busca SELECT eu posso fazer com que os ids mais velhos fiquem embaixo e os mais novos em cima, tipo assim:
id: 05
id: 04
id: 03
id: 02
id: 01

Como eu aplicaria este processo de busca?

Tem como me dar este help?

Abraços.
betezek@betezek.com.br
fernando
15/01/2010 11:47am (~15 anos atrás)

Onde eu encontro pra download o mysql??
09/07/2006 4:22pm (~18 anos atrás)

Instalei o MySQL na minha máquina, dizem que o usuário é 'root' e a senha é '' (em branco), mas não estou conseguindo acessar o MySQL, depois instalei o Vertrigo Serv, e nele também encontro dificuldades para usar o PHP my Admin. como resolvo este problema?
02/06/2006 7:56am (~18 anos atrás)

Instalei tudo, apache, PhP e o mysql, a luz do mysql (versao 3.23.51) está verde, digamos que tudo certo, mas como posso testar pra ver se funciona?
26/01/2006 10:13am (~19 anos atrás)

francirrenio disse:
Caro amigo, me de uma juda.
Tenho uma tabela de cadastro de alunos e tem alguns alunos duplicados.
Gostaria de saber como ver os cadastros duplicados de matricula.

Valeu...
03/12/2005 5:41am (~19 anos atrás)

GILSON SOARES disse:
AMIGOS EU NAO ESTOU CONSEGUINDO AUTENTICAR NO MYSQL ESTOU USANDO APACHE 1.3.29 EO PHP 5.0.4
GOSTARIA QUE VOCE ME AJUDEM A SABER QUANDO ESTOU CONECTADO AO MYSQL.
31/08/2005 9:25am (~19 anos atrás)

Criei um BD no MySql e inseri alguns registros onde alguns caracteres são especiais, principalmente acentos, só que estou utilizando o dreamweaver para visualizar os dados, e esse acentos nao aparecem no lugar vem outros caracteres (sujeira)o que tenho q fazer
Grato
27/10/2004 2:05pm (~20 anos atrás)

Olá João, gostaria de uma ajuda sua, se possível, estou desenvolvendo uma pagina em php, para consulta de procedimentos médicos em um bd mysql, o processo seria o seguinte, tenho uma tabela com 3 campos: contrato, mes, procedimento, queria adicionar um campo senha na tabela, que pegasse os dados do campo contrato, assim o usuario entraria com o login contrato e senha tmb os dados do contrato, só que tenho que fazer todos os meses, e mais uma dúvida, para que a nova inserção dos meses posteriores fosse feita uma inserção na tabela.

Um abraço, agradço a atenção

Kerensky
15/08/2004 8:31am (~20 anos atrás)

Tulio disse:
Belo Tutorial! Parabêns.
05/03/2004 9:06am (~21 anos atrás)

Olá estou iniciando na area de programação, gostaria de saber se este artigo é valido para MySql fo Windows??
Estou com dificuldades...
poderia me ajudar...
Obrigado
15/09/2002 2:19pm (~22 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)