Sunteți pe pagina 1din 20

Acceso a Bases de datos

Desde Python
Pablo Flores Aravena
Pablo.flores@ing.uchile.cl

Bases de datos MySql

MySQL es un sistema de gestin de bases de datos relacional


desarrollado bajo licencia dual GPL/Licencia comercial por Oracle
Corporation y est considerada como la base datos open source ms
popular del mundo, y una de las ms populares en general junto a
Oracle y Microsoft SQL Server, sobre todo para entornos de desarrollo
web.

Desde el punto de vista informtico, la base de datos es un sistema


formado por un conjunto de datos almacenados en discos que permiten
el acceso directo a ellos y un conjunto de programas que manipulen ese
conjunto de datos.

Bases de datos MySql

Cada base de datos se compone de una o ms tablas que guarda un


conjunto de datos. Cada tabla tiene una o mscolumnasyfilas. Las
columnas guardan una parte de la informacin sobre cada elemento que
queramos guardar en la tabla, cada fila de la tabla conforma un registro.

Por consiguiente una base de datos posee el siguiente orden jerrquico:

Tablas

Campos

Registros

Lenguaje SQL

Aplicacin

Caractersticas de BD

Entre las principales caractersticas de los sistemas de base de datos


podemos mencionar:

Redundancia mnima.

Acceso concurrente por parte de mltiples usuarios.

Integridad de los datos.

Consultas complejas optimizadas.

Seguridad de acceso y auditora.

Respaldo y recuperacin.

Acceso a travs delenguajes de programacinestndar.

Cardinalidad de las Relaciones

El diseo de relaciones entre las tablas de una base de datos puede ser
la siguiente:

Relaciones de uno a uno: un registro de la tabla A se relaciona con


uno y solamente uno de la tabla B. 1-1

Relaciones de uno a muchos:cada registro de la tabla A se relaciona


con varios registros de la tabla B. 1-n

Relaciones de muchos a muchos:cualquier registro de la tabla A se


relaciona con cualquier registro de la tabla B. n-n

Lenguaje estructurado de consultas


SQL

SQL (por sus siglas en ingls Structured Query Language) es un lenguaje


declarativo de acceso a bases de datos relacionales que permite
especificar diversos tipos de operaciones en ellas. Una de sus
caractersticas es el manejo del lgebra y el clculo relacional que
permiten efectuar consultas con el fin de recuperar, de forma sencilla,
informacin de bases de datos, as como hacer cambios en ellas.

Sentencias SQL

La sentenciaINSERTde SQL agrega uno o ms registros a una (y slo una)


tabla en una base de datos relacional. Ej. INSERT INTO tabla (campo1,
campo2)VALUES ('valor1',algo')

La sentenciaSELECTnos permite consultar los datos almacenados en una


tabla de la base de datos. Ej. SELECT * FROM tabla WHERE campo1=valor1

Una sentenciaUPDATEde SQL es utilizada para modificar los valores de un


conjunto de registros existentes en una tabla. Ej. UPDATE tabla SET campo1
= Nuevo valor' WHERE campo2= algo';

Una sentenciaDELETEde SQL borra uno o ms registros existentes en una


tabla. Ej. DELETE FROM tabla WHERE campo1= ' Nuevo valor ';

phpMyAdmin

Para crear BD en mysql podemos utilizar la GUI


phpmyadmin ingresando a su Raspberry va web
abriendo la siguiente url.

http://localhost/phpmyadmin

Localhost puedes ser reemplazado por la ip de


la RPI.

Ingrese root como usuario de MySql y la


contrasea debe ser la misma que ingreso al
momento de instalar MySql. Si no la recuerda
debe recuperar la clave. (Revisar clase 1 de
Raspbian)

Creando mi primera BD

Para crear la base haga clic en Nueva, ingrese nombre de la BD y


presione el botn Crear

El nombre de la Base de Datos puede ser cualquiera que usted escoja


pero debe tener relacin con la informacin a contener.

Creando mi primera Tabla

Una tabla es utilizada para organizar y presentar informacin. Las tablas


se componen de filas y columnas de celdas que se pueden rellenar con
textos y grficos. Las tablas se componen de dos estructuras:

Registro: es cada una de las filas en que se divide la tabla.

Campo: es cada una de las columnas que forman la tabla

Para crear una tabla haga clic sobre la base de datos, nos pedir el
nombre de la tabla y el numero de campos

Creando Campos

Cada tabla puede contener mltiples campos de diversos tipos de datos


(int, varchar, float, date, text, boolean, etc), un campo es un espacio de
almacenamiento para un dato en particular, un campo o un conjunto
forman un registro.

En la creacin de los campos solicita el ingreso del nombre, tipo de dato,


longitud, si es ndice y si es A_I (auto incrementable)

Insertar datos

Un dato por s mismo no constituye informacin, es el procesamiento de


los datos lo que nos proporciona informacin.

Para agregar un registro (conjunto de campos) presione sobre Insertar y


complete los campos solicitados.

Python

En Python, el acceso a bases de datos se encuentra definido a modo de


estndar en las especificaciones de DB-API. Esto, significa que
independientemente de la base de datos que utilicemos, los mtodos y
procesos de conexin, lectura y escritura de datos, desde Python,
siempre sern los mismos, ms all del conector.

En nuestro caso utilizaremos MySql.

$ sudo apt-get install python-mysqldb

Pasos

Importar el mdulo de conexin (en nuestro caso, utilizaremos MySQLdb)

import MySQLdb

Conectarse a la base de datos

db_host = 'localhost'
usuario = 'root'
clave = 'clave'
base_de_datos = 'mi_basededatos'
db = MySQLdb.connect(host=db_host, user=usuario, passwd=clave,
db=base_de_datos)

Abrir un cursor

cursor = db.cursor()

Pasos

Ejecutar una consulta

mi_query = "SELECT campo FROM tabla WHERE campo='valor' ORDER BY campo"


cursor.execute(mi_query)

Si se est agregando, editando o eliminando un registro: hacer un commit a la


base de datos

db.commit()

Si se estn leyendo datos: obtener todos los registros hallados

cursor.fetchall()

u obtener solo el primero:

cursor.fetchone()

Cerrar el cursor abierto

cursor.close()

Ejercicio 1 en Python

Cree un archivo llamado pythonDb.py en la carpeta /home/pi/

Copie y pegue el cdigo del archivo descargado de u-cursos.

Para ejecutarlo corra el siguiente comando

$sudo python /home/pi/pythonDb.py

Ejercicio 2 en Python
Valores por parmetros

En el siguiente ejercicio ocuparemos el archivo anterior pero


descomentaremos las lneas que tienen el texto #descomentar

La forma de ejecutar es la siguiente

$sudo python pythonDb.py 1

Donde 1 corresponde al ID del registro en la base de datos.

Ejercicio 3 php + Python


Valores por parametros

En este ejercicio veremos como ejecutar cdigo Python desde php, los
parmetros los pasaremos por mtodo GET de php.

Cree un archivo llamado luces.php en el directorio /var/www/html/

Copie y pegue el siguiente cdigo

<?php
$id = $_GET['id'];
$salida= shell_exec('sudo python /home/pi/pythonDb.py '.$id);
echo $salida;
?>

Abra su navegador web e ingrese a la url http://localhost/luces.php?id=1 para


ver el resultado o reemplace Localhost por la direccin IP de la Raspberry.

Control de errores en Python

Los controles de error en el lenguaje de programacin sirven para evitar


cadas inesperadas del sistema.

Los controles de errores en Python son de la siguiente forma.

try:
Cdigo con posibles errores
except ValueError:
que hacer en caso que ocurra error

Busque los posibles errores en Python y contrlelos

Gracias

Dudas?

S-ar putea să vă placă și