+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\">Entrando e perguntando</span></font></p>
<p>Neste ponto, &eacute; mais importante descobrir como emitir perguntas
do que criar tabelas, carregar e recuperar dados. Esta se&ccedil;&atilde;o
descreve os princ&iacute;pios b&aacute;sicos de como entrar com os comandos,
usando v&aacute;rias perguntas. Voc&ecirc; pode experimentar familiarizando
com os trabalhos do MySQL. <br>
Aqui &eacute; um comando simples que pergunta ao servidor o n&uacute;mero
de sua vers&atilde;o e a data corrente.</p>
<p class=\"mysql\">mysql&gt; SELECT VERSION(), CURRENT_DATE;<br>
+--------------+--------------+<br>
| version() &nbsp;&nbsp;&nbsp;| CURRENT_DATE |<br>
+--------------+--------------+<br>
| 3.22.20a-log | 1999-03-19 &nbsp;&nbsp;|<br>
+--------------+--------------+<br>
1 row in set (0.01 sec)<br>
mysql&gt;</p>
<p>Esta pergunta ilustra v&aacute;rias coisas sobre MySQL: <br>
* Um comando normalmente consiste de uma declara&ccedil;&atilde;o do SQL
seguida por um ponto-e-v&iacute;rgula. <br>
(H&aacute; algumas exce&ccedil;&otilde;es onde um ponto-e-v&iacute;rgula
n&atilde;o s&atilde;o necess&aacute;rio. QUIT, mencionado anteriormente,
&eacute; um deles.) <br>
* Quando voc&ecirc; emite um comando, MySQL envia ao servidor para execu&ccedil;&atilde;o
e exibe os resultados, <br>
ent&atilde;o exibe mysql&gt;, para indicar que est&aacute; pronto para
outro comando. <br>
* MySQL exibe a sa&iacute;da da pergunta como uma tabela (filas e colunas).
<br>
A primeira fila contem r&oacute;tulos &agrave;s colunas. As demais filas
s&atilde;o os resultados da pergunta. Normalmente, os r&oacute;tulos da
coluna s&atilde;o os nomes das colunas que traz das tabelas do banco de
dados. Se voc&ecirc; est&aacute; recuperando o valor de uma express&atilde;o,
em vez de uma coluna de tabela, MySQL rotula a coluna usando a express&atilde;o
que foi usada. <br>
* MySQL mostra quantas filas foram exibidas, e quanto tempo a pergunta
levou para ser executada, dando uma id&eacute;ia rude de performance do
servidor. Esses valores s&atilde;o imprecisos porque eles representam
tempo de rel&oacute;gio de parede (n&atilde;o CPU ou tempo de m&aacute;quina),
e porque eles s&atilde;o afetados por certos tipos de fatores. Palavras
chaves podem ser inseridas em qualquer caixa de entrada . As seguintes
perguntas s&atilde;o equivalente: </p>
<p><br>
<span class=\"mysql\">mysql&gt; SELECT VERSION(), CURRENT_DATE;<br>
mysql&gt; select version(), current_date;<br>
mysql&gt; SeLeCt vErSiOn(), current_DATE;</span></p>
<p>Aqui &eacute; outra pergunta. Isto demonstra que voc&ecirc; pode usar
MySQL como uma simples calculadora: </p>
<p></p>
<p></p>
<p class=\"mysql\">mysql&gt; SELECT SIN(PI()/4), (4+1)*5;<br>
+-------------+---------+<br>
| SIN(PI()/4) | (4+1)*5 |<br>
+-------------+---------+<br>
| 0.707107 &nbsp;&nbsp;&nbsp;| 25 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+-------------+---------+</p>
<p>Os comandos mostrados t&ecirc;m estado relativamente em declara&ccedil;&otilde;es
de linhas &uacute;nicas e curtas. Voc&ecirc; pode at&eacute; mesmo entrar
com declara&ccedil;&otilde;es m&uacute;ltiplas em uma &uacute;nica linha.
Somente termine cada uma com um ponto-e-v&iacute;rgula.</p>
<p class=\"mysql\">mysql&gt; SELECT VERSION(); SELECT NOW();<br>
+--------------+<br>
| version() &nbsp;&nbsp;&nbsp;|<br>
+--------------+<br>
| 3.22.20a-log |<br>
+--------------+</p>
<p class=\"mysql\">+---------------------+<br>
| NOW() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+---------------------+<br>
| 1999-03-19 00:15:33 |<br>
+---------------------+</p>
<p>Um comando dado todo em uma &uacute;nica linha, assim como comandos compridos
que requerem v&aacute;rias <br>
linhas, n&atilde;o tem nenhum problema. MySQL determina que sua declara&ccedil;&atilde;o
termina por um ponto-e-v&iacute;rgula, e n&atilde;o, o fim de uma linha
de entrada. <br>
Aqui &eacute; uma simples declara&ccedil;&atilde;o de linha m&uacute;ltipla:
</p>
<p class=\"mysql\">mysql&gt; SELECT<br>
-&gt; USER()<br>
-&gt; ,<br>
-&gt; CURRENT_DATE;<br>
+--------------------+--------------+<br>
| USER() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
CURRENT_DATE |<br>
+--------------------+--------------+<br>
| joesmith@localhost | 1999-03-18 &nbsp;&nbsp;|<br>
+--------------------+--------------+</p>
<p>Neste exemplo, note como o prompt muda de mysql&gt; para -&gt; depois
que entra com a pergunta na <br>
primeira linha de uma linha m&uacute;ltipla. MySQL indica que n&atilde;o
tem uma declara&ccedil;&atilde;o completa e est&aacute; esperando o resto.
O prompt &eacute; seu amigo, porque ele fornece retorno valioso. Se voc&ecirc;
usa aquele retorno, voc&ecirc; sempre estar&aacute; atento do que MySQL
est&aacute; esperando. Se voc&ecirc; decide n&atilde;o executar mais nenhum
comando que est&aacute; no processo de entrada, cancele isto, digitando
\\c </p>
<p class=\"mysql\">mysql&gt; SELECT<br>
-&gt; USER()<br>
-&gt; \\c<br>
mysql&gt;</p>
<p>Note tamb&eacute;m aqui, o prompt. Isto muda o retorno para mysql&gt;
depois que voc&ecirc; digita \\c, MySQL indica o retorno e que est&aacute;
pronto para um novo comando. A seguinte tabela mostra cada um dos prompts
que pode ser visto e resume que estado o MySQL est&aacute;: </p>
<p>Prompt<br>
Significado<br>
<span class=\"mysql\">mysql&gt;</span><br>
Pronto para um novo comando <br>
<span class=\"mysql\">-&gt;</span><br>
Esperando para pr&oacute;xima linha de linha m&uacute;ltipla de comando
<br>
<span class=\"mysql\">\'&gt;</span><br>
Esperando para pr&oacute;xima linha, colecionando um fio que come&ccedil;a
com uma cita&ccedil;&atilde;o &uacute;nica (&quot;\'&quot;) <br>
<span class=\"mysql\">&quot;&gt;</span><br>
Esperando para pr&oacute;xima linha, colecionando um fio que come&ccedil;a
com uma cita&ccedil;&atilde;o duplicada (&quot;&quot;&quot;) </p>
<p>Linhas m&uacute;ltiplas de declara&ccedil;&otilde;es comuns ocorrem por
acaso, quando voc&ecirc; pretende emitir um comando em uma &uacute;nica
linha, mas esquece o ponto-e-v&iacute;rgula. Neste caso, MySQL espera
para mais entrada: </p>
<p class=\"mysql\">mysql&gt; SELECT USER()<br>
-&gt;</p>
<p>Se isto acontecer (voc&ecirc; pensa que entrou com uma declara&ccedil;&atilde;o
mas a unicamente a resposta &eacute; um -&gt; prompt), mas provavelmente,
MySQL est&aacute; esperando o ponto-e-v&iacute;rgula. <br>
Entre com um ponto-e-v&iacute;rgula para completar a declara&ccedil;&atilde;o,
e MySQL executar&aacute;: </p>
<p class=\"mysql\">mysql&gt; SELECT USER()<br>
-&gt; ;<br>
+--------------------+<br>
| USER() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+--------------------+<br>
| joesmith@localhost |<br>
+--------------------+</p>
<p>O \'&gt; e &quot;&gt; prompts ocorrem durante cole&ccedil;&atilde;o de
fio. No MySQL, pode escrever fios circundados por um &quot;\'&quot; ou
&quot;&quot;&quot; caracteres (por exemplo, \'hello\' ou &quot;adeus&quot;),
e MySQL deixa que voc&ecirc; entre com os fios que transp&otilde;em linhas
m&uacute;ltiplas. Quando voc&ecirc; v&ecirc; um \'&gt; ou &quot;&gt; prompt,
este meio que tem de entrar com uma linha contendo um fio que come&ccedil;a
com caracteres: &quot;\'&quot; ou &quot;&quot;, n&atilde;o tem ainda que
entrar com a cita&ccedil;&atilde;o que termina o fio. <br>
Seria bom se est&aacute; realmente entrando com uma linha m&uacute;ltipla
de fio, mas como provavelmente &eacute; isso? Mais freq&uuml;entemente,
o \'&gt; e &quot;&gt; prompts indicam que voc&ecirc; descuidou e deixou
fora um caracter de cita&ccedil;&atilde;o. Por exemplo: </p>
<p class=\"mysql\">mysql&gt; SELECT * FROM my_table WHERE name = &quot;Smith
AND age &lt; 30;<br>
&quot;&gt;</p>
<p>Se voc&ecirc; ao entrar com a declara&ccedil;&atilde;o SELECT, ele acessa,
volta e se voc&ecirc; ficar esperando o resultado e nada acontecer, ao
inv&eacute;s de admirar, note a pista fornecida pelo &quot;&gt; prompt.
Isto diz que MySQL est&aacute; esperando ver o final de um fio.<br>
Neste ponto, o que deve ser feito? &Eacute; simples, &eacute; s&oacute;
cancelar o comando. Entretanto, n&atilde;o pode ser somente \\c, porque
MySQL interpreta isto, como a separa&ccedil;&atilde;o do fio que est&aacute;
colecionando. Ao inv&eacute;s, de entrar somente com o fechamento de caracter
(assim MySQL saber&aacute; que voc&ecirc; terminou o fio), entre com &quot;\\c:
</p>
<p class=\"mysql\">mysql&gt; SELECT * FROM my_table WHERE name = &quot;Smith
AND age &lt; 30;<br>
&quot;&gt; &quot;\\c<br>
mysql&gt;</p>
<p>As mudan&ccedil;as do prompt retornam para mysql&gt;, indicando que MySQL
est&aacute; pronto para um novo <br>
comando. Isto &eacute; importante, para saber o que \'&gt; e &quot;&gt;
prompts expressam, porque se voc&ecirc; entrar <br>
incorretamente com um fio, mais al&eacute;m, voc&ecirc; digita a vontade
e parece que MySQL ignorou, incluindo uma linha contendo QUIT, isto pode
ser completamente confuso, se voc&ecirc; n&atilde;o sabe o que necessita
para fornecer a cita&ccedil;&atilde;o de t&eacute;rmino antes que possa
cancelar o comando corrente. </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 (~6 anos atrás)

Onde eu encontro pra download o mysql??
09/07/2006 4:22pm (~10 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 (~10 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 (~11 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 (~11 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 (~11 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 (~12 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 (~12 anos atrás)

Tulio disse:
Belo Tutorial! Parabêns.
05/03/2004 9:06am (~12 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 (~14 anos atrás)

Novo Comentário:

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