Autor Tema: Guia basica de mysql.  (Leído 3601 veces)

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Guia basica de mysql.
« en: 25 de Marzo de 2008, 12:08:14 pm »
En esta quia aprenderás a interactuar con tu base de datos mysql.
Ten en cuenta que a los códgiso debes añadirle <? y ?>
Lo primero debes saber que la base de datos se divide en tablas, que a su vez estan divididas en filas con un nombre, y columnas, que dan valores.

Normalmente se utilizan los signos ` y '

Las acciones de la base de datos las almacenaremos en una variable $XXX.

Las consultas se ejecutan mediante mysql_query("XXX"), pero tambien existen otros como mysql_num_rows, que veremos más adelante.
Podemos poner el mysql_query con la consulta que vayamos a hacer ($X = mysql_query("BLABLA");) o almacenar la consulta en una variable y la query en otra ($consulta = "XXX"; y $consulta2 = mysql_query("$consulta");), nosotros usaremos una sola variable
Las consultas se pueden ejecutar mediante if o poner directamente, tras {, mysql_query("XXX");

Para obtener  una base de datos, podemos contratarla de un host o crearla mediante PHP

$crear 
mysql_query("CREATE DATABASE `nombre`");
if (
$crear) {
echo 
"Database creada con exito";
} else {
echo 
" Hubo un error";
}


Una vez creada la database, debemos conectarnos a ella.
Para conectarnos usaremos mysql_select_db y mysql_connect.
Podemos incluir el codigo en el archivo o hacer un include a un archivo aparte.
La estructura de la función es:

$datos 
mysql_connect(HOSTUSUARIOCONTRASEÑA) or die("No se ha podido conectar con el servidor MySQL. Inténtalo mas tarde.");
mysql_select_db(NOMBRE DE LA DB$datos);

Para mayor comodidad se almacena cada cosa en variables:

$host 
"HOST";  // Host
$user "USER";  // Usuario de la base de datos
$pass "PASS";  // Contraseña de la base de datos
$dbname "NOMBRE DE LA DB";  // Nombre de la base de datos
$conecta mysql_connect($host$user$pass) or die("No se ha podido conectar con el servidor MySQL. Inténtalo mas tarde.");
mysql_select_db($dbname$conecta);


Una vez conectados a la db, podemos empezar a interactuar con ella.
RECUERDA SIEMPRE INCLUIR EL ARCHIVO O  PONER EL CODIGO

OPERACIONES CON TABLAS
Lo primero para usar una db es crear tablas.
CREAR TABLAS

$crear 
"CREATE TABLE `nombre de tabla` (
  `nombre de fila` varchar(255) NOT NULL auto_increment,
  UNIQUE KEY `nombre de fila` (`nombre de fila`)
);"
;
if (
mysql_query($crear)) {
echo 
"Tabla creada"
}

Ahora describiremos cada parte:
CREATE TABLE `XXX` En lugar de XXX será el nombre de la tabla.
A partir de lo siguiente empezaremos a crear filas
`nombre de fila` sera el nombre de la fila
varchar(225) es el limite de carteres, puede ser varchar,  int...
NOT NULL o NULL: indica si el campo puede quedar vacío
auto_increment querra decir que será un número, que aumentara solo cada columna, tambien puede ser default 'LOQUESEA', esto indica que si no insertamos nada en ese lugar el valor será LOQUESEA.

MODIFICAR TABLAS
Si te equivocaste creando una tabla, puedes añadir una fila:

$cambiar 
"ALTER TABLE `NOMBRE` ADD `FILA` VARCHAR(255) NOT NULL ;";

ALTER TABLE `NOMBRE` el  nombre de la tabla que cambiaremos
ADD de aqui en adelante, sera la fila, exactamente igual que al crear tablas.

BORRAR TABLAS
Para borrar una tabla:

$borrar 
"DROP TABLE IF EXISTS nombre";

en lugar de nombre, pondremos el nombre de la tabla que borraremos.

OPERAR CON TABLAS
Para extraer y enviar datos a las tablas, tambien se usa mysql_query.

ENVIAR DATOS
Para crear una nueva columna con X datos:

$insertar 
"INSERT INTO `nombre` (XX, XX, XX) VALUES(&#39;XX&#39;,&#39;XX,&#39;XX&#39;)";

`nombre` el nombre de la tabla donde insertaremos los datos
lo que sigue a nombre, seran las filas que insertaremos, separadas por comas. Si no se inserta nada tomará el valor default o incrementará.
VALUES('XX','XX','XX') Lo que insertaremos en cada fila, en el orden que indicamos antes.

SOBREESCRIBIR DATOS
Para modificar una columna ya existente:

$modificar 
"UPDATE nombre SET fila = &#39;XX&#39; WHERE fila = &#39;XX&#39;";

UPDATE nombre , el nombre de la tabla.
SET fila = 'XX' fila equivale a la fila donde insertaremos los datos, en este caso XX
WHERE fila = 'XX' para saber que columna debe modificar, y respecto a que.
Para que comprendais mejor. Tenemos un sistema de usuarios.
El usuario benito quiere modificar su contraseña.
La tabla se compone de las filas usuario y contrasena.

$modificar 
"UPDATE usuarios SET contrasena = &#39;nuevacontraseña&#39; WHERE usuario = &#39;benito&#39;";

Los datos se insertarian mediante post y cookies o sessions, pero eso es aparte.

SELECCIONAR DATOS
Para seleccionar datos de una tabla:

$seleccionar 
"SELECT `loquesea` FROM `tabla` WHERE fila = &#39;loquesea&#39;";

SELECT `loquesea` será la fila que seleccionaremos.
Para seleccionar todas las filas en vez de `loquesea` pondremos un asterisco (*)
FROM `tabla` desde la tabla que sea
WHERE fila = 'loquesea' sabiendo que la fila es XXX
Usaremos de nuevo el ejemplo de benito y su contraseña. Esta vez queremos saber su contraseña asi que:

$seleccionar 
"SELECT `contrasena` FROM `usuarios` WHERE usuario = &#39;benito&#39;";


Tambien podemos añadirle un orden y un limite.

Para indicar un orden

$seleccionar 
"SELECT `loquesea` FROM `tabla` WHERE fila = &#39;loquesea&#39; ORDER BY `fila` DESC";
Esto significa que se ordenará por la fila "fila"
DESC indica que se ordenara descendentotambien puede ser ASC (ascendente)

Para indicar un limite
[php]
$seleccionar "SELECT `loquesea` FROM `tabla` WHERE fila = &#39;loquesea&#39; LIMIT X";
LIMIT X X seria el número de datos que puede extrar como limite.
Tambien se puede usar LIMIT X,XX que significa que extraerá desde la fila X hasta la XX

BORRAR DATOS

[php]
$borrar "DELETE FROM `tabla` WHERE fila = &#39;XX&#39;";

FROM `tabla` la tabla
WHERE fila = 'XX' como en lo demas, sabiendo que fila es = a XX

$borrar 
"DELETE FROM `usuarios` WHERE usuario = &#39;benito&#39;";


OTRAS OPERACIONES
Ademas existen otras operaciones tales como:

mysql_num_rows
Con misql_num_rows contaremos cuantas respuestas nos envia la db:

$query 
mysql_query("SELECT `usuario` FROM `usuarios`");
$rows mysql_num_rows($query);

Simplemente seleccionamos lo que queramos desde un SELECT y lo contamos.

mysql_fetch_array
Con esta función podremos mostrar los datos que nos devuelve una query:
Hacemos el select con * o filas separadas por comas (fila, fila), y mostramos los datos desde $variabledelarray['nombredefila']

$query 
mysql_query("SELECT * FROM `usuarios` WHERE `usuario` = &#39;benito&#39;");
$array mysql_fetch_array($query);

if (
funcion) {
echo 
"Tu nombre es $array[&#39;usuario&#39;] y tu contraseña es $array[&#39;contrasena&#39;]";
}


mysql_fetch_row (por tope)
Siendo la tabla:
usuarios
   id  -> 0
   usuario -> 1
   contrasena -> 2
   email -> 3
   fecha_registro -> 4

$query 
mysql_query("SELECT * FROM `usuarios` WHERE `usuario` = &#39;benito&#39;");
$array mysql_fetch_array($query);
if (
funcion) {
echo 
"Tu nombre es $array[1], tu contraseña es $array[2] y tu email es $array[3]";
}

¿Porque no pongo en nombre un "0"? porque sacariamos el id, ya que el primer valor de la tabla es id
Otro ejemplo:
ESTRUCTURA EJEMPLO DE ESTA TABLA:
usuarios
 ¿ id  -> 0 ?  || ESTO NO EXISTE PUESTO QUE NO LO HEMOS SELECCIONADO
   usuario -> 1 || esto es ahora 0
   contrasena -> 2 || esto es ahora 1
 ¿ email -> 3 ?  || ESTO NO EXISTE PUESTO QUE NO LO HEMOS SELECCIONADO
 ¿ fecha_registro -> 4 ?  || ESTO NO EXISTE PUESTO QUE NO LO HEMOS SELECCIONADO

$query 
mysql_query("SELECT usuario, contrasena FROM `usuarios` WHERE `usuario` = &#39;benito&#39;");
$array mysql_fetch_row($query);  // array[0] = usuario - array[1] = contrasena
echo "Tu nombre es $array[0] y tu contraseña es $array[1]";




Este tutorial es basico, lo he creado segun lo que me se, si algo está mal o falta decidmelo ;)

Lo he creado sobre la marcha, no me vengais diciendo que lo copie de otro sitio, tal vez alla similitudes por que al fin y al cabo, se dice lo mismo...

Salu2.
« Última modificación: 05 de Junio de 2010, 20:00:53 pm por westwest »

Comunidad PHPeros

Guia basica de mysql.
« en: 25 de Marzo de 2008, 12:08:14 pm »

Desconectado Tope

  • PHPero Experto
  • *****
  • Mensajes: 540
  • Karma: 23
  • Sexo: Masculino
  • Programador PHP
    • Ver Perfil
    • www.Info-Keko.Es
Re: Guia basica de mysql.
« Respuesta #1 en: 25 de Marzo de 2008, 12:26:34 pm »
No quiero ser quisquilloso pero...
Citar
$query mysql_query("SELECT * FROM `usuarios` WHERE `usuario` = &#39;benito&#39;");
$array mysql_fetch_array($query);

if (
funcion) {
echo 
"Tu nombre es $array[&#39;usuario&#39;] y tu contraseña es $array[&#39;contrasena&#39;]";
}

Si es para obtener pocos datos (1, 2 o 3) de una tabla con muchas filas (p. ej: usuarios -> id, nick, pass, email, fecha, ip, ultima conexion, online, nombre, ciudad) es decir si solo queremos saber el usuario y la contraseña se puede hacer asi (hay varias maneras)

$query 
mysql_query("SELECT usuario, contrasena FROM `usuarios` WHERE `usuario` = &#39;benito&#39;");
$array mysql_fetch_array($query);
echo 
"Tu nombre es $array[&#39;usuario&#39;] y tu contraseña es $array[&#39;contrasena&#39;]";
// y tambien si queremos sacar mas datos podemos hacer ya el select con * y mysql_fetch_row
/* ESTRUCTURA EJEMPLO DE ESTA TABLA: 
usuarios
   id  -> 0
   usuario -> 1
   contrasena -> 2
   email -> 3
   fecha_registro -> 4
*/
$query mysql_query("SELECT * FROM `usuarios` WHERE `usuario` = &#39;benito&#39;");
$array mysql_fetch_row($query); 
echo 
"Tu nombre es $array[1], tu contraseña es $array[2] y tu email es $array[3]";
// ¿Porque no pongo en nombre un "0"? porque sacariamos el id, ya que el primer valor de la tabla es id
/* ESTRUCTURA EJEMPLO DE ESTA TABLA: 
usuarios
 ¿ id  -> 0 ?  || ESTO NO EXISTE PUESTO QUE NO LO HEMOS SELECCIONADO
   usuario -> 1 || esto es ahora 0
   contrasena -> 2 || esto es ahora 1
 ¿ email -> 3 ?  || ESTO NO EXISTE PUESTO QUE NO LO HEMOS SELECCIONADO
 ¿ fecha_registro -> 4 ?  || ESTO NO EXISTE PUESTO QUE NO LO HEMOS SELECCIONADO
*/
$query mysql_query("SELECT usuario, contrasena FROM `usuarios` WHERE `usuario` = &#39;benito&#39;");
$array mysql_fetch_row($query);  // array[0] = usuario - array[1] = contrasena
echo "Tu nombre es $array[0] y tu contraseña es $array[1]";

Espero haberme explicado bien ;)
Un Saludo, Tope >> Programador FIJO en PHPeros

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #2 en: 25 de Marzo de 2008, 12:31:45 pm »
para principiantes, lo basico son esas funciones que ya permiten manejar la base de datos...

Desconectado Tope

  • PHPero Experto
  • *****
  • Mensajes: 540
  • Karma: 23
  • Sexo: Masculino
  • Programador PHP
    • Ver Perfil
    • www.Info-Keko.Es
Re: Guia basica de mysql.
« Respuesta #3 en: 25 de Marzo de 2008, 12:34:05 pm »
Yaya ya! si esta fenomenal el manual pero por si la gente le interesa aunque luego no se lo aprenda jaja
Un Saludo, Tope >> Programador FIJO en PHPeros

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #4 en: 25 de Marzo de 2008, 12:36:01 pm »
weno, de todas formas ahora edito y lo pongo...

PD: Acepto karmas! xD

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #5 en: 25 de Marzo de 2008, 15:40:50 pm »
Esta muy bien, aunque siendo sincero no lo he leido entero =)
Te doy un karma y voy a leermelo.

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #6 en: 25 de Marzo de 2008, 16:02:01 pm »
gracias x el karma TLX, si hay algo k añadir o k este mal dilo!

Desconectado mikecanizal

  • PHPerit@
  • *
  • Mensajes: 1
  • Karma: 1
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #7 en: 29 de Marzo de 2008, 22:44:06 pm »
Esta muy bueno, espero ahora si con eso aprender un poco ya que no se NADA, muchas gracias en este momento empezaré a experimentar.

Desconectado Zergio!

  • PHPer@
  • **
  • Mensajes: 74
  • Karma: 0
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #8 en: 30 de Marzo de 2008, 16:59:23 pm »
Excelente manual west, bro me encantó aprendí más hoy ;)

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #9 en: 31 de Marzo de 2008, 16:18:33 pm »
gracias :) xD el caso es ayudar a la gente a aprender, una vez k lo lees 1 vez, ya se te keda en la cabeza xD

Desconectado MeTaLKaT

  • PHPerit@
  • *
  • Mensajes: 15
  • Karma: 2
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #10 en: 10 de Abril de 2008, 07:33:34 am »
que diferencia hay entre NOT NULL y NULL ( si es ke existe null xD ya ke no lo se xD )

PD: muy bueno todo lo que tenga que ver con esta web... espero estar pronto entre los que aportan en vez de los ke leen xD

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #11 en: 10 de Abril de 2008, 12:03:45 pm »
NOT NULL Indica si no me equivoco que ese campo no puede estar nunca vacío.
NULL creo que no existe, pero en el caso de existir, sera exactamente lo contrario, es decir, que si puede estar vacío.

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Ishamato

  • PHPero Avanzado
  • ****
  • Mensajes: 346
  • Karma: 3
  • Sexo: Masculino
  • PHPero adicto
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #12 en: 23 de Julio de 2008, 10:01:16 am »
Muy bueno ^^

<? echo "Aprendiendo y descubriendo poco a poco"; ?>

Desconectado Synth

  • PHPerit@
  • *
  • Mensajes: 1
  • Karma: 0
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #13 en: 10 de Octubre de 2008, 16:01:51 pm »
El null se puede usar por ejemplo para formularios donde algunos campos no son necesarios.
Creo que deberías editar el tutorial y poner el significado de NOT NULL y NULL.
Saludos.

Desconectado ADMTeam

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
    • Ver Perfil
Re: Guia basica de mysql.
« Respuesta #14 en: 27 de Octubre de 2008, 06:34:59 am »
una duda
que iria en host?