Crear Bases de Datos SQL

Preview:

Citation preview

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 código MySQL:

$sql="create database `nombreBase`";

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

Después de escribir la línea con el lenguaje MySQL, debemos mandar la instrucción

mediante la función 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 después el código 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 código:

CREAR TABLAS create table `agenda` : Para crear un

elemento escribimos primero la palabra create, después 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 paréntesis

escribiremos los datos de los campos que formarán la tabla. En primer lugar, y entre acentos, escribimos el nombre del primer campo.

int(6) : Escribimos después el tipo de campo tal como vimos en el tema anterior al crearlos con phpMyAdmin (int=num entero, float=num decimal, varchar=alfanumérico, text=texto largo, etc), y seguido, entre paréntesis la longitud máxima de ese campo.

not null auto_increment primary key) : A continuación 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 más campos los pondríamos a continuación,separado por una coma, y siguiendo los mismos pasos. Como no vamos a incluir más, cerramos el paréntesis.

type = MyISAM; : esta instrucción debemos ponerla siempre al final, para indicar cómo debe manejar los datos MySQL. en realidad podemos poner también engine = MyISAM;.

El código MySQL es indiferente escribirlo en mayúsculas o minúsculas, por tanto podemos poner tanto create table como CREATE TABLE; sin embargo los nombres de los elementos creados, (tablas y campos).

Sí distinguen entre mayúsculas y minúsculas, por lo que si un campo lo creamos con su nombre en mayúscula, 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 código

Por último, como es habitual, mandamos el código, y cerrarmos la conexión:

mysql_query($sql,$db);mysql_close($db);

Incluir más campos

Incluiremos ahora el resto de los campos en la tabla creada anteriormente, para ello utilizamos el código siguiente:

$sql="alter table `nombre_tabla` add `nuevo_campo` propiedades, add `nuevo_campo` propiedades";

Después de escribir alter table, en `nombre_tabla`escribiremos el nombre de la tabla. Para insertar nuevos campos escribimos la instrucción add, seguida del nombre del campo (`nuevo_campo`) y a continuación 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 instrucción add.

Seguimos ahora con el ejemplo anterior, en el cual incluimos en la tabla nuevos campos. El código será el siguiente:

Incluir más 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 más campos

Incluiremos ahora el resto de los campos en la tabla creada anteriormente, para ello utilizamos el código siguiente:

$sql="alter table `nombre_tabla` add `nuevo_campo` propiedades, add `nuevo_campo` propiedades";

Después de escribir alter table, en `nombre_tabla`escribiremos el nombre de la tabla.

Para insertar nuevos campos escribimos la instrucción add, seguida del nombre

del campo (`nuevo_campo`) y a continuación 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 instrucción add.

Insertar registros $sql = "insert into `agenda`

(`nombre`, `telefono`, `email`, `descripcion`)value ('Juan Palomero', '647251359', 'juanpalomero@yahoo.es', 'Compañero 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 Camuñas','657218935','fedcamun@gmail.com', 'Compañero de facultad');"; $sql3 = "insert into `agenda` (`nombre`, `telefono`, `email`, `descripcion`) value ('Silvia Miranda','628554799','silmir10@gmail.com', 'familiar: cuñada');"; $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 teléfono y de email. Podríamos hacer un nuevo registro y borrar el anterior, sin embargo resulta más sencillo variar simplemente los datos en el registro que ya tenemos.

El código MySQL será el siguiente: $sql = "update agenda set telefono =

'678433100', email='vincengra@ymail.com' where nombre = 'Vicente Gracia'";

Explicamos el código a continuación

update tabla set : Escribimos la palabra update seguido del nombre de la tabla y después la palabraset.

nombre_campo = 'valor' escribimos después el nombre del campo donde va ha efectuarse el cambio, y el nuevo valor. Si hay más de un campo que varía escrribiremos los demás separados por comas.

where : Expresa una condición, que debe cumplirse para que los cambios anteriores tengan efecto. Escribimos la palabra where y a continuación la condición, 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, también 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 código MySQL como el siguiente:

DELETE FROM tabla WHERE condición Por ejemplo, si queremos borrar de la

agenda a Federico Camuñas, el código será el siguiente:

BORRAR REGISTROS <?php $con=mysql_connect("localhost","root",

""); mysql_select_db("miagenda",$con); $sql = "delete from agenda where

nombre = 'Federico Camuñas'"; mysql_query($sql,$con); mysql_close($con) ?>

BORRAR TABLAS Y BASES DE DATOS

Podemos también 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 código 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 conexión, no seleccionamos ninguna base sino que escribimos el código MySQL de la siguiente forma:

$sql = "drop database `nombre_base`";

Mostrar datosRecoger los datos de una tabla

Para el ejemplo que aquí mostramos elegimos la base "miagenda", que hemos creado en páginas anteriores.

En primer lugar conectamos con MySQL y seleccionamos la base de datos:

$con=mysql_connect($servidor,$usuario,$contraseña);mysql_select_db("miagenda",$con);

Después escribimos la sentencia $sql, con el código 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 función mysql_query(), pero esta vez guardamos el resultado de la función 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 están ya que si intentamos leerlos mediante la instrucción 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 función: mysql_fetch_array(). Le pasaremos un único argumento que será el resultado obtenido, es decir la variable $datos. La función devuleve un array a la vez indexado y asociativo, en el que estará contenido el primer registro de la tabla.

Sin embargo la función 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 función, 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 número correlativo como clave, y otra como array asociativo, en el que la clave es el nombre del campo.

Por lo tanto, el siguiente código mostrará el nombre de los campos que tiene la tabla. Al mismo tiempo guarda

<?php $campos=array();$con=mysql_connect("localhost","root","");

mysql_select_db("miagenda",$con);$sql="select * from “genda";

$datos=mysql_query($sql,$con);$row=mysql_fetch_array($datos);foreach ($row as $clave=>$valor) { if (is_string($clave)) { echo "$clave, "; array_push($campos,$clave); } }mysql_close($con);?>

FUNCION STRING función 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 código anterior nos dará en pantalla lo siguiente:

IDagenda, nombre, telefono, email, descripcion,

Mostrar los datos de los registros

función $row=mysql_fetch_array($datos); nos muestra los datos de un único registro, y mueve después 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"; //código MySQL$datos=mysql_query($sql,$con); //enviar código 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 teléfono $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 variación es añadir al código MySQL la sentencia order by nombre_campo, por ejemplo:

$sql="select * from agenda order by nombre" Esto ordenará los registros de la agenda alfabéticamente de forma ascendente, según

el campo "nombre" (desde la A a la Z). Si el campo indicado como criterio de ordenación es numérico, los registros se

ordenarán de menor a mayor. Los podemos ordenar también de forma descendente (de la Z a la A), si añadimos

despues la palabra desc $sql="select * from agenda order by nombre desc" Los datos de la tabla agenda, se verán el el siguiente orden tras indicarle una

ordenación ascendente. Agueda Ruiperez, 617255493, agarupez10@ymail.com. 

Federico Camuñas, 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 búsqueda 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 búsqueda,

para ello seleccionamos toda la tabla, y aplicamos luego la sentencia where, para buscar el registro que coincida con la condición que indiquemos.

$sql="select * from agenda where nombre='Vicente Gracia'"

El resto de código php es el mismo que hemos usado para mostrar la tabla completa. Así el siguiente código nos mostrará además del nombre indicado, el teléfono y el email:

$con=mysql_connect("localhost","root","");mysql_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);?>

Recommended