You are on page 1of 41

CREAR BASES

DE DATOS SQL
Crear una base de datos

Para crear una nueva base de datos, una
vez conectado con MySQL escribiremos
el siguiente cdigo MySQL:
$sql="create database `nombreBase`";

El nombre de la base de datos se escribe
entre los signos ` ` .

Despus de escribir la lnea con el
lenguaje MySQL, debemos mandar la
instruccin

mediante la funcin mysql_query();.
<?php
$db=mysql_connect("localhost","root","");
$sql="create database `miagenda`";
mysql_query($sql,$db);
mysql_close($db);
?>

Insertar nuevas tablas

Creado la base de datos.
Insertar las tablas que la forman.
Para ello, como siempre conectamos a MySQL y
tal como vimos en el apartado anterior,
conectamos con la base de datos:
$db=mysql_connect("localhost","root","");
mysql_select_db("miagenda",$db);
Pondremos despus el cdigo para crear la tabla:
$sql = "create table `agenda` (`IDagenda` int(6)
not null auto_increment primary key) type =
MyISAM;";

Hemos creado aqu una tabla llamada
"agenda" con un nico campo llamado
"IDagenda". Vamos a explicar el cdigo:

CREAR TABLAS
create table `agenda` : Para crear un
elemento escribimos primero la
palabra create, despus indicamos el
tipo de elemento que deseamos crear,
en este caso table y por ltimo entre
`comillas` se escribe el nombre del
elemento, en este caso de la tabla.
Observa que en realidad no son comillas,
sino el acento grave, tal como hicimos
para insertar la base de datos.
CREAR CAMPOS EN LAS
TABLAS
(`IDagenda` : Dentro del parntesis
escribiremos los datos de los campos que
formarn la tabla. En primer lugar, y entre
acentos, escribimos el nombre del primer
campo.
int(6) : Escribimos despus el tipo de campo
tal como vimos en el tema anterior al crearlos
con phpMyAdmin (int=num entero, float=num
decimal, varchar=alfanumrico, text=texto
largo, etc), y seguido, entre parntesis la
longitud mxima de ese campo.


not null auto_increment primary key) : A
continuacin ponemos el resto de
propiedades del campo, es decir en este
caso not null indica que el campo no puede
ser nulo. auto_increment indica que es un
campo de auto incremento. y primary
key indica que eel campo ser la clave
primaria. si quisieramos incluir ms campos los
pondramos a continuacin,separado por
una coma, y siguiendo los mismos pasos.
Como no vamos a incluir ms, cerramos el
parntesis.

type = MyISAM; : esta instruccin
debemos ponerla siempre al final, para
indicar cmo debe manejar los datos
MySQL. en realidad podemos poner
tambin engine = MyISAM;.

El cdigo MySQL es indiferente escribirlo en
maysculas o minsculas, por tanto podemos
poner tanto create table como CREATE
TABLE; sin embargo los nombres de los
elementos creados, (tablas y campos).
S distinguen entre maysculas y minsculas,
por lo que si un campo lo creamos con su
nombre en mayscula, cuando vayamos a
buscarlo o leer sus datos, deberemos
escribirlo de la misma manera.

Igualmente la palabraMyISAM debemos
escribirla tal como est aqu, ya que se
refiere a un tipo de cdigo
Por ltimo, como es habitual, mandamos
el cdigo, y cerrarmos la conexin:
mysql_query($sql,$db);
mysql_close($db);

Incluir ms campos

Incluiremos ahora el resto de los campos en la tabla creada
anteriormente, para ello utilizamos el cdigo siguiente:
$sql="alter table `nombre_tabla` add `nuevo_campo`
propiedades, add `nuevo_campo` propiedades";
Despus de escribir alter table, en `nombre_tabla`escribiremos el
nombre de la tabla. Para insertar nuevos campos escribimos la
instruccin add, seguida del nombre del campo (`nuevo_campo`)
y a continuacin las propiedades del campo (varchar(50) not null
default''). Para insertar otro campo, lo separaremos del anterior
mediante una coma, y empezaremos otra vez por la
instruccin add.
Seguimos ahora con el ejemplo anterior, en el cual incluimos en la
tabla nuevos campos. El cdigo ser el siguiente:

Incluir ms campos


<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("miagenda",$con);
$sql = "alter table `agenda`
add `nombre` varchar(50) not null default '',
add `telefono` int(9) not null default '000000000',
add `email` varchar(100) not null default '---@---',
add `descripcion` text(2000) not null ";
mysql_query($sql,$con);
mysql_close($con);
?>



Incluir ms campos

Incluiremos ahora el resto de los campos
en la tabla creada anteriormente, para
ello utilizamos el cdigo siguiente:
$sql="alter table `nombre_tabla` add
`nuevo_campo` propiedades, add
`nuevo_campo` propiedades";
Despus de escribir alter table,
en `nombre_tabla`escribiremos el nombre
de la tabla.
Para insertar nuevos campos
escribimos
la instruccin add, seguida del nombre
del campo (`nuevo_campo`) y
a continuacin las propiedades del
campo (varchar(50) not null default'').
Para insertar otro campo, lo separaremos
del anterior mediante una coma, y
empezaremos otra vez por la
instruccin add.

Insertar registros
$sql = "insert into `agenda`
(`nombre`, `telefono`, `email`,
`descripcion`)
value ('Juan Palomero', '647251359',
'juanpalomero@yahoo.es', 'Compaero
de trabajo' );";
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("miagenda",$con);

$sql1 = "insert into `agenda`
(`nombre`, `telefono`, `email`, `descripcion`)
value ('Vicente Gracia','685138554','vicentegracia@msn.com','amigo');";
$sql2 = "insert into `agenda`
(`nombre`, `telefono`, `email`, `descripcion`)
value ('Federico Camuas','657218935','fedcamun@gmail.com',
'Compaero de facultad');";
$sql3 = "insert into `agenda`
(`nombre`, `telefono`, `email`, `descripcion`)
value ('Silvia Miranda','628554799','silmir10@gmail.com',
'familiar: cuada');";
$sql4 = "insert into `agenda`
(`nombre`, `telefono`, `email`, `descripcion`)
value ('Agueda Ruiperez','617255493','agarupez10@ymail.com',
'vecina de escalera');";

mysql_query($sql1,$con);
mysql_query($sql2,$con);
mysql_query($sql3,$con);
mysql_query($sql4,$con);
mysql_close($con);
?>


Variar los datos
Imagina que en alguno de los registros han
cambiado algunos datos, pongamos, por
ejemplo que en nuestra agenda, Vicente
Gracia ha cambiado de telfono y de email.
Podramos hacer un nuevo registro y borrar el
anterior, sin embargo resulta ms sencillo
variar simplemente los datos en el registro
que ya tenemos.
El cdigo MySQL ser el siguiente:
$sql = "update agenda set telefono =
'678433100', email='vincengra@ymail.com'
where nombre = 'Vicente Gracia'";
Explicamos el cdigo a
continuacin

update tabla set : Escribimos la
palabra update seguido del nombre de la
tabla y despus la palabraset.
nombre_campo = 'valor' escribimos despus
el nombre del campo donde va ha
efectuarse el cambio, y el nuevo valor. Si hay
ms de un campo que vara escrribiremos los
dems separados por comas.
where : Expresa una condicin, que debe
cumplirse para que los cambios anteriores
tengan efecto. Escribimos la
palabra where y a continuacin la
condicin, que en este caso es que el
campo "nombre" tenga el valor de
'Vicente Gracia'."
Si lo que insertamos en el valor es una
variable, tambin debemos ponerla entre
comillas.


<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("miagenda",$con);
$sql = "update agenda set telefono = '678433100',
email= 'vincengra@ymail.com'
where nombre = 'Vicente Gracia'";
mysql_query($sql,$con);
mysql_close($con)
?>


Borrar registros

Imagina que queremos borrar de nuestra
base de datos, "miagenda" algunos
registros, usaremos en un cdigo MySQL
como el siguiente:
DELETE FROM tabla WHERE condicin
Por ejemplo, si queremos borrar de la
agenda a Federico Camuas, el cdigo
ser el siguiente:

BORRAR REGISTROS
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("miagenda",$con);
$sql = "delete from agenda where
nombre = 'Federico Camuas'";
mysql_query($sql,$con);
mysql_close($con)
?>

BORRAR TABLAS Y BASES DE
DATOS

Podemos tambin borrar una tabla entera o
una base de datos entera.
Debemos tener cuidado porque el borrar una
tabla o una base conlleva borrar todos los
datos que hay en ella, sin que podamos
recuperarlos.
El cdigo MySQL para borrar una tabla es :
$sql = "drop table `nombre_tabla`";


Por supuesto debemos haber abierto la
conexion y seleccionado la base de
datos antes.
Borrar una base de datos se hace de
forma parecida, en este caso una vez
abierta la conexin, no seleccionamos
ninguna base sino que escribimos el
cdigo MySQL de la siguiente forma:
$sql = "drop database `nombre_base`";

Mostrar datos
Recoger los datos de una
tabla

Para el ejemplo que aqu mostramos
elegimos la base "miagenda", que hemos
creado en pginas anteriores.
En primer lugar conectamos con MySQL y
seleccionamos la base de datos:
$con=mysql_connect($servidor,$usuario,$con
trasea);
mysql_select_db("miagenda",$con);
Despus escribimos la sentencia $sql, con el
cdigo para seleccionar la tabla:

$sql="select * from agenda";
Para seleccionar una tabla escribimos select *
from seguido del nombre de la tabla. el asterisco (*) es un
comodin que nos permite seleccionar toda la tabla.
Escribimos despues la funcin mysql_query(), pero esta vez
guardamos el resultado de la funcin en una variable.
$datos=mysql_query($sql,$con);
Hemos guardado los datos devueltos por MySQL
correspondientes a la tabla, pero estos datos no los
podemos leer tal como estn ya que si intentamos leerlos
mediante la instruccin echo nos dar un resultado
parecido a lo siguiente:
Resource id #10

Mostrar los nombres de los
campos

Para poder ver los datos necesitamos otra
funcin: mysql_fetch_array(). Le pasaremos
un nico argumento que ser el resultado
obtenido, es decir la variable $datos. La
funcin devuleve un array a la vez indexado
y asociativo, en el que estar contenido el
primer registro de la tabla.
Sin embargo la funcin posee un puntero
interno que una vez mostrado el primer
registro de la tabla, pasa al siguiente, por lo
que si repetimos otra vez la funcin, se
mostrar el segundo.
Lo de a la vez indexado y asociativo
quiere decir que cada elemento se
mostrar dos veces, una como array
indexado, con su nmero correlativo
como clave, y otra como array
asociativo, en el que la clave es el
nombre del campo.
Por lo tanto, el siguiente cdigo mostrar
el nombre de los campos que tiene la
tabla. Al mismo tiempo guarda

<?php
$campos=array();$con=mysql_connect("local
host","root","");
mysql_select_db("miagenda",$con);$sql="sele
ct * from genda";
$datos=mysql_query($sql,$con);$row=mysql_f
etch_array($datos);foreach ($row as
$clave=>$valor) { if (is_string($clave)) {
echo "$clave, ";
array_push($campos,$clave); }
}mysql_close($con);?>

FUNCION STRING
funcin is_string() seleccionamos las claves
del array que son elementos con texto, es
decir, las que contienen los nombres de los
campos. Al mismo tiempo hemos guardado
los nombres de los campos en un array
(funcion array_push()) para poder utilizarlos
luego para hacer una tabla.
El resultado del cdigo anterior nos dar en
pantalla lo siguiente:
IDagenda, nombre, telefono, email,
descripcion,

Mostrar los datos de los
registros

funcin $row=mysql_fetch_array($datos);
nos muestra los datos de un nico
registro, y mueve despus el puntero
interno al siguiente registro; por lo que si
queremos ver los datos de todos los
registros deberemos repetirla tantas
veces como registros tengamos. Para ello
utilizaremos el bucle while de la siguiente
manera:

<?php
$con=mysql_connect("localhost","root","");
//conexion
MySQlmysql_select_db("miagenda",$con);
//Seleccionar base datos$sql=" select * from
agenda"; //cdigo
MySQL$datos=mysql_query($sql,$con);
//enviar cdigo MySQLwhile
($row=mysql_fetch_array($datos)) { //Bucle
para ver todos los registros
$nombre=$row['nombre']; //datos del campo
nombre $telefono=$row['telefono'];
//datos del campo telfono
$email=$row['email']; //datos del campo
email echo "$nombre, $telefono, $email.
<br/>"; //visualizar datos
}mysql_close($con);//cerrar conexion?>
Ordenar datos

Si se nos muestran muchos datos tenemos la posibilidad de que nos salgan ya
ordenados, la nica variacin es aadir al cdigo MySQL la sentencia order
by nombre_campo, por ejemplo:
$sql="select * from agenda order by nombre"
Esto ordenar los registros de la agenda alfabticamente de forma
ascendente, segn el campo "nombre" (desde la A a la Z).
Si el campo indicado como criterio de ordenacin es numrico, los registros
se ordenarn de menor a mayor.
Los podemos ordenar tambin de forma descendente (de la Z a la A), si
aadimos despues la palabra desc
$sql="select * from agenda order by nombre desc"
Los datos de la tabla agenda, se vern el el siguiente orden tras indicarle una
ordenacin ascendente.
Agueda Ruiperez, 617255493, agarupez10@ymail.com.
Federico Camuas, 657218935, fedcamun@gmail.com.
Juan Palomero, 647251359, juanpalomero@yahoo.es.
Silvia Miranda, 628554799, silmir10@gmail.com.
Vicente Gracia, 685138554, vicentegracia@msn.com.


Busqueda exacta

Le llamamos as a la bsqueda en la que
hay que escribir el dato que conocemos
(el nombre en este ejemplo) de forma
completa. la sentencia where se usa de
la misma manera que vimos para
modificar datos. es decir indicamos el
nombre del campo, y lo igualamos al
valor que debe tener. Es aqu donde
establecemos el criterio de bsqueda,

para ello seleccionamos toda la tabla, y
aplicamos luego la sentencia where,
para buscar el registro que coincida con
la condicin que indiquemos.
$sql="select * from agenda where
nombre='Vicente Gracia'"

El resto de cdigo php es el mismo que
hemos usado para mostrar la tabla
completa. As el siguiente cdigo nos
mostrar adems del nombre indicado,
el telfono y el email:

$con=mysql_connect("localhost","root","");mys
ql_select_db("miagenda",$con); $sql="select *
from agenda where nombre='Vicente
Gracia'";
$datos=mysql_query($sql,$con);while
($row=mysql_fetch_array($datos)) {
$nombre=$row['nombre'];
$telefono=$row['telefono'];
$email=$row['email']; echo "$nombre,
$telefono, $email. <br/>";
}mysql_close($con);?>

You might also like