Вы находитесь на странице: 1из 23

Desarrollo de

aplicaciones para
mviles

MDULO 1 UNIDAD 1
NIVELACIN BASE DE DATOS
Qu es una base de datos? ..................................................................................... 3
Bases de Datos Relacionales ..................................................................................... 4
Tablas.................................................................................................................... 4
Columnas ............................................................................................................... 5
Filas ...................................................................................................................... 5
Valores .................................................................................................................. 5
Campo Llave........................................................................................................... 6
Tipos de datos numricos ......................................................................................... 9
Operadores ............................................................................................................ 9
Funciones de clculos ............................................................................................ 10
Lenguaje estructurado de consulta .......................................................................... 11
Creacin de una Base de Datos ............................................................................... 11
Creacin de un tabla.............................................................................................. 12
LENGUAJE DE MANIPULACION DE DATOS DE MYSQL (LMD) ............................... 12
SELECT: Selecciona datos de una tabla y devuelve un resultado ................................. 12
INSERT: Inserta nuevos registros en una tabla ......................................................... 16
DELETE: Elimina registros de una tabla .................................................................... 17
UPDATE: Modifica registros de una tabla .................................................................. 18
UPDATE nombre_de_tabla...................................................................................... 18
UPDATE Sueldos SET Importe=2000 WHERE Puesto=Puesto2 ................................... 18
PGINAS DINMICAS CON BASES DE DATOS ........................................................... 19
Qu es PHP? ....................................................................................................... 19
CONCEPTOS BSICOS DE MYSQL Y PHP INTEGRADOS............................................... 20
Conexin al servidor MySQL desde PHP.................................................................... 20
Uso de la consulta SELECT ..................................................................................... 23

Qu es una base de datos?


Una base de datos es un sistema para archivar informacin en una computadora
cuyo propsito general es mantener informacin y hacer que est disponible cuando
se la solicite.
Supongamos que en una Base de Datos (de ahora en ms BD) tenemos un listado
de todos los telfonos de las personas que viven en Capital Federal, y le hacemos
las siguientes preguntas:
Cules son los telfonos de todas las personas de apellido Gmez?
Como respuesta nos va a dar los telfonos de todos los Gmez de Capital Federal
que tenga ingresados.
Cul es el nombre de la persona con el nmero de telfono 0223-4311343?
En este caso como respuesta obtendremos vaco ya que la caracterstica indicada
es de Mar del Plata, y esta BD slo tiene disponible informacin sobre Capital
Federal, por lo tanto no puede encontrar dato alguno que responda a nuestra
consulta.
Estas preguntas a la BD, se realizan mediante un lenguaje llamado SQL (Structured
Query Language Lenguaje Estructurado de Consultas) y la BD nos va a responder
con datos o vaco si es que no encontr ningn dato que respondiera a nuestra
pregunta.
Existen tres grandes tipos de Bases de Datos:

Relacionales
Orientadas a Objetos
Lgicas

Si bien estos tres tipos de BD sirven para organizar la informacin y devolvernos


respuestas adecuadas a nuestras preguntas, el nico tipo que realmente se usa en
las aplicaciones son las Bases de Datos Relacionales.
La no utilizacin de los otros dos tipos se debe a cuestiones avanzadas de
programacin porque el desarrollo de programas con ellas es muy complicado.

Bases de Datos Relacionales


Este tipo de bases da datos consiste de varios elementos que hay que tener en
cuenta:

Tablas
o Columnas
o Filas
 Valores

Campos Llave
o Relaciones

Esquemas

Tablas
Las bases relacionales se componen de relaciones, ms comnmente llamadas
tablas.
Una tabla es lo que su nombre indica, un cuadro de doble entrada en el cual se
relacionan datos.
Es bastante parecido a cuando uno guarda informacin en una planilla de clculo:
all tambin lo hace en tablas compuestas por Columnas y Filas.
Veamos la siguiente tabla, que muestra el ranking mundial de Tenis (los datos
estn desactualizados, es solo a modo de ejemplo)

Ranking
puesto
1
2
3
4
5
6
7
8
9
10

nombre
Roger
Rafael
Nicolay
James
Ivan
Andy
Tommy
David
Mario
Fenando

apellido
Federer
Nadal
Davydenko
Blake
Ljubicic
Roddick
Robredo
Nalbandian
Ancic
Gonzlez

edad
25
20
25
26
27
24
24
24
22
26

nacionalidad
Suizo
Espaol
Ucraniano
Estadounidense
Ucraniano
Estadounidense
Espaol
Argentino
Croata
Chileno

La tabla tiene un nombre (Ranking), columnas que contienen distintos tipos de


datos, y filas, que corresponden una a cada tenista ingresado.

Columnas
Cada columna (o campo de la tabla) dentro de una tabla tiene un nombre nico ,
un tipo de dato y almacenan diferente informacin.

Filas
Cada fila (o registro) en la tabla Ranking representa a un tenista diferente.
Como las filas dependen de una tabla, todas van a tener la misma estructura pero
contenidos diferentes entre s.

Valores
Cada fila esta compuesta de un grupo de valores, los cuales corresponden a cada
una de las columnas.
Como cada uno corresponde a una columna, su tipo de dato es el indicado por
dicha columna.

Diagrama de una Tabla

Campo Llave
Cada fila (o registro) tiene que tener informacin diferente, ya que de otra
manera, estaramos duplicando registros.
Los campos Llave, son campos (columnas) cuyo contenido va a ser nico a lo largo
de toda la tabla, evitando de esta manera la duplicacin de informacin.

Supongamos que tenemos la tabla Clientes, con la siguiente informacin:

nombre

apellido

direccin

telfono

Pablo

Martnez

Rivadavia 2564

4567-9852

Diego

Romar

Cucha Cucha 3506

4258-6985

Alfredo

Romero

Pasco 1151

4587-9856

Silvia

Lanzillotta Crmer 1743

4358-5874

Adelina

Caraibo

Charcas 4312

4562-9874

Pablo

Martnez

San Pedrito 111

4578-4253

Diego

Gassi

Virrey Olaguer 2955

4312-9098

Jorge Daro

Paley

Juana Azurduy 1520

4313-4251

Nicols

Moldavsky Campichuelo 462

4125-7689

Y ahora, supongamos que queremos el telfono de Pablo Martnez.


Al efectuar una consulta por nombre y apellido obtenemos el siguiente resultado:

nombre apellido

direccin

telfono

Pablo

Martnez Rivadavia 2564

4567-9852

Pablo

Martnez San Pedrito 111

4578-4253

Lo cual es correcto.
Ahora si lo que buscamos es que la consulta devuelva un solo registro, podemos
agregar un nuevo campo, = nro_cliente, que represente una identificacin
univoca para cada cliente.

Ahora la tabla quedara as:


Clientes
nro_cliente
1
2
3
4
5
6
7
8
9

nombre
Pablo
Diego
Alfredo
Silvia
Adelina
Pablo
Diego
Jorge Daro
Nicols

apellido
Martnez
Romar
Romero
Lanzillotta
Caraibo
Martnez
Gassi
Paley
Moldavsky

direccin
Rivadavia 2564
Cucha Cucha 3506
Pasco 1151
Crmer 1743
Charcas 4312
San Pedrito 111
Virrey Olaguer 2955
Juana Azurduy 1520
Campichuelo 462

telfono
4567-9852
4258-6985
4587-9856
4358-5874
4562-9874
4578-4253
4312-9098
4313-4251
4125-7689

Llaves Primarias y Llaves Forneas


Dentro de los campos llave, podemos diferenciar dos tipos:

Primarias
o Son campos llave que identifican unvocamente registros que estn
dentro de la tabla.

Forneas
o Son campos llave que permiten referenciar unvocamente a un registro
que est dentro de otra tabla.

Puede haber ms de una clave primaria o fornea.

Esquemas
El conjunto de todos los diseos de las tablas de una BD se llama Esquema.
En el Esquema de la BD se muestran todas las tablas, junto con sus campos y
llaves primarias y/o forneas.
Los esquemas pueden mostrarse mediante diagramas informales (como los que
usamos arriba para indicar la relacin entre rdenes y Clientes), Diagramas de
Entidad-Relacin, o mediante texto:
Clientes(nro_cliente, nombre, apellido, direccin, telfono)
Ordenes(nro_pedido, nro_cliente, descripcin, importe)
Con subrayado se indica la llave primaria y en cursiva la llave fornea.

Tipos de datos numricos


Tipo

Definicin

Integer

Valores enteros con signo

Numeric(n,m)

Nmeros reales hasta 18 dgitos (con decimales). N total


de dgitos permitidos y m cant. De decimales.
Idem Numeric

Decimal(n,m)
Float

Nro de coma flotante, se utiliza para nros de notacin


cientfica

Char(n)

Almacena de 1 a 255 caracteres alfanumricos. Aunque


el valor solo contenga 100, el valor real de campo es de
255.
Idem char(n), solo que aprovecha el espacio,
almacenando solo la cantidad de dgitos realmente
utilizada
Almacena imgenes en formato binario , hasta un
mximo de 2 GB.
Almacena texto en formato binario, hasta un mximo de
2 Gb de tamao.

Varchar(n)

Image
Text

Operadores
Los operadores se dividen en:
Aritmticos
+

Suma

Resta

Producto

Divisin

**

^ Exponenciacin

Relacionales
<

Menor que

<=

Menor o igual que

>

Mayor que

>=

Mayor o igual que

<>

!= Distinto

!<

No menor que

!>

No mayor que

Lgicos
AND
OR
NOT

Los operadores lgicos permiten comparar


expresiones lgicas devolviendo siempre un valor
verdadero o falso. Los operadores lgicos se
evalan de izquierda a derecha.

Funciones de clculos

MAX()

Devuelve el valor mximo.

MIN()

Devuelve el valor mnimo.

SUM()

Devuelve el valor de la suma de los valores del campo.

COUNT()

Devuelve el nmero de filas que cumplen la condicin

AVG()

Devuelve el promedio de los valores del campo

10

Lenguaje estructurado de consulta


SQL es el lenguaje de consulta universal para Base de Datos.
Los mandatos del SQL, se dividen en tres grandes grupos diferenciados:

DDL (Data Definicin Language)


Es el encargado de la definicin de Bases de Datos, tablas, vistas
e ndices entre otros.

DML (Data Manipulation Language)


Su misin es la manipulacin de datos. A travs de l podemos
seleccionar, insertar, eliminar y actualizar datos.

DCL (Data Control Laguage)


Es el encargado de la seguridad de la base de datos, en todo lo
referente al control de accesos y privilegios entre los usuarios.

Creacin de una Base de Datos

CREATE DATABASE NombreDeBaseDeDatos;

Utilizando funcin de incremento y clave primaria:

CREATE TABLE libros (


cdigo int auto_increment,
titulo varchar(20),
autor varchar(30),
editorial varchar(15),
primary key (codigo)
);

Autoincrement: Se inicia en 1 y se incrementa en 1.


Solo puede haber un autoincrement y debe ser la clave primaria.

11

Creacin de un tabla

CREATE TABLE `usuarios`


(`nombre` VARCHAR( 30 ),
`apellido` VARCHAR( 30 ),
`FechaNac` DATETIME,
`email` VARCHAR( 30 ));

LENGUAJE DE MANIPULACION DE DATOS DE MYSQL (LMD)

El LMD de MySQL consiste de 4 consultas para recuperar o modificar datos de una


base de datos:

SELECT
INSERT
DELETE
UPDATE

SELECT: Selecciona datos de una tabla y devuelve un resultado

SELECT nombre_de_columna(s)
FROM nombre_de_tabla;

Para seleccionar todas las columnas de una tabla

SELECT *
FROM nombre-tabla

Para seleccionar datos de una tabla que cumplan determinada condicin:

SELECT nombre_de_columna(s)
FROM nombre_de_tabla
WHERE nombre_de_columna operador valor ;

12

Para seleccionar datos que cumplan con mas de una condicin

SELECT nombre_de_columna(s)
FROM nombre_de_tabla
WHERE nombre_de_columna operador valor
AND|OR nombre_de_columna operador valor ;

Operadores que pueden usarse con WHERE


Operador

Descripcin

Igual

<>

Distinto

>

Mayor que

<

Menor que

>=

Mayor o igual que

<=

Menor o igual que

BETWEEN Entre cierto rango

LIKE

Busca cierto patrn de caracteres en los datos. Al patrn


buscado se lo precede o sucede con % segn se desee:
LIKE %ma%: Busca campos que contengan la slaba
ma.
LIKE %ma: Busca campos que terminen con la slaba
ma.
LIKE ma%: Busca campos que empiecen con la slaba
ma.

Para ordenar el resultado:

ORDER BY nombre_de_columna ASC | des;

Para dar dos ordenamientos sucesivos:

SELECT Nombre, Apellido, Edad


FROM Empleados
ORDER BY Edad ASC, Apellido ASC

13

Para limitar la cantidad de datos en una consulta

SELECT nombre_de_columna(s)
FROM nombre_de_tabla
LIMIT numero_fila_inicial, numero_de_filas;

Donde:
numero_fila_inicial es desde qu fila de las que nos devolvera queremos
empezar

numero_de_filas es la cantidad de filas que queremos recibir.

Mximo y Mnimo valor

SELECT MAX(Importe) AS Salario Mximo


FROM Empleados ;

Cantidad de filas de una columna

SELECT COUNT(Nombre) FROM Empleados;

Para recuperar valores null

SELECT * FROM libros WHERE precio IS NULL;

Valor promedio

SELECT avg(precio)
FROM libros
WHERE titulo LIKE %php;

14

Agrupar registros

SELECT titulo
FROM libros
GROUP BY autor

Grupo de registros
La clusula having permite seleccionar o rechazar un grupo de registros:

SELECT editorial,
FROM libros
WHERE precio is NOT NULL
GROUP BY editorial
HAVING editorial<>'Planeta';

Clusula Distinct
Indica obviar registros duplicados

SELECT DISTINCT autor


FROM libros
GROUP BY editorial

15

INSERT: Inserta nuevos registros en una tabla

INSERT INTO nombre_de_tabla


VALUES (valor1, valor2,....)
o
INSERT INTO nombre_de_tabla (columna1, columna2,...)
VALUES (valor1, valor2,....)

Ejemplo:

INSERT INTO Empleados VALUES (3, Carlos, Garca)

El resultado :
ID_Empleado
01
02
03

Nombre
Juan
Diego
Carlos

Apellido
Prez
Rodrguez
Garca

Valores not null

INSERT INTO libros (titulo,autor,editorial,precio)


VALUES ('El aleph','Borges','Planeta',null);

El atributo NULL, especifica si el campo permite valores nulos.


Si lo acepta, podemos ingresar null al campo cuando desconocemos su
valor.
Los campos clave primaria, no aceptan nulos.

16

DELETE: Elimina registros de una tabla

DELETE * FROM nombre_de_tabla


WHERE nombre_de_columna operador valor
o
DELETE *
FROM nombre_de_tabla

Tambin se pueden eliminar todas las filas de una tabla:

DELETE * FROM nombre_de_tabla

Ejemplo:

DELETE * FROM Empleados WHERE ID_Empleado=2

La tabla ahora es as:


ID_Empleado
01
03

Nombre
Juan
Carlos

17

Apellido
Prez
Garca

UPDATE: Modifica registros de una tabla

UPDATE nombre_de_tabla
SET nombre_de_columna=valor
WHERE nombre_de_columna operador valor;

UPDATE Sueldos SET Importe=2000 WHERE Puesto=Puesto2

La tabla ahora es as:

ID_Empleo
01
02

Puesto
Puesto1
Puesto2

18

Importe
2300
2000

PGINAS DINMICAS CON BASES DE DATOS


Nota: No es requesito de este curso, contar con conocimentos de php, el
siguiente apartado, se agrego a modo informativo. En le transcurso del
curso, no se pedir practica relacionada con php.

Incorporar bases de datos a pginas dinmicas con PHP sirve para almacenar
informacin en el sitio que puede cambiar dinmicamente.
Esta informacin luego se recuperara bajo scripts PHP para mostrarla por pantalla.
Ejemplos concretos de esto pueden ser:

En un Carrito de Compras, los productos y sus caractersticas


estaran almacenados en una base de datos, y en el sitio un script
PHP recuperara estos datos desde la base de datos para
mostrarlos por pantalla.
En un Libro de Visitas (Guestbook), cada post sera un registro
en una tabla de una base de datos.
En un sistema que necesite comprobacin de Username y
Password, habra una tabla en una base de datos que guarde
todas las combinaciones Username/Password permitidas.

Qu es PHP?
PHP significan PHP: Hypertext Processor - Procesador Previo al Hipertexto.
Es un lenguaje de programacin que sirve para hacer pginas de Internet
dinmicas, con la posibilidad de combinarlo con bases de datos.
Los script de PHP suelen intercalarse en el cdigo HTML de una pgina, y el
encargado de procesar esos scripts es el intrprete del servidor web.
Funcionamiento.
PHP es un lenguaje de lado de servidor.
Lo que significa, que lo que el programador codifique en PHP dentro de una pgina
de Internet, no va a ser interpretado por el cliente (navegador), si no por un
servidor que procese el cdigo y devuelva al cliente el cdigo HTML resultante.

19

CONCEPTOS BSICOS DE MYSQL Y PHP INTEGRADOS


Conexin al servidor MySQL desde PHP

Cada vez que se vayan a usar bases de datos en una pgina PHP, primero se debe
hacer una conexin al servidor MySQL.

Conexin al servidor MySQL

La funcin mysql_connect() permite efectuar la conexin con la base de datos.


Su resultado se guarda en una variable para luego hacer referencia a esta conexin
cuando se la necesite.

$Conexion=mysql_connect("servidor","username","password");

Los tres parmetros que tiene son:


1) El servidor donde se est haciendo la conexin.
Por ejemplo, localhost o la direccin IP que corresponda.
2) El nombre de usuario de la cuenta que permita acceder al servidor MySQL
(por ejemplo, root).
3) El password correspondiente a ese nombre de usuario (en el caso de root, no
hay password y el tercer parmetro se completa con ).

Esta lnea de cdigo se suele guardar en un archivo aparte (por ejemplo,


"connect.php"), que luego se incluir en las pginas donde se necesite usar la
conexin establecida.
Esto es prctico ya que al mudarnos de hosting los parmetros proporcionados en
mysql_connect() es muy probable que cambien.

20

Cerrar conexin

La funcin mysql_close(); cierra la conexin con la base.

mysql_close();

Seleccionar una base de datos

Para seleccionar una base de datos dentro de la conexin establecida, se usa la


funcin:

mysql_select_db("nombre_de_base_de_datos", $conexion);

Detener la ejecucin

La funcin exit() se usa para detener la ejecucin de todo el cdigo PHP de la


pgina mostrando por pantalla un mensaje de error.

Ejemplo:

<?php
//Creamos una conexin
$conexion=mysql_connect("localhost", "root", "")
/*Si la conexin no se puede establecer, se detiene la ejecucin del cdigo y se
muestra el error.*/
or exit("No se pudo establecer una conexin");
/*Seleccionamos una base de datos del Servidor MySQL al que nos acabamos de
conectar.*/
$dbseleccionada=mysql_select_db("Empleos", $conexion)
/*Si la seleccin de la DB no se puede establecer, se detiene la ejecucin del cdigo
y se muestra el error.*/
or exit("No se pudo seleccionar la base de datos");
?>

21

Manejo de consultas

Una vez establecida la conexin a la base de datos, se puede acceder a los datos
almacenados en la misma.
A continuacin se listan algunas de las funciones ms usadas para trabajar con
MySQL desde PHP:

mysql_query(query, conexion):
Ejecuta una consulta.
Se debe usar con 2 parmetros: el primero ser la consulta MySQL y el
segundo la conexin utilizada.
Si la consulta fue DELETE, UPDATE o INSERT devuelve true o false para
saber si se realiz con xito.
Si la consulta fue SELECT devuelve el conjunto de filas obtenidas en
caso exitoso o false en caso contrario.

mysql_num_rows(resultado):
Permite saber cuntas filas tiene el resultado obtenido en una consulta
SELECT.

mysql_fetch_row(resultado):
Recupera los datos que contiene la fila actual dentro del resultado de la
consulta SELECT realizada previamente.
La variable que guarda la fila ser un vector (array), y para acceder a cada
uno de los datos debe usarse el subndice respetando el orden que se le dio
a las columnas en la consulta.
Por ejemplo, si recuperramos una fila haciendo
$fila=mysql_fetch_row($resultado) l
luego se accedera a cada columna de esa fila as: $fila[0], $fila[1], etc...

mysql_fetch_array(resultado):
Parecido al mysql_fetch_row, pero el subndice puede ser el nombre de la
columna a la que queramos acceder.
Por ejemplo, si recuperramos una fila haciendo
$fila=mysql_fetch_array($resultado)
luego se accedera a cada columna de de la siguiente manera:
$fila[Nombre], $fila[Apellido], etc...

mysql_free_result(resultado):
Libera la memoria consumida por el resultado de la consulta SELECT
realizada previamente.

22

Las consultas a la base de datos se usan exactamente igual que si estuviramos


trabajando directamente en algn administrador de MySQL, como por ejemplo el
PhpMyAdmin.

Uso de la consulta SELECT

Al recuperar datos de una base de datos con la consulta SELECT, luego debemos
listarlos en pantalla.
Para eso se suelen usar tablas.
La primer fila de la tabla sern los ttulos de cada campo, y una segunda fila de esa
tabla se repetir por cuantos registros haya recuperado desde la base de datos.
El siguiente ejemplo explica cada paso en los comentarios:

<?php
//Creamos una conexin
$conexion=mysql_connect("localhost", "root", "")
/*Si la conexin no se puede establecer, se detiene la ejecucin del cdigo y se
muestra el error.*/
or exit("No se pudo establecer una conexin");
/*Seleccionamos una base de datos del Servidor MySQL al que nos acabamos
de conectar.*/
$dbseleccionada=mysql_select_db("Empleos", $conexion)
/*Si la seleccin de la DB no se puede establecer, se detiene la ejecucin del
cdigo y se muestra el error.*/
or exit("No se pudo seleccionar la base de datos");
//Si la base de datos se seleccion correctamente, realizamos una consulta.
//Queremos mostrar en pantalla a todos los empleados
$result = mysql_query("SELECT * FROM empleados", $conexion);
//Verificamos si se encontr al menos un resultado

23

Вам также может понравиться