SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Curso PHP Thales-CICA

1. Introducción a las bases de datos.

Definición 1. Una base de datos es un conjunto de datos que
pertenecen al mismo contexto almacenados sistemáticamente para
su uso posterior.

Definición 2. Una base de datos es un conjunto de información
estructurada en registros y almacenada en un soporte electrónico
legible desde un ordenador. Cada registro constituye una unidad
autónoma de información que puede estar a su vez estructurada en
diferentes campos o tipos de datos que se recogen en dicha base de
datos.




1.1 Modelo de base de datos.

Es básicamente una "descripción" de algo conocido como contenedor
de datos (algo en donde se guarda la información), así como de los
métodos para almacenar y recuperar información de esos
contenedores.

Los modelos de datos no son cosas físicas: son abstracciones que
permiten la implementación de un sistema eficiente de base de
datos; por lo general se refieren a algoritmos y conceptos
matemáticos.

Algunos modelos con frecuencia utilizados en las bases de datos:
Modelo jerárquico, modelo de red, modelo orientado a objetos,
modelo documental y modelo relacional.



1.1.1 Bases de datos jerárquicas.
Éstas son bases de datos que, como su nombre indica, almacenan su
información en una estructura jerárquica. En este modelo los datos
se organizan en una forma similar a un árbol, con un nodo principal
llamado raíz del que cuelgan nodos hijos (hojas).

Una de las principales limitaciones de este modelo es su incapacidad
de representar eficientemente la redundancia de datos.




                                                                   1
Curso PHP Thales-CICA

1.1.2 Bases de datos de red.

Se diferencia del modelo jerárquico en la modificación del concepto
de nodo: se permite que un mismo nodo tenga varios padres
(posibilidad no permitida en el modelo jerárquico).

Fue una gran mejora con respecto al modelo jerárquico, ya que
ofrecía una solución eficiente al problema de redundancia de datos;
pero, aun así, la dificultad que significa administrar la información
en una base de datos de red ha significado que sea un modelo
utilizado en su mayoría por programadores más que por usuarios
finales.



1.1.3 Bases de datos orientadas a objeto.

Este modelo, bastante reciente, y propio de los modelos informáticos
orientados a objetos, trata de almacenar en la base de datos los
objetos completos (estado y comportamiento).
Una base de datos orientada a objetos es una base de datos que
incorpora todos los conceptos importantes del paradigma de objetos:
Encapsulamiento, herencia y polimorfismo.

En bases de datos orientadas a objetos, los usuarios pueden definir
operaciones sobre los datos como parte de la definición de la base de
datos.




1.1.4 Bases de datos documentales.

Permiten la indexación a texto completo, y en líneas generales
realizar búsquedas más potentes.




                                                                   2
Curso PHP Thales-CICA

1.1.5 Bases de datos relacionales.

Este modelo considera la base de datos como una colección de
relaciones. De manera simple, una relación representa una tabla, en
que cada fila (tupla) representa una colección de valores que
describen una entidad del mundo real.

En este modelo, el lugar y la forma en que se almacenen los datos no
tienen relevancia Esto tiene la considerable ventaja de que es más
fácil de entender y de utilizar para un usuario esporádico de la base
de datos. La información puede ser recuperada o almacenada
mediante "consultas" que ofrecen una amplia flexibilidad y poder
para administrar la información.




2. Diseño de bases de datos relacionales.

El primer paso para crear una base de datos, es planificar el tipo de
información que se quiere almacenar en la misma, teniendo en
cuenta dos aspectos: la información disponible y la información que
necesitamos.

La planificación de la estructura de la base de datos, en particular de
las tablas, es vital para la gestión efectiva de la misma. El diseño de
la estructura de una tabla consiste en una descripción de cada uno
de los campos que componen el registro y los valores o datos que
contendrá cada uno de esos campos.
Los campos son los distintos tipos de datos que componen la tabla.
La definición de un campo requiere: el nombre del campo, el tipo de
campo, el ancho del campo, etc.


Un mismo problema de almacenamiento de información se puede
afrontar con diferentes esquemas de bases de datos.
La calidad de un esquema estará determinada por                      el
comportamiento o reacción a determinadas operaciones                 de
manipulación (actualización, inserción y borrado).


Nosotros en este curso no abarcaremos todos los conceptos de
bases de datos (dependencias funcionales, formas normales).
Simplemente veremos algunos ejemplos de diseños e intentaremos
que nuestros diseños cumplan que sus datos no sean redundantes.



                                                                   3
Curso PHP Thales-CICA


Concepto de redundancia de datos.
Diremos que unos datos son redundantes cuando en una misma base
de datos los datos aparecen en más de una tabla.


Ejemplo:
Supongamos que tenemos una empresa que gestiona un almacén.
Y que el gerente que sabe poco de bases de datos nos entrega el
siguiente diseño:

-   Una tabla clientes que contendrá los           datos   del   cliente:
    Nombre, apellidos, dirección, ciudad y país.
-   Una tabla de proveedores:
    Nombre proveedor, dirección empresa, ciudad y país.
-   Una tabla de productos:
    Nombre del proveedor, dirección empresa, ciudad, país, nombre
    del producto, stock y precio.

-   Una tabla de factura:
    Nombre cliente, apellidos cliente, dirección, ciudad, país, nombre
    del producto, cantidad vendida, precio

Lo primero que tenemos que corregir es la redundancia de datos
existente en la factura, para ello crearemos un identificador (DNI) en
la tabla clientes y usaremos ese identificador para hacer referencia
al cliente en la tabla factura:

-   Una tabla clientes que contendrá los datos del cliente:
    DNI, nombre, apellidos, dirección, ciudad y país.
-   Una tabla de factura:
    DNI cliente, nombre del producto, cantidad vendida, precio.

Con ello hemos eliminado los datos redundantes de nombre, apellido,
dirección, ciudad y país que ahora no aparecerán en la factura.
Si queremos conocer esos datos en la factura simplemente
observaremos el DNI cliente y buscaremos ese dni en la tabla
clientes.




                                                                     4
Curso PHP Thales-CICA

Lo mismo hacemos con los datos redundantes del proveedor de la
tabla productos, con lo que nuestras tablas quedarían así:

-   Una tabla clientes que contendrá los datos            del   cliente:
    DNI, nombre, apellidos, dirección, ciudad y país.
-   Una tabla de proveedores:
    IdProveedor, Nombre proveedor, dirección empresa, ciudad y
    país.
-   Una tabla de productos:
    Idproveedor, nombre del producto, stock y precio.

-   Una tabla de factura:
    DNI cliente, nombre del producto, cantidad vendida, precio

( Si el nombre del proveedor es único se podía haber utilizado
 este como identificador o clave)

Aún tenemos un dato redundante...el precio del producto, así que
haremos un idproducto:


-   Una tabla clientes que contendrá los datos del cliente:
    DNI, nombre, apellidos, dirección, ciudad y país.
-   Una tabla de proveedores:
    IdProveedor, Nombre proovedor, dirección empresa, ciudad y
    país.
-   Una tabla de productos:
    Idproducto, Idproveedor, nombre del producto, stock y precio.

-   Una tabla de factura:
    DNI cliente, idproducto, cantidad vendida.

Ahora si analizamos bien las tablas nos encontraríamos con un
problema en el diseño de la tabla factura... ¿como se yo que
productos van en una factura? Ahora mismo solo dispongo de los
campos dnicliente, idproducto y la cantidad... pero ese cliente ha
podido comprar varias veces y por tanto tener más de una factura ....
o también ha podido comprar más de un producto en la misma
compra.




                                                                    5
Curso PHP Thales-CICA

Tendríamos que generar 2 nuevas tablas, una tabla que relacione
cada cliente con un idfactura y otra tabla que relaciona un idfactura
con el idproducto y la cantidad:


-   Una tabla clientes que contendrá los datos del cliente:
    DNI, nombre, apellidos, dirección, ciudad y país.

-   Una tabla de proveedores:
    IdProveedor, Nombre proveedor, dirección empresa, ciudad y
    pais.
-   Una tabla de productos:
    Idproducto, Idproveedor, nombre del producto, stock y precio.

-   Una tabla de facturas:
    dnicliente, idfactura

-   Una tabla factura
    idfactura, idproducto, cantidad vendida.


Si nos fijamos la tabla facturas no tiene identificador, si nos hiciera
falta a la hora de programar podríamos insertar uno.

El idfactura de la tabla factura es un id que se repetirá en la tabla,
para conocer los productos que pertenecen a una determinada
factura buscaremos las apariciones de ese id en la tabla factura
obteniendo así sus productos y cantidad vendida asociados, para
conocer el cliente de la factura simplemente consultaremos la tabla
facturas.

Ya hemos eliminado la redundancia de datos y hemos resuelto el
problema de la factura. Podríamos seguir haciendo modificaciones
en las tablas para hacerlas mas eficientes pero no es nuestro
objetivo.
Como hemos visto el diseño de la bases de datos no es algo fácil de
hacer, hay que dedicarle tiempo a estudiar las necesidades del
problema y encontrar un diseño que minimice el tamaño de la base
de datos, sea un diseño compacto y que además no complique en
exceso la programación posterior de la aplicación que trabaje con
ella.

Nos llevaría mucho tiempo explicar toda la teoría de bases de datos.
Si alguien quiere ampliar conocimientos en el tema en la biografía
hemos añadido enlaces interesantes sobre el tema.



                                                                    6
Curso PHP Thales-CICA

3. SQL.

El SQL (Structured Query Language) es un lenguaje estándar que
nos permite comunicarnos con la base de datos.

Una sentencia SQL es como una frase con la que decimos lo que
queremos obtener y de donde obtenerlo.


Todas las sentencias empiezan con una palabra reservada que indica
la acción a realizar, seguido del resto de cláusulas, algunas
obligatorias y otras opcionales.

Comentemos los conceptos mas importantes de SQL que nos
permitirán realizar operaciones sencillas, para realizar operaciones
más complejas tendremos que profundizar en el estudio del
lenguaje.



Comandos DDL (Definición de datos):

CREATE. Crea una tabla o una base de datos.
Su sintaxis es: CREATE TABLE nombre_tabla ;
                CREATE DATABASE nombre_base_de_datos ;

DROP. Elimina una tabla o una base de datos.
Su sintaxis es: DROP TABLE nombre_tabla ;
                DROP DATABASE nombre_base_de_datos ;

ALTER. Modifica la estructura de una tabla. Añadiendo o
         eliminando una columna según usemos add o drop.
Su sintaxis es: ALTER TABLE ADD nombre_columna tipo_de_dato
                ALTER TABLE DROP COLUMN nombre_columna




Comandos MDL (Manipulación de datos):

INSERT. Nos permite insertar datos en la base de datos.
Su sintaxis es: INSERT INTO nombre_tabla VALUES (valor1,v2...)

INSERT INTO clientes VALUES ( ‘pepe’,’martin’,43,’228765435L’)




                                                                 7
Curso PHP Thales-CICA


SELECT. Nos permite hacer una selección en la base de datos.
Su sintaxis es: SELECT nombres_columnas_a_mostrar FROM
nombre_de_tablas ( Clausula WHERE )

Podemos:

- Usar todas las columnas de la tabla: SELECT * FROM clientes
- Elegir determinadas columnas de la tabla:
            SELECT nombre, apellidos FROM clientes

- Elegir todos los campos de varias tablas:
            SELECT * FROM clientes , empleados
- Elegir algunos campos de algunas tablas:
            SELECT clientes.nombre, pais.ciudad apellidos
            FROM clientes , pais

  ( Usamos nombre_tabla.nombre_columna)


Existe la opción DISTINCT que nos permite eliminar elementos
repetidos de una selección.

SELECT DISTINCT nombre , apellido FROM clientes, vendedores



UPDATE. Nos permite actualizar los datos de la base de datos.
Su sintaxis es: UPDATE nombre_tabla SET nombre_columna =

                nuevo_valor WHERE Condición

Una condicion simple puede ser:    nombre_columna LIKE ‘valor’

Podemos modificar el valor de una columna

UPDATE Cliente SET Nombre = 'Ramon' WHERE Apellido LIKE
“Martin”

o modificar el valor de varias columnas

UPDATE Cliente SET Nombre = 'Ramon' , telefono = 637453783
WHERE dni LIKE ‘232332323G’




                                                                 8
Curso PHP Thales-CICA


Clausula WHERE. Sirve para establecer las condiciones de que
datos se manipularan.

Su sintaxis:   WHERE columna operador valor


 Lista de operadores:
 =             Igualdad
 LIKE          Igualdad para cadenas
 <>            Desigualdad
 >             Mayor que
 <             Menor que
 >=            Mayor o igual que
 <=            Menor o igual que
 BETWEEN       Entre un rango de valores

Los valores de las cadenas se ponen entre cadenas dobles o simples,
los valores numéricos no.

SELECT nombre , precio FROM producto WHERE precio > ‘300’
Error

SELECT nombre , precio FROM producto WHERE precio > 300
Correcto , mostraría el nombre del producto y el precio de aquellos
cuyo precio fuese superior a 300.

SELECT * FROM producto WHERE precio BETWEEN 300 AND 400
devuelve los productos cuyo precio está entre 300 y 400

Utilizaremos los operadores AND y OR para construir condiciones
mas complejas.


SELECT nombre , precio FROM producto WHERE precio > 300
AND nombre LIKE ‘a%’

Mostraría el nombre y el precio de los productos cuyo precio es
superior a 300 y su nombre empieza por a


SELECT nombre , precio FROM producto WHERE precio > 300
AND nombre LIKE ‘%a’

Mostraría el nombre y el precio de los productos cuyo precio es
superior a 300 o que su nombre termina por a




                                                               9
Curso PHP Thales-CICA


Clausula IN. Evita hacer usos reiterados de OR cuando queremos
que un valor valga cualquiera de un rango de valores.

SELECT nombre            FROM cliente WHERE pais     IN (‘España’,
‘Portugal’, ‘Brasil’, ‘Italia’)

Devulve los nombres de los clientes asociados a uno de esos paises



Alias Sirve para renombrar columnas. Nos es muy útil cuando tengo
columnas de diferentes tablas con el mismo nombre.

SELECT clientes.nombre AS nombre_cliente ,vendedores.nombre
AS nombre_vendedores from clientes,vendedores


Order by. Sirve para ordenar una selección. Ascendentemente ASC
o descendentemente DESC.

SELECT * from clientes ORDER BY nombre ASC

Se pueden ordenar por varios campos también

SELECT * from clientes ORDER BY nombre , apellidos DESC


Para probar si los comandos sql son correctos o no podemos utilizar
la herramienta PhPMyAdmin descrita en temas anteriores.




                                                               10
Curso PHP Thales-CICA

Será un método rápido para depurar errores




                      ( no existe la tabla )




        ( comando sql con error sintáctico,
          se escribe select y no selet )




     (la tabla está vacia por lo que no devolverá datos)

A veces hacemos consultas incorrectas creyendo q devolverán un
resultado pero devuelven otro, es conveniente comprobar con el
phpmyadmin que el resultado devuelto es el adecuado.)




                                                                 11
Curso PHP Thales-CICA

También podremos generar consultas mas o menos simples con la
herramienta:




                                                                12
Curso PHP Thales-CICA

4. Funciones php para trabajar con mysql.


mysql_connect.

Def. Es la primera función que tendremos que utilizar antes de
realizar cualquier operación en la base de datos pues es la que nos
abre una conexión con el sistema de base de datos.

Sintaxis.   int mysql_connect ( $hostname , $usuario , $password )

La función nos devolverá un entero que va a ser el identificador de la
conexión, este entero tendremos que suministrárselo a las
operaciones que manipulan la base de datos como veremos mas
adelante. Nosotros por convenio guardaremos ese identificador del
enlace en la variable link.

Ejemplo. $link = mysql_connect (“localhost”,”root”,”contraseña” );




mysql_close.

Def. Cierra una conexión con la base de datos, la conexión viene
identificada por el link suministrado a la función.
Si no se especifica un identificador de conexión, se asume le de la
última conexión abierta.

Sintaxis. int mysql_close ( $link )

Devuelve true(1) si se ha cerrado sin ningún problema, de lo
contrario devuelve false(0).



mysql_select_db.

Def. Selecciona la base de datos con la que vamos a trabajar.

Sintaxis. int mysql_select_db ( $nombre_base_de_datos , $link)




                                                                  13
Curso PHP Thales-CICA

mysql_list_dbs.


Def. Nos sirve para conocer las bases de datos disponibles en un
servidor de bases de datos.

Sintaxis. $lista_db = mysql_list_dbs( $link) ;

$lista_db será un puntero de resultado, para imprimir las bd
tendremos que:

- opcion1. Usar la función mysql_fetch_object que devuelve una fila
de resultado como un objeto.

Dentro de la fila de resultado me interesa sólo el nombre de la base
de datos , por lo tanto solo accedo al campo Database de la fila.


- opcion2. Obtener el numero de bases de datos encontradas con la
función mysql_num_rows e ir obteniendo los nombres de las bases
de datos a partir del puntero resultado con mysql_db_name, función
que dado un puntero resultado de bases de datos y un indice
devuelve el nombre de la base de datos asociada.

Ejemplo. Imprimir la lista de bases de datos disponibles en el
servidor

$link = mysql_connect('localhost', 'usuario', 'pass');       //conexión
$lista_db = mysql_list_dbs($link);               // puntero a resultado

opcion1:

while ($row = mysql_fetch_object($lista_db))            // recorro
{
echo $row->Database."<br>";              //imprimo nombre de la bd
}

opcion2:

$i = 0;
$num_db = mysql_num_rows($lista_db);             //numero de bd
while ($i < $num_db)
{                                         // mientras queden bd
 echo mysql_db_name($lista_db, $i) . "<br>";           // imprimo
 $i++;
}




                                                                    14
Curso PHP Thales-CICA

mysql_num_rows.

Def. Devuelve el número de filas de un resultado.




mysql_num_fields.

Def. Devuelve el número de campos de un resultado.



mysql_list_tables.

Def. Nos sirve para conocer las tablas de una base de datos

Sintaxis. $result = mysql_list_tables($nombre_bd);

Ejemplo.

$result = mysql_list_tables($nombre_bd);
while ($row = mysql_fetch_array($result))
{
 echo "Tabla: “.$row[0].”<br>";
}



mysql_fetch_array.

Def. Anteriormente vimos la funcion mysql_fetch_object, esta función
es igual que la anterior con la diferencia que esta devuelve una array
en lugar de un objeto. Con el objeto sólo podemos acceder a los
datos por el nombre del campo, con el array podemos además
acceder por el indice.

Esta función distingue mayuscula y minuscula en los campos .

Sintaxis. array mysql_fetch_array ($puntero_resultado)




                                                                  15
Curso PHP Thales-CICA


mysql_query.

Def. Nos sirve para hacer las manipulaciones de una base de datos.

Esta base de datos es la referenciada por $link, si no se suministra
$link se opera sobre la base de datos con la que se abrió el último
enlace.

Sintaxis. $result = mysql_query($query , $link)

Esta función devuelve un recurso, en este caso un recurso.
Para calcular el tipo de un recurso utilizamos la función get_resource
type($recurso).



Ejemplo.
$sql= ”SELECT * FROM clientes WHERE nombre LIKE 'luis' “;
$result = mysql_query($sql,$link);
if (!$result)
{
   echo “Hubo un error:”.mysql_error());
}

Siempre guardaremos la consulta a realizar en la variable $sql.
(Recordemos que conviene comprobar el correcto funcionamiento,
tanto de sintaxis como de resultado esperado ejecutándola en el
phpmyadmin).

Si se produce un error en la función mysql_query se devuelve false,
es posible saber que error se ha producido, para ello hacemos uso de
la función mysql_error, que devuelve una cadena con el mensaje de
error de la última operación mysql.




mysql_result.

Def. Devuelve los datos de un resultado.

Sintaxis. int mysql_result ( $result, $fila )

int mysql_result ( $result, $fila , $campo) //campo asociativo




                                                                  16
Curso PHP Thales-CICA

Ejemplo.

$sql = “ SELECT name as nombre FROM client “;
$result = mysql_query($sql,$link);
echo mysql_result($result, 2,nombre); // Imprime el empleado 2do
                                      // del resultado



Las llamadas a mysql_result() no deben mezclarse con llamadas a las
otras sentencias que trabajan con un identificador de resultado.

Nota: Si en la consulta utilizamos un alias, deberemos utilizar ese
alias para acceder al campo y no el nombre del campo de la tabla.


mysql_free_result.

Def. Libera la memoria de la variable que contiene el resultado,
usaremos $result para contener este resultado.


Sintaxis. int mysql_free_result($result)



mysql_close.

Def. Cierra una conexión.

Sintaxis. Int mysql_close($link)




Además de estos comandos de mysql existen los llamados comandos
mysqli , pertenecientes a una versión mejorada de mysql.

Basicamente se encuentran versiones mejoradas de las funciones ya
descritas y algunas nuevas funciones.

Podeis encontrar una lista de las funciones en el siguiente enlace:
http://es.php.net/manual/es/ref.mysqli.php




                                                                      17
Curso PHP Thales-CICA

Bibliografía de bases de datos

Date, C.J., Introducción a los Sistemas de Bases de Datos, 7ª Edición,
Addison Wesley, 2001.
Elmasri-Navathe, Fundamentos de Sistemas de Bases de Datos, 3ª
Edición, Addison Wesley, 2000.

Korth, H., A. Silberschatz, Fundamentos de Bases de Datos, 4ª
Edición, McGraw-Hill, 2002.

Gardarin, G., Dominar las Bases de Datos, Ediciones Gestión 2000,
1993.


http://es.wikipedia.org

http://www.tejedoresdelweb.com/307/article-65413.html




Bibliografía de SQL


http://www.w3schools.com/sql/

http://desarrolloweb.com/articulos/262.php?manual=9

http://www.aulaclic.es/sql/f_sql.htm

http://www.unav.es/cti/manuales/Intro_SQL/indice.html




Bibliografía de funciones mysql de php

http://www.php.net/manual/es/ref.mysql.php




                                                                  18

Weitere ähnliche Inhalte

Was ist angesagt?

Base de datos 1
Base de datos 1Base de datos 1
Base de datos 1weysiba
 
Unidad 1 de gestion de la informacion en la enfermeria
Unidad 1 de gestion de la informacion en la enfermeriaUnidad 1 de gestion de la informacion en la enfermeria
Unidad 1 de gestion de la informacion en la enfermeriaLicenciada J
 
Plantilla con-normas-icontec (4)
Plantilla con-normas-icontec (4)Plantilla con-normas-icontec (4)
Plantilla con-normas-icontec (4)Juan Ossa
 
BASE DE DATOS
 BASE DE DATOS BASE DE DATOS
BASE DE DATOSanyeley
 
Introduccion a las bases de datos
Introduccion a las bases de datosIntroduccion a las bases de datos
Introduccion a las bases de datosJose
 
las consultas en access
las consultas en access las consultas en access
las consultas en access 2503468
 

Was ist angesagt? (18)

Base de datos 1
Base de datos 1Base de datos 1
Base de datos 1
 
Concepto de base de datos
Concepto de base de datosConcepto de base de datos
Concepto de base de datos
 
Microsoft Access Teoría Parte I
Microsoft Access Teoría Parte IMicrosoft Access Teoría Parte I
Microsoft Access Teoría Parte I
 
Base de-datos
Base de-datosBase de-datos
Base de-datos
 
Unidad 1 de gestion de la informacion en la enfermeria
Unidad 1 de gestion de la informacion en la enfermeriaUnidad 1 de gestion de la informacion en la enfermeria
Unidad 1 de gestion de la informacion en la enfermeria
 
Plantilla con-normas-icontec (4)
Plantilla con-normas-icontec (4)Plantilla con-normas-icontec (4)
Plantilla con-normas-icontec (4)
 
BASE DE DATOS
 BASE DE DATOS BASE DE DATOS
BASE DE DATOS
 
Introduccion a access
Introduccion a accessIntroduccion a access
Introduccion a access
 
Diapositivas De Tablas y Base Datos
Diapositivas De Tablas y Base DatosDiapositivas De Tablas y Base Datos
Diapositivas De Tablas y Base Datos
 
Introduccion a las bases de datos
Introduccion a las bases de datosIntroduccion a las bases de datos
Introduccion a las bases de datos
 
Teoria acces
Teoria accesTeoria acces
Teoria acces
 
Joe castillo
Joe castilloJoe castillo
Joe castillo
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
BASE DE DATOS ARTURO
BASE DE DATOS ARTUROBASE DE DATOS ARTURO
BASE DE DATOS ARTURO
 
las consultas en access
las consultas en access las consultas en access
las consultas en access
 
Base de datos access
Base de datos accessBase de datos access
Base de datos access
 
NORMAS ICONTEC /12/08/2015
NORMAS ICONTEC /12/08/2015 NORMAS ICONTEC /12/08/2015
NORMAS ICONTEC /12/08/2015
 
Tutorial LibreOffice Base 6.3.4
Tutorial LibreOffice Base 6.3.4Tutorial LibreOffice Base 6.3.4
Tutorial LibreOffice Base 6.3.4
 

Andere mochten auch

Curso joomla
Curso joomlaCurso joomla
Curso joomlaI LG
 
Seguridad
SeguridadSeguridad
SeguridadI LG
 
Presentación joomla 3.2
Presentación joomla 3.2Presentación joomla 3.2
Presentación joomla 3.2JoomlaExperts
 
Cms joomla 3.0
Cms joomla 3.0Cms joomla 3.0
Cms joomla 3.0rmonago
 
Modulo hlc
Modulo hlcModulo hlc
Modulo hlcI LG
 
Sistemas operativos en red
Sistemas operativos en redSistemas operativos en red
Sistemas operativos en redI LG
 
Modulo apw
Modulo apwModulo apw
Modulo apwI LG
 
Presentación orientacion momae y aplof 1
Presentación orientacion momae y aplof 1Presentación orientacion momae y aplof 1
Presentación orientacion momae y aplof 1I LG
 
Cuaderno de ejercicios y practicas vistual basic
Cuaderno de ejercicios y practicas vistual basicCuaderno de ejercicios y practicas vistual basic
Cuaderno de ejercicios y practicas vistual basicOmar Valero Guerra
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysqlI LG
 
Ejercicio de PHP, MySQL y Apache
Ejercicio de PHP, MySQL y ApacheEjercicio de PHP, MySQL y Apache
Ejercicio de PHP, MySQL y ApacheVictor Escamilla
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltosfermodcor
 
Introducción a programación con PHP
Introducción a programación con PHPIntroducción a programación con PHP
Introducción a programación con PHPyanburbano
 
Sistemas operativos monopuesto
Sistemas operativos monopuestoSistemas operativos monopuesto
Sistemas operativos monopuestoI LG
 

Andere mochten auch (18)

Curso joomla
Curso joomlaCurso joomla
Curso joomla
 
Seguridad
SeguridadSeguridad
Seguridad
 
Presentación joomla 3.2
Presentación joomla 3.2Presentación joomla 3.2
Presentación joomla 3.2
 
Cms joomla 3.0
Cms joomla 3.0Cms joomla 3.0
Cms joomla 3.0
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Modulo hlc
Modulo hlcModulo hlc
Modulo hlc
 
Sistemas operativos en red
Sistemas operativos en redSistemas operativos en red
Sistemas operativos en red
 
Modulo apw
Modulo apwModulo apw
Modulo apw
 
Presentación orientacion momae y aplof 1
Presentación orientacion momae y aplof 1Presentación orientacion momae y aplof 1
Presentación orientacion momae y aplof 1
 
Cuaderno de ejercicios y practicas vistual basic
Cuaderno de ejercicios y practicas vistual basicCuaderno de ejercicios y practicas vistual basic
Cuaderno de ejercicios y practicas vistual basic
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysql
 
Ejercicio de PHP, MySQL y Apache
Ejercicio de PHP, MySQL y ApacheEjercicio de PHP, MySQL y Apache
Ejercicio de PHP, MySQL y Apache
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltos
 
Pratica 02
Pratica 02Pratica 02
Pratica 02
 
Introducción a programación con PHP
Introducción a programación con PHPIntroducción a programación con PHP
Introducción a programación con PHP
 
Sistemas operativos monopuesto
Sistemas operativos monopuestoSistemas operativos monopuesto
Sistemas operativos monopuesto
 
ejercicios php rfo
ejercicios php rfoejercicios php rfo
ejercicios php rfo
 

Ähnlich wie Apuntes php mysql

Bases de datos
Bases de datosBases de datos
Bases de datosAndypff
 
Base de datos
Base de datosBase de datos
Base de datosSara
 
Bases de datos
Bases de datosBases de datos
Bases de datosSara
 
Base de datos
Base de datosBase de datos
Base de datosSara
 
Base de datos
Base de datosBase de datos
Base de datosSara
 
base de datos acces 2010
base de datos acces 2010base de datos acces 2010
base de datos acces 2010Esteban Varon
 
10Guia2
10Guia210Guia2
10Guia2Wilson
 
Plantilla 903 icontec
Plantilla 903 icontecPlantilla 903 icontec
Plantilla 903 icontechanamichi123
 
base de datos power point
base de datos power pointbase de datos power point
base de datos power pointscaitechnonolgy
 
Normas icontecdasdadasd
Normas icontecdasdadasdNormas icontecdasdadasd
Normas icontecdasdadasdjayerxD
 
Bases de Datos 1.ppt
Bases de Datos 1.pptBases de Datos 1.ppt
Bases de Datos 1.pptssuser6c30de1
 
Normas Icontec Escobar
Normas Icontec EscobarNormas Icontec Escobar
Normas Icontec EscobarjayerxD
 

Ähnlich wie Apuntes php mysql (20)

Bases De Datos
Bases De DatosBases De Datos
Bases De Datos
 
Bases De Datos
Bases De DatosBases De Datos
Bases De Datos
 
Base de datos conceptos
Base de datos conceptosBase de datos conceptos
Base de datos conceptos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Plantilla 903 icontec
Plantilla 903 icontecPlantilla 903 icontec
Plantilla 903 icontec
 
base de datos acces 2010
base de datos acces 2010base de datos acces 2010
base de datos acces 2010
 
10Guia2
10Guia210Guia2
10Guia2
 
Plantilla 903 icontec
Plantilla 903 icontecPlantilla 903 icontec
Plantilla 903 icontec
 
Wilson bases de datos
Wilson bases de datosWilson bases de datos
Wilson bases de datos
 
base de datos power point
base de datos power pointbase de datos power point
base de datos power point
 
Normas icontecdasdadasd
Normas icontecdasdadasdNormas icontecdasdadasd
Normas icontecdasdadasd
 
Base de datos
Base de datosBase de datos
Base de datos
 
Bases de Datos 1.ppt
Bases de Datos 1.pptBases de Datos 1.ppt
Bases de Datos 1.ppt
 
Normas Icontec Escobar
Normas Icontec EscobarNormas Icontec Escobar
Normas Icontec Escobar
 
Conceptos basicos
Conceptos basicosConceptos basicos
Conceptos basicos
 

Mehr von I LG

Servicios en red
Servicios en redServicios en red
Servicios en redI LG
 
Modulo reloc
Modulo relocModulo reloc
Modulo relocI LG
 
Capitulo5 sql manejo-bd
Capitulo5 sql manejo-bdCapitulo5 sql manejo-bd
Capitulo5 sql manejo-bdI LG
 
Capitulo4 sql definicion-bd
Capitulo4 sql definicion-bdCapitulo4 sql definicion-bd
Capitulo4 sql definicion-bdI LG
 
Capitulo4 sql definicion-bd
Capitulo4 sql definicion-bdCapitulo4 sql definicion-bd
Capitulo4 sql definicion-bdI LG
 
Capitulo3 sql consultas
Capitulo3 sql consultasCapitulo3 sql consultas
Capitulo3 sql consultasI LG
 
Capitulo2 sql bd-relacionales
Capitulo2 sql bd-relacionalesCapitulo2 sql bd-relacionales
Capitulo2 sql bd-relacionalesI LG
 
Capitulo1 sql (conceptos-basicos)
Capitulo1 sql (conceptos-basicos)Capitulo1 sql (conceptos-basicos)
Capitulo1 sql (conceptos-basicos)I LG
 
Ud5 reloc-admin centralizadared
Ud5 reloc-admin centralizadaredUd5 reloc-admin centralizadared
Ud5 reloc-admin centralizadaredI LG
 
Ud5 reloc-mantenimiento sistema
Ud5 reloc-mantenimiento sistemaUd5 reloc-mantenimiento sistema
Ud5 reloc-mantenimiento sistemaI LG
 

Mehr von I LG (10)

Servicios en red
Servicios en redServicios en red
Servicios en red
 
Modulo reloc
Modulo relocModulo reloc
Modulo reloc
 
Capitulo5 sql manejo-bd
Capitulo5 sql manejo-bdCapitulo5 sql manejo-bd
Capitulo5 sql manejo-bd
 
Capitulo4 sql definicion-bd
Capitulo4 sql definicion-bdCapitulo4 sql definicion-bd
Capitulo4 sql definicion-bd
 
Capitulo4 sql definicion-bd
Capitulo4 sql definicion-bdCapitulo4 sql definicion-bd
Capitulo4 sql definicion-bd
 
Capitulo3 sql consultas
Capitulo3 sql consultasCapitulo3 sql consultas
Capitulo3 sql consultas
 
Capitulo2 sql bd-relacionales
Capitulo2 sql bd-relacionalesCapitulo2 sql bd-relacionales
Capitulo2 sql bd-relacionales
 
Capitulo1 sql (conceptos-basicos)
Capitulo1 sql (conceptos-basicos)Capitulo1 sql (conceptos-basicos)
Capitulo1 sql (conceptos-basicos)
 
Ud5 reloc-admin centralizadared
Ud5 reloc-admin centralizadaredUd5 reloc-admin centralizadared
Ud5 reloc-admin centralizadared
 
Ud5 reloc-mantenimiento sistema
Ud5 reloc-mantenimiento sistemaUd5 reloc-mantenimiento sistema
Ud5 reloc-mantenimiento sistema
 

Apuntes php mysql

  • 1. Curso PHP Thales-CICA 1. Introducción a las bases de datos. Definición 1. Una base de datos es un conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su uso posterior. Definición 2. Una base de datos es un conjunto de información estructurada en registros y almacenada en un soporte electrónico legible desde un ordenador. Cada registro constituye una unidad autónoma de información que puede estar a su vez estructurada en diferentes campos o tipos de datos que se recogen en dicha base de datos. 1.1 Modelo de base de datos. Es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos y conceptos matemáticos. Algunos modelos con frecuencia utilizados en las bases de datos: Modelo jerárquico, modelo de red, modelo orientado a objetos, modelo documental y modelo relacional. 1.1.1 Bases de datos jerárquicas. Éstas son bases de datos que, como su nombre indica, almacenan su información en una estructura jerárquica. En este modelo los datos se organizan en una forma similar a un árbol, con un nodo principal llamado raíz del que cuelgan nodos hijos (hojas). Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos. 1
  • 2. Curso PHP Thales-CICA 1.1.2 Bases de datos de red. Se diferencia del modelo jerárquico en la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico). Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales. 1.1.3 Bases de datos orientadas a objeto. Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: Encapsulamiento, herencia y polimorfismo. En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. 1.1.4 Bases de datos documentales. Permiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes. 2
  • 3. Curso PHP Thales-CICA 1.1.5 Bases de datos relacionales. Este modelo considera la base de datos como una colección de relaciones. De manera simple, una relación representa una tabla, en que cada fila (tupla) representa una colección de valores que describen una entidad del mundo real. En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información. 2. Diseño de bases de datos relacionales. El primer paso para crear una base de datos, es planificar el tipo de información que se quiere almacenar en la misma, teniendo en cuenta dos aspectos: la información disponible y la información que necesitamos. La planificación de la estructura de la base de datos, en particular de las tablas, es vital para la gestión efectiva de la misma. El diseño de la estructura de una tabla consiste en una descripción de cada uno de los campos que componen el registro y los valores o datos que contendrá cada uno de esos campos. Los campos son los distintos tipos de datos que componen la tabla. La definición de un campo requiere: el nombre del campo, el tipo de campo, el ancho del campo, etc. Un mismo problema de almacenamiento de información se puede afrontar con diferentes esquemas de bases de datos. La calidad de un esquema estará determinada por el comportamiento o reacción a determinadas operaciones de manipulación (actualización, inserción y borrado). Nosotros en este curso no abarcaremos todos los conceptos de bases de datos (dependencias funcionales, formas normales). Simplemente veremos algunos ejemplos de diseños e intentaremos que nuestros diseños cumplan que sus datos no sean redundantes. 3
  • 4. Curso PHP Thales-CICA Concepto de redundancia de datos. Diremos que unos datos son redundantes cuando en una misma base de datos los datos aparecen en más de una tabla. Ejemplo: Supongamos que tenemos una empresa que gestiona un almacén. Y que el gerente que sabe poco de bases de datos nos entrega el siguiente diseño: - Una tabla clientes que contendrá los datos del cliente: Nombre, apellidos, dirección, ciudad y país. - Una tabla de proveedores: Nombre proveedor, dirección empresa, ciudad y país. - Una tabla de productos: Nombre del proveedor, dirección empresa, ciudad, país, nombre del producto, stock y precio. - Una tabla de factura: Nombre cliente, apellidos cliente, dirección, ciudad, país, nombre del producto, cantidad vendida, precio Lo primero que tenemos que corregir es la redundancia de datos existente en la factura, para ello crearemos un identificador (DNI) en la tabla clientes y usaremos ese identificador para hacer referencia al cliente en la tabla factura: - Una tabla clientes que contendrá los datos del cliente: DNI, nombre, apellidos, dirección, ciudad y país. - Una tabla de factura: DNI cliente, nombre del producto, cantidad vendida, precio. Con ello hemos eliminado los datos redundantes de nombre, apellido, dirección, ciudad y país que ahora no aparecerán en la factura. Si queremos conocer esos datos en la factura simplemente observaremos el DNI cliente y buscaremos ese dni en la tabla clientes. 4
  • 5. Curso PHP Thales-CICA Lo mismo hacemos con los datos redundantes del proveedor de la tabla productos, con lo que nuestras tablas quedarían así: - Una tabla clientes que contendrá los datos del cliente: DNI, nombre, apellidos, dirección, ciudad y país. - Una tabla de proveedores: IdProveedor, Nombre proveedor, dirección empresa, ciudad y país. - Una tabla de productos: Idproveedor, nombre del producto, stock y precio. - Una tabla de factura: DNI cliente, nombre del producto, cantidad vendida, precio ( Si el nombre del proveedor es único se podía haber utilizado este como identificador o clave) Aún tenemos un dato redundante...el precio del producto, así que haremos un idproducto: - Una tabla clientes que contendrá los datos del cliente: DNI, nombre, apellidos, dirección, ciudad y país. - Una tabla de proveedores: IdProveedor, Nombre proovedor, dirección empresa, ciudad y país. - Una tabla de productos: Idproducto, Idproveedor, nombre del producto, stock y precio. - Una tabla de factura: DNI cliente, idproducto, cantidad vendida. Ahora si analizamos bien las tablas nos encontraríamos con un problema en el diseño de la tabla factura... ¿como se yo que productos van en una factura? Ahora mismo solo dispongo de los campos dnicliente, idproducto y la cantidad... pero ese cliente ha podido comprar varias veces y por tanto tener más de una factura .... o también ha podido comprar más de un producto en la misma compra. 5
  • 6. Curso PHP Thales-CICA Tendríamos que generar 2 nuevas tablas, una tabla que relacione cada cliente con un idfactura y otra tabla que relaciona un idfactura con el idproducto y la cantidad: - Una tabla clientes que contendrá los datos del cliente: DNI, nombre, apellidos, dirección, ciudad y país. - Una tabla de proveedores: IdProveedor, Nombre proveedor, dirección empresa, ciudad y pais. - Una tabla de productos: Idproducto, Idproveedor, nombre del producto, stock y precio. - Una tabla de facturas: dnicliente, idfactura - Una tabla factura idfactura, idproducto, cantidad vendida. Si nos fijamos la tabla facturas no tiene identificador, si nos hiciera falta a la hora de programar podríamos insertar uno. El idfactura de la tabla factura es un id que se repetirá en la tabla, para conocer los productos que pertenecen a una determinada factura buscaremos las apariciones de ese id en la tabla factura obteniendo así sus productos y cantidad vendida asociados, para conocer el cliente de la factura simplemente consultaremos la tabla facturas. Ya hemos eliminado la redundancia de datos y hemos resuelto el problema de la factura. Podríamos seguir haciendo modificaciones en las tablas para hacerlas mas eficientes pero no es nuestro objetivo. Como hemos visto el diseño de la bases de datos no es algo fácil de hacer, hay que dedicarle tiempo a estudiar las necesidades del problema y encontrar un diseño que minimice el tamaño de la base de datos, sea un diseño compacto y que además no complique en exceso la programación posterior de la aplicación que trabaje con ella. Nos llevaría mucho tiempo explicar toda la teoría de bases de datos. Si alguien quiere ampliar conocimientos en el tema en la biografía hemos añadido enlaces interesantes sobre el tema. 6
  • 7. Curso PHP Thales-CICA 3. SQL. El SQL (Structured Query Language) es un lenguaje estándar que nos permite comunicarnos con la base de datos. Una sentencia SQL es como una frase con la que decimos lo que queremos obtener y de donde obtenerlo. Todas las sentencias empiezan con una palabra reservada que indica la acción a realizar, seguido del resto de cláusulas, algunas obligatorias y otras opcionales. Comentemos los conceptos mas importantes de SQL que nos permitirán realizar operaciones sencillas, para realizar operaciones más complejas tendremos que profundizar en el estudio del lenguaje. Comandos DDL (Definición de datos): CREATE. Crea una tabla o una base de datos. Su sintaxis es: CREATE TABLE nombre_tabla ; CREATE DATABASE nombre_base_de_datos ; DROP. Elimina una tabla o una base de datos. Su sintaxis es: DROP TABLE nombre_tabla ; DROP DATABASE nombre_base_de_datos ; ALTER. Modifica la estructura de una tabla. Añadiendo o eliminando una columna según usemos add o drop. Su sintaxis es: ALTER TABLE ADD nombre_columna tipo_de_dato ALTER TABLE DROP COLUMN nombre_columna Comandos MDL (Manipulación de datos): INSERT. Nos permite insertar datos en la base de datos. Su sintaxis es: INSERT INTO nombre_tabla VALUES (valor1,v2...) INSERT INTO clientes VALUES ( ‘pepe’,’martin’,43,’228765435L’) 7
  • 8. Curso PHP Thales-CICA SELECT. Nos permite hacer una selección en la base de datos. Su sintaxis es: SELECT nombres_columnas_a_mostrar FROM nombre_de_tablas ( Clausula WHERE ) Podemos: - Usar todas las columnas de la tabla: SELECT * FROM clientes - Elegir determinadas columnas de la tabla: SELECT nombre, apellidos FROM clientes - Elegir todos los campos de varias tablas: SELECT * FROM clientes , empleados - Elegir algunos campos de algunas tablas: SELECT clientes.nombre, pais.ciudad apellidos FROM clientes , pais ( Usamos nombre_tabla.nombre_columna) Existe la opción DISTINCT que nos permite eliminar elementos repetidos de una selección. SELECT DISTINCT nombre , apellido FROM clientes, vendedores UPDATE. Nos permite actualizar los datos de la base de datos. Su sintaxis es: UPDATE nombre_tabla SET nombre_columna = nuevo_valor WHERE Condición Una condicion simple puede ser: nombre_columna LIKE ‘valor’ Podemos modificar el valor de una columna UPDATE Cliente SET Nombre = 'Ramon' WHERE Apellido LIKE “Martin” o modificar el valor de varias columnas UPDATE Cliente SET Nombre = 'Ramon' , telefono = 637453783 WHERE dni LIKE ‘232332323G’ 8
  • 9. Curso PHP Thales-CICA Clausula WHERE. Sirve para establecer las condiciones de que datos se manipularan. Su sintaxis: WHERE columna operador valor Lista de operadores: = Igualdad LIKE Igualdad para cadenas <> Desigualdad > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que BETWEEN Entre un rango de valores Los valores de las cadenas se ponen entre cadenas dobles o simples, los valores numéricos no. SELECT nombre , precio FROM producto WHERE precio > ‘300’ Error SELECT nombre , precio FROM producto WHERE precio > 300 Correcto , mostraría el nombre del producto y el precio de aquellos cuyo precio fuese superior a 300. SELECT * FROM producto WHERE precio BETWEEN 300 AND 400 devuelve los productos cuyo precio está entre 300 y 400 Utilizaremos los operadores AND y OR para construir condiciones mas complejas. SELECT nombre , precio FROM producto WHERE precio > 300 AND nombre LIKE ‘a%’ Mostraría el nombre y el precio de los productos cuyo precio es superior a 300 y su nombre empieza por a SELECT nombre , precio FROM producto WHERE precio > 300 AND nombre LIKE ‘%a’ Mostraría el nombre y el precio de los productos cuyo precio es superior a 300 o que su nombre termina por a 9
  • 10. Curso PHP Thales-CICA Clausula IN. Evita hacer usos reiterados de OR cuando queremos que un valor valga cualquiera de un rango de valores. SELECT nombre FROM cliente WHERE pais IN (‘España’, ‘Portugal’, ‘Brasil’, ‘Italia’) Devulve los nombres de los clientes asociados a uno de esos paises Alias Sirve para renombrar columnas. Nos es muy útil cuando tengo columnas de diferentes tablas con el mismo nombre. SELECT clientes.nombre AS nombre_cliente ,vendedores.nombre AS nombre_vendedores from clientes,vendedores Order by. Sirve para ordenar una selección. Ascendentemente ASC o descendentemente DESC. SELECT * from clientes ORDER BY nombre ASC Se pueden ordenar por varios campos también SELECT * from clientes ORDER BY nombre , apellidos DESC Para probar si los comandos sql son correctos o no podemos utilizar la herramienta PhPMyAdmin descrita en temas anteriores. 10
  • 11. Curso PHP Thales-CICA Será un método rápido para depurar errores ( no existe la tabla ) ( comando sql con error sintáctico, se escribe select y no selet ) (la tabla está vacia por lo que no devolverá datos) A veces hacemos consultas incorrectas creyendo q devolverán un resultado pero devuelven otro, es conveniente comprobar con el phpmyadmin que el resultado devuelto es el adecuado.) 11
  • 12. Curso PHP Thales-CICA También podremos generar consultas mas o menos simples con la herramienta: 12
  • 13. Curso PHP Thales-CICA 4. Funciones php para trabajar con mysql. mysql_connect. Def. Es la primera función que tendremos que utilizar antes de realizar cualquier operación en la base de datos pues es la que nos abre una conexión con el sistema de base de datos. Sintaxis. int mysql_connect ( $hostname , $usuario , $password ) La función nos devolverá un entero que va a ser el identificador de la conexión, este entero tendremos que suministrárselo a las operaciones que manipulan la base de datos como veremos mas adelante. Nosotros por convenio guardaremos ese identificador del enlace en la variable link. Ejemplo. $link = mysql_connect (“localhost”,”root”,”contraseña” ); mysql_close. Def. Cierra una conexión con la base de datos, la conexión viene identificada por el link suministrado a la función. Si no se especifica un identificador de conexión, se asume le de la última conexión abierta. Sintaxis. int mysql_close ( $link ) Devuelve true(1) si se ha cerrado sin ningún problema, de lo contrario devuelve false(0). mysql_select_db. Def. Selecciona la base de datos con la que vamos a trabajar. Sintaxis. int mysql_select_db ( $nombre_base_de_datos , $link) 13
  • 14. Curso PHP Thales-CICA mysql_list_dbs. Def. Nos sirve para conocer las bases de datos disponibles en un servidor de bases de datos. Sintaxis. $lista_db = mysql_list_dbs( $link) ; $lista_db será un puntero de resultado, para imprimir las bd tendremos que: - opcion1. Usar la función mysql_fetch_object que devuelve una fila de resultado como un objeto. Dentro de la fila de resultado me interesa sólo el nombre de la base de datos , por lo tanto solo accedo al campo Database de la fila. - opcion2. Obtener el numero de bases de datos encontradas con la función mysql_num_rows e ir obteniendo los nombres de las bases de datos a partir del puntero resultado con mysql_db_name, función que dado un puntero resultado de bases de datos y un indice devuelve el nombre de la base de datos asociada. Ejemplo. Imprimir la lista de bases de datos disponibles en el servidor $link = mysql_connect('localhost', 'usuario', 'pass'); //conexión $lista_db = mysql_list_dbs($link); // puntero a resultado opcion1: while ($row = mysql_fetch_object($lista_db)) // recorro { echo $row->Database."<br>"; //imprimo nombre de la bd } opcion2: $i = 0; $num_db = mysql_num_rows($lista_db); //numero de bd while ($i < $num_db) { // mientras queden bd echo mysql_db_name($lista_db, $i) . "<br>"; // imprimo $i++; } 14
  • 15. Curso PHP Thales-CICA mysql_num_rows. Def. Devuelve el número de filas de un resultado. mysql_num_fields. Def. Devuelve el número de campos de un resultado. mysql_list_tables. Def. Nos sirve para conocer las tablas de una base de datos Sintaxis. $result = mysql_list_tables($nombre_bd); Ejemplo. $result = mysql_list_tables($nombre_bd); while ($row = mysql_fetch_array($result)) { echo "Tabla: “.$row[0].”<br>"; } mysql_fetch_array. Def. Anteriormente vimos la funcion mysql_fetch_object, esta función es igual que la anterior con la diferencia que esta devuelve una array en lugar de un objeto. Con el objeto sólo podemos acceder a los datos por el nombre del campo, con el array podemos además acceder por el indice. Esta función distingue mayuscula y minuscula en los campos . Sintaxis. array mysql_fetch_array ($puntero_resultado) 15
  • 16. Curso PHP Thales-CICA mysql_query. Def. Nos sirve para hacer las manipulaciones de una base de datos. Esta base de datos es la referenciada por $link, si no se suministra $link se opera sobre la base de datos con la que se abrió el último enlace. Sintaxis. $result = mysql_query($query , $link) Esta función devuelve un recurso, en este caso un recurso. Para calcular el tipo de un recurso utilizamos la función get_resource type($recurso). Ejemplo. $sql= ”SELECT * FROM clientes WHERE nombre LIKE 'luis' “; $result = mysql_query($sql,$link); if (!$result) { echo “Hubo un error:”.mysql_error()); } Siempre guardaremos la consulta a realizar en la variable $sql. (Recordemos que conviene comprobar el correcto funcionamiento, tanto de sintaxis como de resultado esperado ejecutándola en el phpmyadmin). Si se produce un error en la función mysql_query se devuelve false, es posible saber que error se ha producido, para ello hacemos uso de la función mysql_error, que devuelve una cadena con el mensaje de error de la última operación mysql. mysql_result. Def. Devuelve los datos de un resultado. Sintaxis. int mysql_result ( $result, $fila ) int mysql_result ( $result, $fila , $campo) //campo asociativo 16
  • 17. Curso PHP Thales-CICA Ejemplo. $sql = “ SELECT name as nombre FROM client “; $result = mysql_query($sql,$link); echo mysql_result($result, 2,nombre); // Imprime el empleado 2do // del resultado Las llamadas a mysql_result() no deben mezclarse con llamadas a las otras sentencias que trabajan con un identificador de resultado. Nota: Si en la consulta utilizamos un alias, deberemos utilizar ese alias para acceder al campo y no el nombre del campo de la tabla. mysql_free_result. Def. Libera la memoria de la variable que contiene el resultado, usaremos $result para contener este resultado. Sintaxis. int mysql_free_result($result) mysql_close. Def. Cierra una conexión. Sintaxis. Int mysql_close($link) Además de estos comandos de mysql existen los llamados comandos mysqli , pertenecientes a una versión mejorada de mysql. Basicamente se encuentran versiones mejoradas de las funciones ya descritas y algunas nuevas funciones. Podeis encontrar una lista de las funciones en el siguiente enlace: http://es.php.net/manual/es/ref.mysqli.php 17
  • 18. Curso PHP Thales-CICA Bibliografía de bases de datos Date, C.J., Introducción a los Sistemas de Bases de Datos, 7ª Edición, Addison Wesley, 2001. Elmasri-Navathe, Fundamentos de Sistemas de Bases de Datos, 3ª Edición, Addison Wesley, 2000. Korth, H., A. Silberschatz, Fundamentos de Bases de Datos, 4ª Edición, McGraw-Hill, 2002. Gardarin, G., Dominar las Bases de Datos, Ediciones Gestión 2000, 1993. http://es.wikipedia.org http://www.tejedoresdelweb.com/307/article-65413.html Bibliografía de SQL http://www.w3schools.com/sql/ http://desarrolloweb.com/articulos/262.php?manual=9 http://www.aulaclic.es/sql/f_sql.htm http://www.unav.es/cti/manuales/Intro_SQL/indice.html Bibliografía de funciones mysql de php http://www.php.net/manual/es/ref.mysql.php 18