Introdução ao MySQL
<p><br>
<font color=\"#003366\"><span class=\"negrito\">Trabalhando com valores NULOS</span></font></p>
<p>O valor NULL pode ser surpreendente até você se acostumar
a isto. Conceitualmente, valores NULL são valores desconhecidos
e isto é tratado diferentemente dos outros valores. Para testar
NULL, você não pode usar os operadores de comparação
de aritmética tal como =, < ou !=. Para demonstrar isto, tenta
a seguinte pergunta: </p>
<p class=\"mysql\">mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 >
NULL;<br>
+----------+-----------+----------+----------+<br>
| 1 = NULL | 1 != NULL | 1 < NULL | 1 > NULL |<br>
+----------+-----------+----------+----------+<br>
| NULL | NULL |
NULL | NULL |<br>
+----------+-----------+----------+----------+</p>
<p>Claramente você obtem nenhum resultado significativos destas comparações.
<br>
Use o operadores IS NULL e IS NOT NULL: </p>
<p class=\"mysql\">mysql> SELECT 1 IS NULL, 1 IS NOT NULL;<br>
+-----------+---------------+<br>
| 1 IS NULL | 1 IS NOT NULL |<br>
+-----------+---------------+<br>
| 0 | 1 |<br>
+-----------+---------------+</p>
<p>No MySQL, 0 são valores falsos e 1 são valores verdadeiros.
<br>
Este tratamento especial de NULL é por que isto foi necessário
para determinar se os animais não estão mortos, usando death
IS NOT NULL ao invés de death != NULL. </p>
<p></p>
<p></p>
<p class=\"negrito\"><font color=\"#003366\">Unindo Modelo</font></p>
<p>MySQL fornece um modelo do SQL padronizado unindo assim um formulário
de modelo baseado em expressões regulares parecidas com aquelas
utilizadas por utilitários de Unix tal como vi, grep e sed. <br>
Modelo do SQL permite você usar "_" para unir qualquer
caracter único, e "%" para unir um número arbitrário
de caracteres (incluindo zero caracteres). No MySQL, modelos do SQL são
caso insensível por default. Alguns exemplos são mostrados
baixo. Note que você não usa = ou != quando você usa
modelos do SQL; use o GOSTADO DE ou NÃO operadores de comparação
IGUAIS ao invés. </p>
<p>Para encontrar nomes começam com "b":</p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name LIKE "b%";<br>
+--------+--------+---------+------+------------+------------+<br>
| name | owner | species | sex | birth |
death |<br>
+--------+--------+---------+------+------------+------------+<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
| Bowser | Diane | dog | m |
1989-08-31 | 1995-07-29 |<br>
+--------+--------+---------+------+------------+------------+</p>
<p>Para encontrar nomes finalizando com "%fy": </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name LIKE "%fy";<br>
+--------+--------+---------+------+------------+-------+<br>
| name | owner | species | sex | birth |
death |<br>
+--------+--------+---------+------+------------+-------+<br>
| Fluffy | Harold | cat | f |
1993-02-04 | NULL |<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
+--------+--------+---------+------+------------+-------+</p>
<p>Para encontrar nomes contendo uns "w": </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name LIKE "%w%";<br>
+----------+-------+---------+------+------------+------------+<br>
| name | owner | species | sex | birth |
death |<br>
+----------+-------+---------+------+------------+------------+<br>
| Claws | Gwen | cat |
m | 1994-03-17 | NULL |<br>
| Bowser | Diane | dog | m |
1989-08-31 | 1995-07-29 |<br>
| Whistler | Gwen | bird | NULL | 1997-12-09 |
NULL |<br>
+----------+-------+---------+------+------------+------------+</p>
<p>Para encontrar nomes contendo extamente cinco caracteres, usam os caracteres
de modelo "_":</p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name LIKE "_____";<br>
+-------+--------+---------+------+------------+-------+<br>
| name | owner | species | sex | birth |
death |<br>
+-------+--------+---------+------+------------+-------+<br>
| Claws | Gwen | cat | m |
1994-03-17 | NULL |<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
+-------+--------+---------+------+------------+-------+</p>
<p>O outro tipo de modelo fornecido por MySQL usa expressões regulares.
Quando você testa este tipo de modelo, usa os operadores REGEXP
e NOT REGEXP (ou RLIKE e NOT RLIKE, que são sinônimos). <br>
Algumas características expressões regulares são:
<br>
* "." casa qualquer caracter único. <br>
* Uma classe de caracter "[...]" une qualquer caracter dentro
dos suportes. <br>
Por exemplo, "[abc]" une "a", "b" ou "c".
Para especificar uma série de caracteres, usam um traço.
"[a-z]" une qualquer letra minúscula, ao passo que "[0-9]"
une qualquer dígito. <br>
* "*" une zero ou mais solicitações. Por exemplo,
"x*" une qualquer número de "x" caracteres,
"[0-9]*" une qualquer número de dígitos, e ".*"
une qualquer número de algo. <br>
* Expressões Regulares são casos sensíveis, mas você
pode usar uma classe de caracter para unir ambos lettercases. Por Exemplo,
"[aA]" une letra minúscula ou maiúscula "a"
e "[a-zA-Z]" une qualquer letra em um caso ou outro. <br>
* O modelo ocorre em qualquer parte na existência do valor testado
( modelos do SQL unem unicamente os valores inteiro). <br>
* Para ancorar um modelo de modo que isto deve unir o começo ou
término da existência do valor testado, use "^"
no começo ou "$" no final do modelo. </p>
<p>Para trabalho de expressões regulares, as perguntas LIKE e REGEXP
podem ser usadas abaixo: <br>
Para encontrar nomes que começam com "b", para unir o
começo do nome use "^" e "[bB]" para unir letra
minúscula com outra maiúscula "b": </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";<br>
+--------+--------+---------+------+------------+------------+<br>
| name | owner | species | sex | birth |
death |<br>
+--------+--------+---------+------+------------+------------+<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
| Bowser | Diane | dog | m |
1989-08-31 | 1995-07-29 |<br>
+--------+--------+---------+------+------------+------------+</p>
<p>Para encontrar nomes finalizando com "fy" use e "$"
para unir no final do nome: </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name REGEXP "fy$";<br>
+--------+--------+---------+------+------------+-------+<br>
| name | owner | species | sex | birth |
death |<br>
+--------+--------+---------+------+------------+-------+<br>
| Fluffy | Harold | cat | f |
1993-02-04 | NULL |<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
+--------+--------+---------+------+------------+-------+</p>
<p>Para encontrar nomes contendo "w" use "[wW]" e para
unir letra minúscula com outra maiúscula "w":
</p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";<br>
+----------+-------+---------+------+------------+------------+<br>
| name | owner | species | sex | birth |
death |<br>
+----------+-------+---------+------+------------+------------+<br>
| Claws | Gwen | cat |
m | 1994-03-17 | NULL |<br>
| Bowser | Diane | dog | m |
1989-08-31 | 1995-07-29 |<br>
| Whistler | Gwen | bird | NULL | 1997-12-09 |
NULL |<br>
+----------+-------+---------+------+------------+------------+</p>
<p>Um modelo de expressão regular ocorre em qualquer parte do valor,
isto não é necessário uma pergunta prévia
para colocar um wildcard no lado um do outro para obter a união
do valor inteiro, poderia ser utilizado um modelo do SQL. <br>
Para encontrar nomes contendo exatamente cinco caracteres, use "^"
e "$" para unir o começo e término do nome, e
cinco expressões de ".": </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name REGEXP "^.....$";<br>
+-------+--------+---------+------+------------+-------+<br>
| name | owner | species | sex | birth |
death |<br>
+-------+--------+---------+------+------------+-------+<br>
| Claws | Gwen | cat | m |
1994-03-17 | NULL |<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
+-------+--------+---------+------+------------+-------+</p>
<p>Você também podia escrever a pergunta prévia usando
"{n}": </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}$";<br>
+-------+--------+---------+------+------------+-------+<br>
| name | owner | species | sex | birth |
death |<br>
+-------+--------+---------+------+------------+-------+<br>
| Claws | Gwen | cat | m |
1994-03-17 | NULL |<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
+-------+--------+---------+------+------------+-------+</p>
<font color=\"#003366\"><span class=\"negrito\">Trabalhando com valores NULOS</span></font></p>
<p>O valor NULL pode ser surpreendente até você se acostumar
a isto. Conceitualmente, valores NULL são valores desconhecidos
e isto é tratado diferentemente dos outros valores. Para testar
NULL, você não pode usar os operadores de comparação
de aritmética tal como =, < ou !=. Para demonstrar isto, tenta
a seguinte pergunta: </p>
<p class=\"mysql\">mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 >
NULL;<br>
+----------+-----------+----------+----------+<br>
| 1 = NULL | 1 != NULL | 1 < NULL | 1 > NULL |<br>
+----------+-----------+----------+----------+<br>
| NULL | NULL |
NULL | NULL |<br>
+----------+-----------+----------+----------+</p>
<p>Claramente você obtem nenhum resultado significativos destas comparações.
<br>
Use o operadores IS NULL e IS NOT NULL: </p>
<p class=\"mysql\">mysql> SELECT 1 IS NULL, 1 IS NOT NULL;<br>
+-----------+---------------+<br>
| 1 IS NULL | 1 IS NOT NULL |<br>
+-----------+---------------+<br>
| 0 | 1 |<br>
+-----------+---------------+</p>
<p>No MySQL, 0 são valores falsos e 1 são valores verdadeiros.
<br>
Este tratamento especial de NULL é por que isto foi necessário
para determinar se os animais não estão mortos, usando death
IS NOT NULL ao invés de death != NULL. </p>
<p></p>
<p></p>
<p class=\"negrito\"><font color=\"#003366\">Unindo Modelo</font></p>
<p>MySQL fornece um modelo do SQL padronizado unindo assim um formulário
de modelo baseado em expressões regulares parecidas com aquelas
utilizadas por utilitários de Unix tal como vi, grep e sed. <br>
Modelo do SQL permite você usar "_" para unir qualquer
caracter único, e "%" para unir um número arbitrário
de caracteres (incluindo zero caracteres). No MySQL, modelos do SQL são
caso insensível por default. Alguns exemplos são mostrados
baixo. Note que você não usa = ou != quando você usa
modelos do SQL; use o GOSTADO DE ou NÃO operadores de comparação
IGUAIS ao invés. </p>
<p>Para encontrar nomes começam com "b":</p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name LIKE "b%";<br>
+--------+--------+---------+------+------------+------------+<br>
| name | owner | species | sex | birth |
death |<br>
+--------+--------+---------+------+------------+------------+<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
| Bowser | Diane | dog | m |
1989-08-31 | 1995-07-29 |<br>
+--------+--------+---------+------+------------+------------+</p>
<p>Para encontrar nomes finalizando com "%fy": </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name LIKE "%fy";<br>
+--------+--------+---------+------+------------+-------+<br>
| name | owner | species | sex | birth |
death |<br>
+--------+--------+---------+------+------------+-------+<br>
| Fluffy | Harold | cat | f |
1993-02-04 | NULL |<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
+--------+--------+---------+------+------------+-------+</p>
<p>Para encontrar nomes contendo uns "w": </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name LIKE "%w%";<br>
+----------+-------+---------+------+------------+------------+<br>
| name | owner | species | sex | birth |
death |<br>
+----------+-------+---------+------+------------+------------+<br>
| Claws | Gwen | cat |
m | 1994-03-17 | NULL |<br>
| Bowser | Diane | dog | m |
1989-08-31 | 1995-07-29 |<br>
| Whistler | Gwen | bird | NULL | 1997-12-09 |
NULL |<br>
+----------+-------+---------+------+------------+------------+</p>
<p>Para encontrar nomes contendo extamente cinco caracteres, usam os caracteres
de modelo "_":</p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name LIKE "_____";<br>
+-------+--------+---------+------+------------+-------+<br>
| name | owner | species | sex | birth |
death |<br>
+-------+--------+---------+------+------------+-------+<br>
| Claws | Gwen | cat | m |
1994-03-17 | NULL |<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
+-------+--------+---------+------+------------+-------+</p>
<p>O outro tipo de modelo fornecido por MySQL usa expressões regulares.
Quando você testa este tipo de modelo, usa os operadores REGEXP
e NOT REGEXP (ou RLIKE e NOT RLIKE, que são sinônimos). <br>
Algumas características expressões regulares são:
<br>
* "." casa qualquer caracter único. <br>
* Uma classe de caracter "[...]" une qualquer caracter dentro
dos suportes. <br>
Por exemplo, "[abc]" une "a", "b" ou "c".
Para especificar uma série de caracteres, usam um traço.
"[a-z]" une qualquer letra minúscula, ao passo que "[0-9]"
une qualquer dígito. <br>
* "*" une zero ou mais solicitações. Por exemplo,
"x*" une qualquer número de "x" caracteres,
"[0-9]*" une qualquer número de dígitos, e ".*"
une qualquer número de algo. <br>
* Expressões Regulares são casos sensíveis, mas você
pode usar uma classe de caracter para unir ambos lettercases. Por Exemplo,
"[aA]" une letra minúscula ou maiúscula "a"
e "[a-zA-Z]" une qualquer letra em um caso ou outro. <br>
* O modelo ocorre em qualquer parte na existência do valor testado
( modelos do SQL unem unicamente os valores inteiro). <br>
* Para ancorar um modelo de modo que isto deve unir o começo ou
término da existência do valor testado, use "^"
no começo ou "$" no final do modelo. </p>
<p>Para trabalho de expressões regulares, as perguntas LIKE e REGEXP
podem ser usadas abaixo: <br>
Para encontrar nomes que começam com "b", para unir o
começo do nome use "^" e "[bB]" para unir letra
minúscula com outra maiúscula "b": </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";<br>
+--------+--------+---------+------+------------+------------+<br>
| name | owner | species | sex | birth |
death |<br>
+--------+--------+---------+------+------------+------------+<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
| Bowser | Diane | dog | m |
1989-08-31 | 1995-07-29 |<br>
+--------+--------+---------+------+------------+------------+</p>
<p>Para encontrar nomes finalizando com "fy" use e "$"
para unir no final do nome: </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name REGEXP "fy$";<br>
+--------+--------+---------+------+------------+-------+<br>
| name | owner | species | sex | birth |
death |<br>
+--------+--------+---------+------+------------+-------+<br>
| Fluffy | Harold | cat | f |
1993-02-04 | NULL |<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
+--------+--------+---------+------+------------+-------+</p>
<p>Para encontrar nomes contendo "w" use "[wW]" e para
unir letra minúscula com outra maiúscula "w":
</p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";<br>
+----------+-------+---------+------+------------+------------+<br>
| name | owner | species | sex | birth |
death |<br>
+----------+-------+---------+------+------------+------------+<br>
| Claws | Gwen | cat |
m | 1994-03-17 | NULL |<br>
| Bowser | Diane | dog | m |
1989-08-31 | 1995-07-29 |<br>
| Whistler | Gwen | bird | NULL | 1997-12-09 |
NULL |<br>
+----------+-------+---------+------+------------+------------+</p>
<p>Um modelo de expressão regular ocorre em qualquer parte do valor,
isto não é necessário uma pergunta prévia
para colocar um wildcard no lado um do outro para obter a união
do valor inteiro, poderia ser utilizado um modelo do SQL. <br>
Para encontrar nomes contendo exatamente cinco caracteres, use "^"
e "$" para unir o começo e término do nome, e
cinco expressões de ".": </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name REGEXP "^.....$";<br>
+-------+--------+---------+------+------------+-------+<br>
| name | owner | species | sex | birth |
death |<br>
+-------+--------+---------+------+------------+-------+<br>
| Claws | Gwen | cat | m |
1994-03-17 | NULL |<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
+-------+--------+---------+------+------------+-------+</p>
<p>Você também podia escrever a pergunta prévia usando
"{n}": </p>
<p class=\"mysql\">mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}$";<br>
+-------+--------+---------+------+------------+-------+<br>
| name | owner | species | sex | birth |
death |<br>
+-------+--------+---------+------+------------+-------+<br>
| Claws | Gwen | cat | m |
1994-03-17 | NULL |<br>
| Buffy | Harold | dog | f |
1989-05-13 | NULL |<br>
+-------+--------+---------+------+------------+-------+</p>
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)
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...
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)
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.
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
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
Um abraço, agradço a atenção
Kerensky
15/08/2004 8:31am
(~20 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
Estou com dificuldades...
poderia me ajudar...
Obrigado
15/09/2002 2:19pm
(~22 anos atrás)
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