MySQL / Linux / Windows / Base de Datos / SQL / Open Source
Nombre.:
MySQL
Imagenes.:
URL.:
MySQL.com
Descripción.: MySQL es el SQL más popular en la plataforma UNIX. Es rápido y eficiente, aunque no es tan fácil de usar como otros productos similares. Pero en nuestra experiencia, eso es solo al principio. Después de un tiempo, usted se acostumbrará y no volverá a nada de menor eficiencia. :)
Ambos Perl y PHP se conectan a MySQL. Es mucho mejor manejar datos con estos lenguajes al usar MySQL que escribir y leer datos para/desde archivos de texto.MySQL es muy extenso, pero hay muchos tutorials sobre él en el Internet. Hay una lista de ellos al final de este documento.
Insertando datos a una
DB:
Para ingresar Datos a una base de datos
desde un form solo tendremos que hacer esto
$dbh =
mysql_connect("localhost", "userdb", "pass");
mysql_select_db ("tu_db",
$dbh);
$sql = "INSERT INTO registros (nombre, apellidos, user, pass,
direccion, c_postal, provincia, pais, email, telefono, c_conocido,
comentarios)";
$sql .= "VALUES ('$nombre', '$apellidos', '$user', '$pass',
'$direccion', '$c_postal', '$provincia', '$pais', '$email', '$telefono',
'$c_conocido', '$comentarios')";
$result = mysql_query($sql);
echo
"¡Gracias! Hemos recibido sus datos.\n";
}
Eso lo pones en un
archivo php con un nombre por ejemplo entradatos.php
entonces en el form en
action pones entradatos.php
Búsquedas con Full-text y
MySQL:
Una (casi) desconocida de las
funcionalidades de MySQL, a partir de su versión 3.23.23 es \"Full-text\" , que
permite realizar búsquedas dentro de un campo a partir de una cadena de
caracteres.
Habitualmente, un método de búsqueda sencillo dentro de una
tabla pasaba por utilizar LIKE:
SELECT texto FROM articulos WHERE texto
LIKE \'%$palabra%\'
El problema aparecÍa cuando en vez de una sola
palabra eran varias las que habÍa que buscar: Si \"$palabra\" equivalÍa, por
ejemplo, a \"dreamweaver ultradev\", una frase dentro de los textos almacenados
que fuera \"dreamweaver y ultradev\" no devolverÍa resultados (por culpa de la
\"y\").
Para esto sirve Full-text: MySQL se encargará de comparar la
cadena que le pasemos con los contenidos de la BD y devolver resultados
aproximados. Suena bonito, pero tiene algunas limitaciones
(justificadas):
No devolverá resultados si la palabra aparece demasiadas
veces en los registros: si todos nuestros registros (o más del 50%, para ser más
exactos) tienen la palabra \"dreamweaver\", no devolverá resultados.¿Por qué?.
esta función está pensada para tablas con muchos registros y no tendrÍa sentido
devolverlos todos: ¿es interesante devolver 5.000 resultados a una búsqueda?.
Por la razón anterior, la consulta omitirá palabras demasiado comunes, como
preposiciones y artÍculos (de, con, a, el)...
¿Qué necesitamos para utilizar
Full-text?
Lo primero, que MySQL sea de una versión superior a la
3.23.23.
Que el campo de la tabla en que vamos a buscar sea del tipo TEXT
Con estos 2 requisitos, lo primero que necesitaremos será indicarle a MySQL
que queremos modificar el campo para que acepte esta función. En nuestro ejemplo
vamos a utilizar una sencilla tabla, llamada \"artÍculos\", que tiene estos
campos.
id_articulo
titulo
texto
Podemos utilizar cualquiera
de los IDE\'s disponibles para MySQL (MySQLFront ó PHPMyAdmin son válidos), para
pasarle a la BD esta sentencia SQL:
ALTER TABLE articulos ADD
FULLTEXT(texto);
Si lo hemos realizado correctamente, MySQL nos
devolverá el OK.
Con la tabla preparada, llega la hora de aprender cómo
se pasan las consultas, ya que no basta con SELECT: deberemos utilizar además
MATCH(campo) AGAINST(cadena). En nuestro ejemplo:
SELECT titulo,texto
FROM articulos WHERE MATCH(texto) AGAINST (\'$palabras\')
Traducido:
seleccionar los campos \"titulo\" y \"texto\" de \"artÍculos\", filtrando donde
haya coincidencias en el campo \"texto\" para la variable
\"$palabras\".
¿No parece difÍcil, no?, pues aún hay más: MySQL nos puede
devolver un número que indica el valor de coincidencia en cada registro (llamado
habitualmente \"SCORE\" en muchos sitios). No es un valor en porcentaje, y puede
variar desde casi 0 (cero) hasta más de 4 según los cálculos realizados por
MySQL). Es útil para ordenar los resultados por orden de coincidencia.
Utilizarlo es un poco más complicado, pero no mucho: sólo tendremos que utilizar
2 veces MATCH... AGAINST. La consulta serÍa:
SELECT titulo,texto,
MATCH(texto) AGAINST(\'$palabras\') AS coincidencia
FROM articulos
WHERE
MATCH(texto) AGAINST (\'$palabras\')
ORDER BY coincidencia DESC
Sacado de: elnuker.net
Ultimos Topics del Foro
|
[Estoy Buscando...]
|
peticiones de programas
por carjigo
|
Noviembre 17, 2008, 12:12:05
|
|
[Bienvenidos Usuarios Nuevos]
|
Hello. And Bye.
por Gnobxstiks
|
Noviembre 14, 2008, 12:43:02
|
|
[Hack Novatos ]
|
un programa para bombardear una cuanta de hotmail
por jhoxua
|
Noviembre 12, 2008, 09:09:42
|
|
[Virus]
|
Virus que no me deja navegar
por Th3 Gh0st
|
Noviembre 12, 2008, 07:43:15
|
|
[Seguridad y Redes]
|
saber la ip
por Th3 Gh0st
|
Noviembre 11, 2008, 03:00:06
|
|
[Seguridad y Redes]
|
Phishing y Pharming . Una maldicion hecha realidad.
por Th3 Gh0st
|
Noviembre 11, 2008, 02:40:05
|
|
[Pedidos De Musica]
|
Nesesito!!
por K.A.R.L.O.Z.
|
Noviembre 07, 2008, 06:49:03
|
|
[PreHack]
|
smartfilter
por fatalerror.exe
|
Octubre 28, 2008, 04:08:40
|